新增问诊记录详情

This commit is contained in:
2023-10-07 13:09:13 +08:00
parent f8fe37b353
commit f9d38649f1
7 changed files with 319 additions and 1 deletions
+76
View File
@@ -0,0 +1,76 @@
package dto
import (
"fmt"
"hospital-admin-api/api/model"
)
type MessageImDto struct {
MessageId string `json:"message_id"` // 主键id
FromUserId string `json:"from_user_id"` // 发送方user_id
ToUserId string `json:"to_user_id"` // 接收方user_id;NOT NULL
MessageKey string `json:"message_key"` // 消息唯一标识(系统返回,撤回消息使用)
MessageSendTime string `json:"message_send_time"` // 消息发送时间戳
MessageSeq int `json:"message_seq"` // 消息序列号(单聊消息优先使用 MsgTime 进行排序,同一秒发送的消息则按 MsgSeq 排序,MsgSeq 值越大消息越靠后)
MessageSendResult int `json:"message_send_result"` // 消息下发结果(0:失败 1:成功)
SendErrorInfo string `json:"send_error_info"` // 消息下发失败原因
MessageType string `json:"message_type"` // 消息类型(具体查看:https://cloud.tencent.com/document/product/269/2720
IsSystem int `json:"is_system"` // 是否系统操作发送(0:否 1:是)
OrderInquiryId string `json:"order_inquiry_id"` // 问诊id(自定义字段)
MessageContent string `json:"message_content"` // 消息内容(json形式)
MessageCustomContent string `json:"message_custom_content"` // 自定义消息内容(json形式)
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
}
func GetMessageImDto(m *model.MessageIm) *MessageImDto {
return &MessageImDto{
MessageId: fmt.Sprintf("%d", m.MessageId),
FromUserId: m.FromUserId,
ToUserId: fmt.Sprintf("%d", m.ToUserId),
MessageKey: m.MessageKey,
MessageSendTime: m.MessageSendTime,
MessageSeq: m.MessageSeq,
MessageSendResult: m.MessageSendResult,
SendErrorInfo: m.SendErrorInfo,
MessageType: m.MessageType,
IsSystem: m.IsSystem,
OrderInquiryId: fmt.Sprintf("%d", m.OrderInquiryId),
MessageContent: m.MessageContent,
MessageCustomContent: m.MessageCustomContent,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetMessageImListDto(m []*model.MessageIm) []*MessageImDto {
// 处理返回值
responses := make([]*MessageImDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &MessageImDto{
MessageId: fmt.Sprintf("%d", v.MessageId),
FromUserId: v.FromUserId,
ToUserId: fmt.Sprintf("%d", v.ToUserId),
MessageKey: v.MessageKey,
MessageSendTime: v.MessageSendTime,
MessageSeq: v.MessageSeq,
MessageSendResult: v.MessageSendResult,
SendErrorInfo: v.SendErrorInfo,
MessageType: v.MessageType,
IsSystem: v.IsSystem,
OrderInquiryId: fmt.Sprintf("%d", v.OrderInquiryId),
MessageContent: v.MessageContent,
MessageCustomContent: v.MessageCustomContent,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
+59
View File
@@ -47,8 +47,10 @@ type OrderInquiryDto struct {
OrderInquiryRefund *OrderInquiryRefundDto `json:"order_inquiry_refund"` // 退款数据
OrderEvaluation *OrderEvaluationDto `json:"order_evaluation"` // 订单评价
UserDoctor *UserDoctorDto `json:"user_doctor"` // 医生数据
MessageIm []*MessageImDto `json:"message_im"` // 聊天记录
}
// GetOrderInquiryDto 问诊订单详情
func GetOrderInquiryDto(m *model.OrderInquiry) *OrderInquiryDto {
var doctorId string
if m.DoctorId != 0 {
@@ -93,6 +95,7 @@ func GetOrderInquiryDto(m *model.OrderInquiry) *OrderInquiryDto {
}
}
// GetOrderInquiryListDto 问诊订单列表
func GetOrderInquiryListDto(m []*model.OrderInquiry) []*OrderInquiryDto {
// 处理返回值
responses := make([]*OrderInquiryDto, len(m))
@@ -150,6 +153,7 @@ func GetOrderInquiryListDto(m []*model.OrderInquiry) []*OrderInquiryDto {
return responses
}
// GetOrderInquiryRecordListDto 问诊记录列表
func GetOrderInquiryRecordListDto(m []*model.OrderInquiry) []*OrderInquiryDto {
// 处理返回值
responses := make([]*OrderInquiryDto, len(m))
@@ -199,6 +203,51 @@ func GetOrderInquiryRecordListDto(m []*model.OrderInquiry) []*OrderInquiryDto {
return responses
}
// GetOrderInquiryRecordDto 问诊记录详情
func GetOrderInquiryRecordDto(m *model.OrderInquiry) *OrderInquiryDto {
var doctorId string
if m.DoctorId != 0 {
doctorId = fmt.Sprintf("%v", m.DoctorId)
}
return &OrderInquiryDto{
OrderInquiryId: fmt.Sprintf("%d", m.OrderInquiryId),
UserId: fmt.Sprintf("%d", m.UserId),
DoctorId: doctorId,
PatientId: fmt.Sprintf("%d", m.PatientId),
FamilyId: fmt.Sprintf("%d", m.FamilyId),
InquiryType: m.InquiryType,
InquiryMode: m.InquiryMode,
InquiryStatus: m.InquiryStatus,
IsDelete: m.IsDelete,
InquiryRefundStatus: m.InquiryRefundStatus,
InquiryPayChannel: m.InquiryPayChannel,
InquiryPayStatus: m.InquiryPayStatus,
InquiryNo: m.InquiryNo,
EscrowTradeNo: m.EscrowTradeNo,
AmountTotal: m.AmountTotal,
CouponAmountTotal: m.CouponAmountTotal,
PaymentAmountTotal: m.PaymentAmountTotal,
PayTime: m.PayTime,
ReceptionTime: m.ReceptionTime,
CompleteTime: m.CompleteTime,
FinishTime: m.FinishTime,
StatisticsStatus: m.StatisticsStatus,
StatisticsTime: m.StatisticsTime,
IsWithdrawal: m.IsWithdrawal,
WithdrawalTime: m.WithdrawalTime,
CancelTime: m.CancelTime,
CancelReason: m.CancelReason,
CancelRemarks: m.CancelRemarks,
PatientName: m.PatientName,
PatientNameMask: m.PatientNameMask,
PatientSex: m.PatientSex,
PatientAge: m.PatientAge,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
// LoadDoctorName 加载医生名称
func (r *OrderInquiryDto) LoadDoctorName(m *model.UserDoctor) *OrderInquiryDto {
if m != nil {
@@ -246,3 +295,13 @@ func (r *OrderInquiryDto) LoadOrderEvaluation(m *model.OrderEvaluation) *OrderIn
}
return r
}
// LoadMessageIm 加载聊天记录
func (r *OrderInquiryDto) LoadMessageIm(m []*model.MessageIm) *OrderInquiryDto {
if len(m) > 0 {
d := GetMessageImListDto(m)
r.MessageIm = d
}
return r
}