From 5fb14e2bfd22173f9ce92bbe08a3e1f423545354 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Thu, 12 Oct 2023 15:38:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E9=97=AE?= =?UTF-8?q?=E8=AF=8A=E8=AE=A2=E5=8D=95im=E5=86=85=E5=AE=B9=E5=88=97?= =?UTF-8?q?=E8=A1=A8-=E5=88=86=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/orderInquiry.go | 58 ++++++++++++++++++++++++++++++++++ api/dao/messageIm.go | 22 +++++++++++++ api/requests/orderInquiry.go | 7 ++++ api/router/router.go | 4 +++ 4 files changed, 91 insertions(+) diff --git a/api/controller/orderInquiry.go b/api/controller/orderInquiry.go index 169b7e5..fbe6675 100644 --- a/api/controller/orderInquiry.go +++ b/api/controller/orderInquiry.go @@ -194,3 +194,61 @@ func (r *OrderInquiry) GetOrderInquiryRecord(c *gin.Context) { responses.OkWithData(getUserDoctorResponses, c) } + +// GetOrderInquiryImPage 获取问诊订单im内容列表-分页 +func (r *OrderInquiry) GetOrderInquiryImPage(c *gin.Context) { + id := c.Param("order_inquiry_id") + if id == "" { + responses.FailWithMessage("缺少参数", c) + return + } + + // 将 id 转换为 int64 类型 + orderInquiryId, err := strconv.ParseInt(id, 10, 64) + if err != nil { + responses.Fail(c) + return + } + + req := requests.OrderInquiryRequest{} + if err := c.ShouldBind(&req.GetOrderInquiryImPage); err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 参数验证 + if err := global.Validate.Struct(req.GetOrderInquiryImPage); err != nil { + responses.FailWithMessage(utils.Translate(err), c) + return + } + + if req.GetOrderInquiryImPage.Page == 0 { + req.GetOrderInquiryImPage.Page = 1 + } + + if req.GetOrderInquiryImPage.PageSize == 0 { + req.GetOrderInquiryImPage.PageSize = 20 + } + + messageImDao := dao.MessageImDao{} + messageIm, total, err := messageImDao.GetMessageImPageSearch(orderInquiryId, req.GetOrderInquiryImPage.Page, req.GetOrderInquiryImPage.PageSize) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 处理返回值 + GetMessageImPageResponses := dto.GetMessageImListDto(messageIm) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + result := make(map[string]interface{}) + result["page"] = req.GetOrderInquiryImPage.Page + result["page_size"] = req.GetOrderInquiryImPage.PageSize + result["total"] = total + result["data"] = GetMessageImPageResponses + responses.OkWithData(result, c) + +} diff --git a/api/dao/messageIm.go b/api/dao/messageIm.go index b31f138..bfaec01 100644 --- a/api/dao/messageIm.go +++ b/api/dao/messageIm.go @@ -70,3 +70,25 @@ func (r *MessageImDao) AddMessageIm(tx *gorm.DB, model *model.MessageIm) (*model } return model, nil } + +// GetMessageImPageSearch 获取Im消息列表-分页 +func (r *MessageImDao) GetMessageImPageSearch(orderInquiryId int64, page, pageSize int) (m []*model.MessageIm, total int64, err error) { + var totalRecords int64 + + // 构建查询条件 + query := global.Db.Model(&model.MessageIm{}).Where("order_inquiry_id = ?", orderInquiryId) + + // 排序 + query = query.Order("created_at desc") + + // 查询总数量 + if err := query.Count(&totalRecords).Error; err != nil { + return nil, 0, err + } + + err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error + if err != nil { + return nil, 0, err + } + return m, totalRecords, nil +} diff --git a/api/requests/orderInquiry.go b/api/requests/orderInquiry.go index 67b8ae9..5a85fe3 100644 --- a/api/requests/orderInquiry.go +++ b/api/requests/orderInquiry.go @@ -4,6 +4,7 @@ type OrderInquiryRequest struct { GetOrderInquiryPage // 获取问诊订单列表-分页 CancelOrderInquiry // 取消问诊订单 GetOrderInquiryRecordPage // 获取问诊记录列表-分页 + GetOrderInquiryImPage // 获取问诊订单im内容列表-分页 } // GetOrderInquiryPage 获取问诊订单列表-分页 @@ -58,3 +59,9 @@ type GetOrderInquiryRecordPage struct { PatientName string `json:"patient_name" form:"patient_name" label:"患者姓名-就诊人"` Mobile string `json:"mobile" form:"mobile" label:"手机号-医生/患者"` } + +// GetOrderInquiryImPage 获取问诊订单im内容列表-分页 +type GetOrderInquiryImPage struct { + Page int `json:"page" form:"page" label:"页码"` + PageSize int `json:"page_size" form:"page_size" label:"每页个数"` +} diff --git a/api/router/router.go b/api/router/router.go index a4306a7..04c596c 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -375,6 +375,9 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 取消问诊订单 inquiryGroup.PUT("/cancel/:order_inquiry_id", api.OrderInquiry.CancelOrderInquiry) + + // 获取问诊订单im内容列表-分页 + inquiryGroup.GET("/im/:order_inquiry_id", api.OrderInquiry.GetOrderInquiryImPage) } // 药品订单 @@ -408,6 +411,7 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 问诊记录详情 inquiryRecordGroup.GET("/:order_inquiry_id", api.OrderInquiry.GetOrderInquiryRecord) } + } // 病例管理