2023-09-12 09:35:32 +08:00

154 lines
12 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package orderInquiryResponse
import (
"fmt"
"hospital-admin-api/api/model"
"hospital-admin-api/api/responses/orderEvaluationResponse"
"hospital-admin-api/api/responses/orderInquiryCaseResponse"
"hospital-admin-api/api/responses/orderInquiryCouponResponse"
"hospital-admin-api/api/responses/orderInquiryRefundResponse"
"hospital-admin-api/api/responses/userDoctorResponse"
"hospital-admin-api/utils"
)
// getOrderInquiryPage 获取医生列表-分页
type getOrderInquiryPage struct {
OrderInquiryId string `json:"order_inquiry_id"` // 主键id
UserId string `json:"user_id"` // 用户id-患者
PatientId string `json:"patient_id"` // 患者id
DoctorId string `json:"doctor_id"` // 医生id未分配时为null
FamilyId string `json:"family_id"` // 家庭成员id就诊用户
InquiryType int `json:"inquiry_type"` // 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
InquiryMode int `json:"inquiry_mode"` // 订单问诊方式1:图文 2:视频 3:语音 4:电话 5:会员)
InquiryStatus int `json:"inquiry_status"` // 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
IsDelete int `json:"is_delete"` // 删除状态0:否 1:是)
InquiryRefundStatus int `json:"inquiry_refund_status"` // 问诊订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常)
InquiryPayChannel int `json:"inquiry_pay_channel"` // 支付渠道1:小程序支付 2:微信扫码支付 3:模拟支付)
InquiryPayStatus int `json:"inquiry_pay_status"` // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
InquiryNo string `json:"inquiry_no"` // 系统订单编号
EscrowTradeNo string `json:"escrow_trade_no"` // 第三方支付流水号
AmountTotal float64 `json:"amount_total"` // 订单金额
CouponAmountTotal float64 `json:"coupon_amount_total"` // 优惠卷总金额
PaymentAmountTotal float64 `json:"payment_amount_total"` // 实际付款金额
PayTime model.LocalTime `json:"pay_time"` // 支付时间
ReceptionTime model.LocalTime `json:"reception_time"` // 接诊时间(已接诊)
CompleteTime model.LocalTime `json:"complete_time"` // 订单完成时间(问诊完成时间)
FinishTime model.LocalTime `json:"finish_time"` // 订单结束时间
StatisticsStatus int `json:"statistics_status"` // 订单统计状态0:未统计 1:已统计 2:统计失败)
StatisticsTime model.LocalTime `json:"statistics_time"` // 订单统计时间
IsWithdrawal int `json:"is_withdrawal"` // 是否提现0:否 1:是 2:提现中)
WithdrawalTime model.LocalTime `json:"withdrawal_time"` // 提现时间
CancelTime model.LocalTime `json:"cancel_time"` // 订单取消时间
CancelReason int `json:"cancel_reason"` // 取消订单原因1:医生未接诊 2:主动取消 3:无可分配医生 4:客服取消 5:支付超时)
CancelRemarks string `json:"cancel_remarks"` // 取消订单备注(自动添加)
PatientName string `json:"patient_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"` // 患者电话
DoctorName string `json:"doctor_name"` // 医生姓名
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
}
// GetOrderInquiry 问诊订单详情
type GetOrderInquiry struct {
OrderInquiryId string `json:"order_inquiry_id"` // 主键id
UserId string `json:"user_id"` // 用户id-患者
PatientId string `json:"patient_id"` // 患者id
DoctorId string `json:"doctor_id"` // 医生id未分配时为null
FamilyId string `json:"family_id"` // 家庭成员id就诊用户
InquiryType int `json:"inquiry_type"` // 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
InquiryMode int `json:"inquiry_mode"` // 订单问诊方式1:图文 2:视频 3:语音 4:电话 5:会员)
InquiryStatus int `json:"inquiry_status"` // 问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
IsDelete int `json:"is_delete"` // 删除状态0:否 1:是)
InquiryRefundStatus int `json:"inquiry_refund_status"` // 问诊订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常)
InquiryPayChannel int `json:"inquiry_pay_channel"` // 支付渠道1:小程序支付 2:微信扫码支付 3:模拟支付)
InquiryPayStatus int `json:"inquiry_pay_status"` // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
InquiryNo string `json:"inquiry_no"` // 系统订单编号
EscrowTradeNo string `json:"escrow_trade_no"` // 第三方支付流水号
AmountTotal float64 `json:"amount_total"` // 订单金额
CouponAmountTotal float64 `json:"coupon_amount_total"` // 优惠卷总金额
PaymentAmountTotal float64 `json:"payment_amount_total"` // 实际付款金额
PayTime model.LocalTime `json:"pay_time"` // 支付时间
ReceptionTime model.LocalTime `json:"reception_time"` // 接诊时间(已接诊)
CompleteTime model.LocalTime `json:"complete_time"` // 订单完成时间(问诊完成时间)
FinishTime model.LocalTime `json:"finish_time"` // 订单结束时间
StatisticsStatus int `json:"statistics_status"` // 订单统计状态0:未统计 1:已统计 2:统计失败)
StatisticsTime model.LocalTime `json:"statistics_time"` // 订单统计时间
IsWithdrawal int `json:"is_withdrawal"` // 是否提现0:否 1:是 2:提现中)
WithdrawalTime model.LocalTime `json:"withdrawal_time"` // 提现时间
CancelTime model.LocalTime `json:"cancel_time"` // 订单取消时间
CancelReason int `json:"cancel_reason"` // 取消订单原因1:医生未接诊 2:主动取消 3:无可分配医生 4:客服取消 5:支付超时)
CancelRemarks string `json:"cancel_remarks"` // 取消订单备注(自动添加)
PatientName string `json:"patient_name"` // 患者姓名-就诊人
PatientNameMask string `json:"patient_name_mask"` // 患者姓名-就诊人(掩码)
PatientSex int `json:"patient_sex"` // 患者性别-就诊人0:未知 1:男 2:女)
PatientAge int `json:"patient_age"` // 患者年龄-就诊人
OrderInquiryCoupon *orderInquiryCouponResponse.OrderInquiryCoupon `json:"order_inquiry_coupon"` // 订单优惠卷
OrderInquiryCase *orderInquiryCaseResponse.OrderInquiryCase `json:"order_inquiry_case"` // 问诊病例
OrderInquiryRefund *orderInquiryRefundResponse.OrderInquiryRefund `json:"order_inquiry_refund"` // 退款数据
OrderEvaluation *orderEvaluationResponse.OrderEvaluation `json:"order_evaluation"` // 订单评价
UserDoctor *userDoctorResponse.OrderInquiryUserDoctor `json:"user_doctor"` // 医生数据
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
}
// GetOrderInquiryPageResponse 获取用户列表-分页
func GetOrderInquiryPageResponse(orderInquiry []*model.OrderInquiry) []getOrderInquiryPage {
// 处理返回值
getOrderInquiryPages := make([]getOrderInquiryPage, len(orderInquiry))
if len(orderInquiry) > 0 {
for i, v := range orderInquiry {
// 将原始结构体转换为新结构体
res := getOrderInquiryPage{
OrderInquiryId: fmt.Sprintf("%d", v.OrderInquiryId),
UserId: fmt.Sprintf("%d", v.UserId),
PatientId: fmt.Sprintf("%d", v.PatientId),
DoctorId: fmt.Sprintf("%d", v.DoctorId),
FamilyId: fmt.Sprintf("%d", v.FamilyId),
InquiryType: v.InquiryType,
InquiryMode: v.InquiryMode,
InquiryStatus: v.InquiryStatus,
IsDelete: v.IsDelete,
InquiryRefundStatus: v.InquiryRefundStatus,
InquiryPayChannel: v.InquiryPayChannel,
InquiryPayStatus: v.InquiryPayStatus,
InquiryNo: v.InquiryNo,
EscrowTradeNo: v.EscrowTradeNo,
AmountTotal: v.AmountTotal,
CouponAmountTotal: v.CouponAmountTotal,
PaymentAmountTotal: v.PaymentAmountTotal,
PayTime: v.PayTime,
ReceptionTime: v.ReceptionTime,
CompleteTime: v.CompleteTime,
FinishTime: v.FinishTime,
StatisticsStatus: v.StatisticsStatus,
StatisticsTime: v.StatisticsTime,
IsWithdrawal: v.IsWithdrawal,
WithdrawalTime: v.WithdrawalTime,
CancelTime: v.CancelTime,
CancelReason: v.CancelReason,
CancelRemarks: v.CancelRemarks,
PatientName: v.PatientName,
PatientNameMask: v.PatientNameMask,
PatientSex: v.PatientSex,
PatientAge: v.PatientAge,
PatientMobile: utils.MaskPhoneStr(v.User.Mobile),
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
if v.UserDoctor != nil {
res.DoctorName = v.UserDoctor.UserName
}
// 将转换后的结构体添加到新切片中
getOrderInquiryPages[i] = res
}
}
return getOrderInquiryPages
}