新增获取问诊订单im内容列表-分页接口

This commit is contained in:
wucongxing 2023-10-12 15:38:09 +08:00
parent cf016fd42a
commit 5fb14e2bfd
4 changed files with 91 additions and 0 deletions

View File

@ -194,3 +194,61 @@ func (r *OrderInquiry) GetOrderInquiryRecord(c *gin.Context) {
responses.OkWithData(getUserDoctorResponses, c) 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)
}

View File

@ -70,3 +70,25 @@ func (r *MessageImDao) AddMessageIm(tx *gorm.DB, model *model.MessageIm) (*model
} }
return model, nil 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
}

View File

@ -4,6 +4,7 @@ type OrderInquiryRequest struct {
GetOrderInquiryPage // 获取问诊订单列表-分页 GetOrderInquiryPage // 获取问诊订单列表-分页
CancelOrderInquiry // 取消问诊订单 CancelOrderInquiry // 取消问诊订单
GetOrderInquiryRecordPage // 获取问诊记录列表-分页 GetOrderInquiryRecordPage // 获取问诊记录列表-分页
GetOrderInquiryImPage // 获取问诊订单im内容列表-分页
} }
// GetOrderInquiryPage 获取问诊订单列表-分页 // GetOrderInquiryPage 获取问诊订单列表-分页
@ -58,3 +59,9 @@ type GetOrderInquiryRecordPage struct {
PatientName string `json:"patient_name" form:"patient_name" label:"患者姓名-就诊人"` PatientName string `json:"patient_name" form:"patient_name" label:"患者姓名-就诊人"`
Mobile string `json:"mobile" form:"mobile" 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:"每页个数"`
}

View File

@ -375,6 +375,9 @@ func privateRouter(r *gin.Engine, api controller.Api) {
// 取消问诊订单 // 取消问诊订单
inquiryGroup.PUT("/cancel/:order_inquiry_id", api.OrderInquiry.CancelOrderInquiry) 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) inquiryRecordGroup.GET("/:order_inquiry_id", api.OrderInquiry.GetOrderInquiryRecord)
} }
} }
// 病例管理 // 病例管理