diff --git a/api/dao/doctorWithdrawalOrder.go b/api/dao/doctorWithdrawalOrder.go index 2a4978a..1fb83d8 100644 --- a/api/dao/doctorWithdrawalOrder.go +++ b/api/dao/doctorWithdrawalOrder.go @@ -47,10 +47,16 @@ func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderPageSearch(req reques }) // 订单 - query = query.Preload("OrderInquiry") + query = query.Preload("Order") + + // 订单-问诊 + query = query.Preload("Order.OrderInquiry") + + // 订单-服务包 + query = query.Preload("Order.OrderServicePackage") // 患者 - query = query.Preload("OrderInquiry.User") + query = query.Preload("Order.User") // 排序 query = query.Order("created_at desc") @@ -82,10 +88,16 @@ func (r *DoctorWithdrawalOrderDao) GetDoctorWithdrawalOrderExportListSearch(req }) // 订单 - query = query.Preload("OrderInquiry") + query = query.Preload("Order") + + // 订单-问诊 + query = query.Preload("Order.OrderInquiry") + + // 订单-服务包 + query = query.Preload("Order.OrderServicePackage") // 患者 - query = query.Preload("OrderInquiry.User") + query = query.Preload("Order.User") // 排序 query = query.Order("created_at desc") diff --git a/api/dto/DoctorWithdrawalOrder.go b/api/dto/DoctorWithdrawalOrder.go index e186303..129e4c6 100644 --- a/api/dto/DoctorWithdrawalOrder.go +++ b/api/dto/DoctorWithdrawalOrder.go @@ -2,7 +2,6 @@ package dto import ( "fmt" - "hospital-admin-api/api/dao" "hospital-admin-api/api/model" "hospital-admin-api/utils" "math" @@ -26,6 +25,7 @@ type DoctorWithdrawalOrderDto struct { PayChannel int `json:"pay_channel"` // 支付渠道(1:小程序支付 2:微信扫码支付 3:模拟支付) PayTime model.LocalTime `json:"pay_time"` // 支付时间 InquiryNo string `json:"inquiry_no"` // 系统订单编号 + OrderNo string `json:"order_no"` // 系统订单编号 EscrowTradeNo string `json:"escrow_trade_no"` // 第三方支付流水号 InquiryStatus int `json:"inquiry_status"` // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) } @@ -62,53 +62,48 @@ func GetDoctorWithdrawalOrderListDto(m []*model.DoctorWithdrawalOrder) []*Doctor } // 加载患者姓名-就诊人(掩码) - if v.OrderInquiry != nil { - response.LoadPatientNameMask(v.OrderInquiry) - } + response.LoadPatientNameMask(v.Order) // 加载患者性别-就诊人 - if v.OrderInquiry != nil { - response.LoadPatientSex(v.OrderInquiry) - } + response.LoadPatientSex(v.Order) // 加载患者年龄-就诊人 - if v.OrderInquiry != nil { - response.LoadPatientAge(v.OrderInquiry) - } + response.LoadPatientAge(v.Order) // 加载患者电话(掩码) - if v.OrderInquiry != nil { - response.LoadPatientMobileMask(v.OrderInquiry) + if v.Order.User != nil { + response.LoadPatientMobileMask(v.Order.User) } // 加载支付渠道 - if v.OrderInquiry != nil { - response.LoadPayChannel(v.OrderInquiry) + if v.Order != nil { + response.LoadPayChannel(v.Order) } // 加载支付时间 - if v.OrderInquiry != nil { - response.LoadPayTime(v.OrderInquiry) + if v.Order != nil { + response.LoadPayTime(v.Order) } // 加载系统订单编号 - if v.OrderInquiry != nil { - response.LoadInquiryNo(v.OrderInquiry) + if v.Order != nil { + response.LoadInquiryNo(v.Order) + response.LoadOrderNo(v.Order) } // 加载第三方支付流水号 - if v.OrderInquiry != nil { - response.LoadEscrowTradeNo(v.OrderInquiry) + if v.Order != nil { + response.LoadEscrowTradeNo(v.Order) } // 加载问诊订单状态 - if v.OrderInquiry != nil { - response.LoadInquiryStatus(v.OrderInquiry) + if v.Order.OrderInquiry != nil { + response.LoadInquiryStatus(v.Order.OrderInquiry) } // 加载医生收益 - if v.OrderInquiry != nil { - response.LoadDoctorAmount(v.OrderInquiry) + if v.Order.OrderInquiry != nil { + response.LoadDoctorAmount(v.Order.OrderInquiry) } // 将转换后的结构体添加到新切片中 @@ -128,51 +123,63 @@ func (r *DoctorWithdrawalOrderDto) LoadDoctorName(m *model.UserDoctor) *DoctorWi } // LoadPatientNameMask 加载患者姓名-就诊人(掩码) -func (r *DoctorWithdrawalOrderDto) LoadPatientNameMask(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { - if m != nil { - r.PatientNameMask = m.PatientNameMask +func (r *DoctorWithdrawalOrderDto) LoadPatientNameMask(m *model.Order) *DoctorWithdrawalOrderDto { + if m.OrderInquiry != nil { + r.PatientNameMask = m.OrderInquiry.PatientNameMask } + + if m.OrderServicePackage != nil { + r.PatientNameMask = m.OrderServicePackage.PatientNameMask + } + return r } // LoadPatientSex 加载患者性别-就诊人 -func (r *DoctorWithdrawalOrderDto) LoadPatientSex(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { - if m != nil { - r.PatientSex = m.PatientSex +func (r *DoctorWithdrawalOrderDto) LoadPatientSex(m *model.Order) *DoctorWithdrawalOrderDto { + if m.OrderInquiry != nil { + r.PatientSex = m.OrderInquiry.PatientSex } + + if m.OrderServicePackage != nil { + r.PatientSex = m.OrderServicePackage.PatientSex + } + return r } // LoadPatientAge 加载患者年龄-就诊人 -func (r *DoctorWithdrawalOrderDto) LoadPatientAge(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { - if m != nil { - r.PatientAge = m.PatientAge +func (r *DoctorWithdrawalOrderDto) LoadPatientAge(m *model.Order) *DoctorWithdrawalOrderDto { + if m.OrderInquiry != nil { + r.PatientAge = m.OrderInquiry.PatientAge } + + if m.OrderServicePackage != nil { + r.PatientAge = m.OrderServicePackage.PatientAge + } + return r } // LoadPatientMobileMask 加载患者电话(掩码) -func (r *DoctorWithdrawalOrderDto) LoadPatientMobileMask(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { +func (r *DoctorWithdrawalOrderDto) LoadPatientMobileMask(m *model.User) *DoctorWithdrawalOrderDto { if m != nil { - userDao := dao.UserDao{} - user, err := userDao.GetUserById(m.UserId) - if err == nil && user != nil { - r.PatientMobileMask = utils.MaskPhoneStr(user.Mobile) - } + r.PatientMobileMask = utils.MaskPhoneStr(m.Mobile) } + return r } // LoadPayChannel 加载支付渠道 -func (r *DoctorWithdrawalOrderDto) LoadPayChannel(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { +func (r *DoctorWithdrawalOrderDto) LoadPayChannel(m *model.Order) *DoctorWithdrawalOrderDto { if m != nil { - r.PayChannel = m.InquiryPayChannel + r.PayChannel = m.PayChannel } return r } // LoadPayTime 加载支付时间 -func (r *DoctorWithdrawalOrderDto) LoadPayTime(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { +func (r *DoctorWithdrawalOrderDto) LoadPayTime(m *model.Order) *DoctorWithdrawalOrderDto { if m != nil { r.PayTime = m.PayTime } @@ -180,15 +187,23 @@ func (r *DoctorWithdrawalOrderDto) LoadPayTime(m *model.OrderInquiry) *DoctorWit } // LoadInquiryNo 加载系统订单编号 -func (r *DoctorWithdrawalOrderDto) LoadInquiryNo(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { +func (r *DoctorWithdrawalOrderDto) LoadInquiryNo(m *model.Order) *DoctorWithdrawalOrderDto { if m != nil { - r.InquiryNo = m.InquiryNo + r.InquiryNo = m.OrderNo + } + return r +} + +// LoadOrderNo 加载系统订单编号 +func (r *DoctorWithdrawalOrderDto) LoadOrderNo(m *model.Order) *DoctorWithdrawalOrderDto { + if m != nil { + r.OrderNo = m.OrderNo } return r } // LoadEscrowTradeNo 加载第三方支付流水号 -func (r *DoctorWithdrawalOrderDto) LoadEscrowTradeNo(m *model.OrderInquiry) *DoctorWithdrawalOrderDto { +func (r *DoctorWithdrawalOrderDto) LoadEscrowTradeNo(m *model.Order) *DoctorWithdrawalOrderDto { if m != nil { r.EscrowTradeNo = m.EscrowTradeNo } diff --git a/api/model/doctorWithdrawalOrder.go b/api/model/doctorWithdrawalOrder.go index 400a99f..0d354ee 100644 --- a/api/model/doctorWithdrawalOrder.go +++ b/api/model/doctorWithdrawalOrder.go @@ -8,12 +8,13 @@ import ( // DoctorWithdrawalOrder 医生提现-关联订单表 type DoctorWithdrawalOrder struct { - WithdrawalOrderId int64 `gorm:"column:withdrawal_order_id;type:bigint(19);primary_key;comment:主键id" json:"withdrawal_order_id"` - WithdrawalId int64 `gorm:"column:withdrawal_id;type:bigint(19);comment:提现表id;NOT NULL" json:"withdrawal_id"` - DoctorId int64 `gorm:"column:doctor_id;type:bigint(19);comment:医生id;NOT NULL" json:"doctor_id"` - OrderInquiryId int64 `gorm:"column:order_inquiry_id;type:bigint(19);comment:订单-问诊id;NOT NULL" json:"order_inquiry_id"` - OrderInquiry *OrderInquiry `gorm:"foreignKey:OrderInquiryId;references:order_inquiry_id" json:"order_inquiry"` // 问诊 - UserDoctor *UserDoctor `gorm:"foreignKey:DoctorId;references:doctor_id" json:"user_doctor"` // 医生 + WithdrawalOrderId int64 `gorm:"column:withdrawal_order_id;type:bigint(19);primary_key;comment:主键id" json:"withdrawal_order_id"` + WithdrawalId int64 `gorm:"column:withdrawal_id;type:bigint(19);comment:提现表id;NOT NULL" json:"withdrawal_id"` + DoctorId int64 `gorm:"column:doctor_id;type:bigint(19);comment:医生id;NOT NULL" json:"doctor_id"` + OrderId int64 `gorm:"column:order_id;type:bigint(19);comment:订单id;NOT NULL" json:"order_id"` + OrderInquiryId int64 `gorm:"column:order_inquiry_id;type:bigint(19);comment:订单-问诊id;NOT NULL" json:"order_inquiry_id"` + Order *Order `gorm:"foreignKey:OrderId;references:order_id" json:"order"` // 订单 + UserDoctor *UserDoctor `gorm:"foreignKey:DoctorId;references:doctor_id" json:"user_doctor"` // 医生 Model } diff --git a/api/model/order.go b/api/model/order.go index 8c4b5a5..e6eaac6 100644 --- a/api/model/order.go +++ b/api/model/order.go @@ -8,27 +8,30 @@ import ( // Order 订单表 type Order struct { - OrderId int64 `gorm:"column:order_id;type:bigint(19);primary_key;comment:主键id" json:"order_id"` - UserId int64 `gorm:"column:user_id;type:bigint(19);comment:用户id-患者;NOT NULL" json:"user_id"` - PatientId int64 `gorm:"column:patient_id;type:bigint(19);comment:患者id;NOT NULL" json:"patient_id"` - DoctorId int64 `gorm:"column:doctor_id;type:bigint(19);comment:医生id(存在为null的情况)" json:"doctor_id"` - OrderType int `gorm:"column:order_type;type:tinyint(1);comment:订单类型(1:问诊订单 2:药品订单 3:检测订单 4:随访包订单 5:健康包订单);NOT NULL" json:"order_type"` - IsDelete int `gorm:"column:is_delete;type:tinyint(1);default:0;comment:删除状态(0:否 1:是)" json:"is_delete"` - PayChannel int `gorm:"column:pay_channel;type:tinyint(1);default:1;comment:支付渠道(1:小程序支付 2:微信扫码支付 3:模拟支付);NOT NULL" json:"pay_channel"` - PayStatus int `gorm:"column:pay_status;type:tinyint(1);default:1;comment:支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款);NOT NULL" json:"pay_status"` - PayTime LocalTime `gorm:"column:pay_time;type:datetime;comment:支付时间" json:"pay_time"` - RefundStatus int `gorm:"column:refund_status;type:tinyint(1);default:0;comment:订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常 7:部分退款);NOT NULL" json:"refund_status"` - OrderNo string `gorm:"column:order_no;type:varchar(30);comment:系统订单编号;NOT NULL" json:"order_no"` - EscrowTradeNo string `gorm:"column:escrow_trade_no;type:varchar(100);comment:第三方支付流水号" json:"escrow_trade_no"` - AmountTotal float64 `gorm:"column:amount_total;type:decimal(10,2) unsigned;default:0.00;comment:订单金额" json:"amount_total"` - CouponAmountTotal float64 `gorm:"column:coupon_amount_total;type:decimal(10,2) unsigned;default:0.00;comment:优惠卷总金额" json:"coupon_amount_total"` - PaymentAmountTotal float64 `gorm:"column:payment_amount_total;type:decimal(10,2) unsigned;default:0.00;comment:实际付款金额" json:"payment_amount_total"` - CancelStatus int `gorm:"column:cancel_status;type:tinyint(1);default:0;comment:取消状态(0:否 1:是)" json:"cancel_status"` - CancelTime LocalTime `gorm:"column:cancel_time;type:datetime;comment:订单取消时间" json:"cancel_time"` - CancelRemarks string `gorm:"column:cancel_remarks;type:varchar(255);comment:取消订单备注" json:"cancel_remarks"` - OrderRemarks string `gorm:"column:order_remarks;type:varchar(255);comment:订单备注" json:"order_remarks"` - IsWithdrawal int `gorm:"column:is_withdrawal;type:tinyint(1);default:0;comment:是否提现(0:否 1:是 2:提现中 3:无需提现)" json:"is_withdrawal"` - WithdrawalTime LocalTime `gorm:"column:withdrawal_time;type:datetime;comment:提现时间" json:"withdrawal_time"` + OrderId int64 `gorm:"column:order_id;type:bigint(19);primary_key;comment:主键id" json:"order_id"` + UserId int64 `gorm:"column:user_id;type:bigint(19);comment:用户id-患者;NOT NULL" json:"user_id"` + PatientId int64 `gorm:"column:patient_id;type:bigint(19);comment:患者id;NOT NULL" json:"patient_id"` + DoctorId int64 `gorm:"column:doctor_id;type:bigint(19);comment:医生id(存在为null的情况)" json:"doctor_id"` + OrderType int `gorm:"column:order_type;type:tinyint(1);comment:订单类型(1:问诊订单 2:药品订单 3:检测订单 4:随访包订单 5:健康包订单);NOT NULL" json:"order_type"` + IsDelete int `gorm:"column:is_delete;type:tinyint(1);default:0;comment:删除状态(0:否 1:是)" json:"is_delete"` + PayChannel int `gorm:"column:pay_channel;type:tinyint(1);default:1;comment:支付渠道(1:小程序支付 2:微信扫码支付 3:模拟支付);NOT NULL" json:"pay_channel"` + PayStatus int `gorm:"column:pay_status;type:tinyint(1);default:1;comment:支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款);NOT NULL" json:"pay_status"` + PayTime LocalTime `gorm:"column:pay_time;type:datetime;comment:支付时间" json:"pay_time"` + RefundStatus int `gorm:"column:refund_status;type:tinyint(1);default:0;comment:订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常 7:部分退款);NOT NULL" json:"refund_status"` + OrderNo string `gorm:"column:order_no;type:varchar(30);comment:系统订单编号;NOT NULL" json:"order_no"` + EscrowTradeNo string `gorm:"column:escrow_trade_no;type:varchar(100);comment:第三方支付流水号" json:"escrow_trade_no"` + AmountTotal float64 `gorm:"column:amount_total;type:decimal(10,2) unsigned;default:0.00;comment:订单金额" json:"amount_total"` + CouponAmountTotal float64 `gorm:"column:coupon_amount_total;type:decimal(10,2) unsigned;default:0.00;comment:优惠卷总金额" json:"coupon_amount_total"` + PaymentAmountTotal float64 `gorm:"column:payment_amount_total;type:decimal(10,2) unsigned;default:0.00;comment:实际付款金额" json:"payment_amount_total"` + CancelStatus int `gorm:"column:cancel_status;type:tinyint(1);default:0;comment:取消状态(0:否 1:是)" json:"cancel_status"` + CancelTime LocalTime `gorm:"column:cancel_time;type:datetime;comment:订单取消时间" json:"cancel_time"` + CancelRemarks string `gorm:"column:cancel_remarks;type:varchar(255);comment:取消订单备注" json:"cancel_remarks"` + OrderRemarks string `gorm:"column:order_remarks;type:varchar(255);comment:订单备注" json:"order_remarks"` + IsWithdrawal int `gorm:"column:is_withdrawal;type:tinyint(1);default:0;comment:是否提现(0:否 1:是 2:提现中 3:无需提现)" json:"is_withdrawal"` + WithdrawalTime LocalTime `gorm:"column:withdrawal_time;type:datetime;comment:提现时间" json:"withdrawal_time"` + OrderInquiry *OrderInquiry `gorm:"foreignKey:OrderId;references:order_id" json:"order_inquiry"` + OrderServicePackage *OrderServicePackage `gorm:"foreignKey:OrderId;references:order_id" json:"order_service_package"` + User *User `gorm:"foreignKey:UserId;references:user_id" json:"user"` Model }