package orderProductResponse import ( "fmt" "hospital-admin-api/api/model" "hospital-admin-api/api/responses/orderInquiryCaseResponse" "hospital-admin-api/api/responses/orderPrescriptionResponse" "hospital-admin-api/api/responses/orderProductItemResponse" "hospital-admin-api/api/responses/orderProductLogisticsResponse" "hospital-admin-api/api/responses/orderProductRefundResponse" "hospital-admin-api/api/responses/userDoctorResponse" ) // getOrderProductPage 获取医生列表-分页 type getOrderProductPage struct { OrderProductId string `json:"order_product_id"` // 主键id OrderInquiryId string `json:"order_inquiry_id"` // 订单-问诊id;NOT NULL OrderPrescriptionId string `json:"order_prescription_id"` // 订单-处方id;NOT NULL DoctorId string `json:"doctor_id"` // 医生id PatientId string `json:"patient_id"` // 患者id FamilyId string `json:"family_id"` // 家庭成员id(就诊用户) OrderProductNo string `json:"order_product_no"` // 订单编号 EscrowTradeNo string `json:"escrow_trade_no"` // 第三方支付流水号 OrderProductStatus int `json:"order_product_status"` // 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已取消) PayChannel int `json:"pay_channel"` // 支付渠道(1:小程序支付 2:微信扫码支付);NOT NULL PayStatus int `json:"pay_status"` // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) CancelReason int `json:"cancel_reason"` // 订单取消原因(1:主动取消 2:复核失败/库存不足 3:支付超时 4:客服取消) AmountTotal float64 `json:"amount_total"` // 订单金额 PaymentAmountTotal float64 `json:"payment_amount_total"` // 实际付款金额 LogisticsFee float64 `json:"logistics_fee"` // 运费金额 LogisticsNo string `json:"logistics_no"` // 物流编号 LogisticsCompanyCode string `json:"logistics_company_code"` // 快递公司编码 DeliveryTime model.LocalTime `json:"delivery_time"` // 发货时间 PayTime model.LocalTime `json:"pay_time"` // 支付时间 Remarks string `json:"remarks"` // 订单备注 RefundStatus int `json:"refund_status"` // 商品订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常) ReportPreStatus int `json:"report_pre_status"` // 上报处方平台状态(0:未上报 1:已上报 2:上报失败)) ConsigneeNameMask string `json:"consignee_name_mask"` // 收货人姓名(掩码) ConsigneeTelMask string `json:"consignee_tel_mask"` // 收货人电话(掩码) DoctorName string `json:"doctor_name"` // 医生姓名 PatientNameMask string `json:"patient_name_mask"` // 患者姓名-就诊人(掩码) PatientSex int `json:"patient_sex"` // 患者性别-就诊人(0:未知 1:男 2:女) PatientAge int `json:"patient_age"` // 患者年龄-就诊人 PatientMobile string `json:"patient_mobile"` // 患者电话 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 } // GetOrderProduct 问诊订单详情 type GetOrderProduct struct { OrderProductId string `json:"order_product_id"` // 主键id OrderInquiryId string `json:"order_inquiry_id"` // 订单-问诊id;NOT NULL OrderPrescriptionId string `json:"order_prescription_id"` // 订单-处方id;NOT NULL DoctorId string `json:"doctor_id"` // 医生id PatientId string `json:"patient_id"` // 患者id FamilyId string `json:"family_id"` // 家庭成员id(就诊用户) OrderProductNo string `json:"order_product_no"` // 订单编号 EscrowTradeNo string `json:"escrow_trade_no"` // 第三方支付流水号 OrderProductStatus int `json:"order_product_status"` // 订单状态(1:待支付 2:待发货 3:已发货 4:已签收 5:已取消) PayChannel int `json:"pay_channel"` // 支付渠道(1:小程序支付 2:微信扫码支付);NOT NULL PayStatus int `json:"pay_status"` // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) CancelReason int `json:"cancel_reason"` // 订单取消原因(1:主动取消 2:复核失败/库存不足 3:支付超时 4:客服取消) AmountTotal float64 `json:"amount_total"` // 订单金额 PaymentAmountTotal float64 `json:"payment_amount_total"` // 实际付款金额 LogisticsFee float64 `json:"logistics_fee"` // 运费金额 LogisticsNo string `json:"logistics_no"` // 物流编号 LogisticsCompanyCode string `json:"logistics_company_code"` // 快递公司编码 DeliveryTime model.LocalTime `json:"delivery_time"` // 发货时间 PayTime model.LocalTime `json:"pay_time"` // 支付时间 Remarks string `json:"remarks"` // 订单备注 RefundStatus int `json:"refund_status"` // 商品订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常) CancelTime model.LocalTime `json:"cancel_time"` // 订单取消时间 CancelRemarks string `json:"cancel_remarks"` // 订单取消备注(自动添加) ReportPreStatus int `json:"report_pre_status"` // 上报处方平台状态(0:未上报 1:已上报 2:上报失败)) ReportPreTime model.LocalTime `json:"report_pre_time"` // 上报处方平台时间 ReportPreFailReason string `json:"report_pre_fail_reason"` // 上报失败原因 ProvinceId int `json:"province_id"` // 省份id Province string `json:"province"` // 省份 CityId int `json:"city_id"` // 城市id City string `json:"city"` // 城市 CountyId int `json:"county_id"` // county_id County string `json:"county"` // 区县 AddressMask string `json:"address_mask"` // 详细地址(掩码) ConsigneeNameMask string `json:"consignee_name_mask"` // 收货人姓名(掩码) ConsigneeTelMask string `json:"consignee_tel_mask"` // 收货人电话(掩码) CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 OrderProductRefund *orderProductRefundResponse.OrderProductRefund `json:"order_product_refund"` // 退款数据 OrderProductItem []*orderProductItemResponse.OrderProductItem `json:"order_product_item"` // 商品数据 OrderProductLogistics *orderProductLogisticsResponse.OrderProductLogistics `json:"order_product_logistics"` // 物流数据 UserDoctor *userDoctorResponse.OrderInquiryUserDoctor `json:"user_doctor"` // 医生数据 OrderPrescription *orderPrescriptionResponse.OrderPrescription `json:"order_prescription"` // 处方数据 OrderInquiryCase *orderInquiryCaseResponse.OrderInquiryCase `json:"order_inquiry_case"` // 问诊病例 } // GetOrderProductConsignee 获取药品订单收货人数据 type GetOrderProductConsignee struct { ProvinceId int `json:"province_id"` // 省份id Province string `json:"province"` // 省份 CityId int `json:"city_id"` // 城市id City string `json:"city"` // 城市 CountyId int `json:"county_id"` // county_id County string `json:"county"` // 区县 Address string `json:"address"` // 详细地址 ConsigneeName string `json:"consignee_name"` // 收货人姓名 ConsigneeTel string `json:"consignee_tel"` // 收货人电话 } // GetOrderProductPageResponse 获取药品订单列表-分页 func GetOrderProductPageResponse(orderProduct []*model.OrderProduct) []getOrderProductPage { // 处理返回值 getOrderProductPages := make([]getOrderProductPage, len(orderProduct)) if len(orderProduct) > 0 { for i, v := range orderProduct { // 将原始结构体转换为新结构体 res := getOrderProductPage{ OrderProductId: fmt.Sprintf("%d", v.OrderProductId), OrderInquiryId: fmt.Sprintf("%d", v.OrderInquiryId), OrderPrescriptionId: fmt.Sprintf("%d", v.OrderPrescriptionId), DoctorId: fmt.Sprintf("%d", v.DoctorId), PatientId: fmt.Sprintf("%d", v.PatientId), FamilyId: fmt.Sprintf("%d", v.FamilyId), OrderProductNo: v.OrderProductNo, EscrowTradeNo: v.OrderProductNo, OrderProductStatus: v.OrderProductStatus, PayChannel: v.PayChannel, PayStatus: v.PayStatus, CancelReason: v.CancelReason, AmountTotal: v.AmountTotal, PaymentAmountTotal: v.PaymentAmountTotal, LogisticsFee: v.LogisticsFee, LogisticsNo: v.LogisticsNo, LogisticsCompanyCode: v.LogisticsCompanyCode, DeliveryTime: v.DeliveryTime, PayTime: v.PayTime, Remarks: v.Remarks, RefundStatus: v.RefundStatus, ReportPreStatus: v.ReportPreStatus, ConsigneeNameMask: v.ConsigneeNameMask, ConsigneeTelMask: v.ConsigneeTelMask, PatientMobile: v.UserPatient.User.Mobile, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } if v.UserDoctor != nil { res.DoctorName = v.UserDoctor.UserName } if v.OrderInquiry != nil { res.PatientNameMask = v.OrderInquiry.PatientNameMask res.PatientSex = v.OrderInquiry.PatientSex res.PatientAge = v.OrderInquiry.PatientAge } // 将转换后的结构体添加到新切片中 getOrderProductPages[i] = res } } return getOrderProductPages } // GetOrderProductConsigneeResponse 获取药品订单收货人数据 func GetOrderProductConsigneeResponse(orderProduct *model.OrderProduct) *GetOrderProductConsignee { return &GetOrderProductConsignee{ ProvinceId: orderProduct.ProvinceId, Province: orderProduct.Province, CityId: orderProduct.CityId, City: orderProduct.City, CountyId: orderProduct.CountyId, County: orderProduct.County, Address: orderProduct.Address, ConsigneeName: orderProduct.ConsigneeName, ConsigneeTel: orderProduct.ConsigneeTel, } }