Merge branch 'dev'
This commit is contained in:
commit
8d946cc6cf
@ -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")
|
||||
|
||||
@ -2,6 +2,7 @@ package dao
|
||||
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hospital-admin-api/api/model"
|
||||
"hospital-admin-api/global"
|
||||
)
|
||||
@ -18,6 +19,14 @@ func (r *OrderDao) GetOrderById(orderId int64) (m *model.Order, err error) {
|
||||
return m, nil
|
||||
}
|
||||
|
||||
func (r *OrderDao) GetOrderPreloadById(orderId int64) (m *model.Order, err error) {
|
||||
err = global.Db.Preload(clause.Associations).First(&m, orderId).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// AddOrder 新增
|
||||
func (r *OrderDao) AddOrder(tx *gorm.DB, model *model.Order) (*model.Order, error) {
|
||||
if err := tx.Create(model).Error; err != nil {
|
||||
|
||||
@ -23,6 +23,15 @@ func (r *OrderInquiryDao) GetOrderInquiryById(orderInquiryId int64) (m *model.Or
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetOrderInquiryByOrderId 获取问诊订单数据-订单id
|
||||
func (r *OrderInquiryDao) GetOrderInquiryByOrderId(orderId int64) (m *model.OrderInquiry, err error) {
|
||||
err = global.Db.Where("order_id = ?", orderId).First(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetOrderInquiryPreloadById 获取问诊订单数据-加载全部关联-问诊订单id
|
||||
func (r *OrderInquiryDao) GetOrderInquiryPreloadById(orderInquiryId int64) (m *model.OrderInquiry, err error) {
|
||||
err = global.Db.Preload(clause.Associations).First(&m, orderInquiryId).Error
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -13,19 +13,19 @@ type CouponRequest struct {
|
||||
type GetSystemCouponPage struct {
|
||||
Page int `json:"page" form:"page" label:"页码"`
|
||||
PageSize int `json:"page_size" form:"page_size" label:"每页个数"`
|
||||
CouponName string `json:"coupon_name" form:"coupon_name" label:"优惠卷名称"` // 优惠卷名称
|
||||
CouponClient *int `json:"coupon_client" form:"coupon_client" label:"使用平台(1:小程序)"` // 使用平台(1:小程序)
|
||||
CouponType *int `json:"coupon_type" form:"coupon_type" label:"优惠卷类型(1:无门槛 2:满减 3:数量)"` // 优惠卷类型(1:无门槛 2:满减 3:数量)
|
||||
CouponStatus *int `json:"coupon_status" form:"coupon_status" label:"状态(1:正常 2:强制失效 3:结束 4:删除)"` // 状态(1:正常 2:强制失效 3:结束 4:删除)
|
||||
DistributionObject *int `json:"distribution_object" form:"distribution_object" label:"发放对象(1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户)"` // 发放对象(1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户)
|
||||
ApplicationScope *int `json:"application_scope" form:"application_scope" label:"适用范围(1:全场通用 2:问诊 3:按品牌适用 4:按类别适用 5:单品使用 6:全品类药品)"` // 适用范围(1:全场通用 2:问诊 3:按品牌适用 4:按类别适用 5:单品使用 6:全品类药品)
|
||||
InquiryType string `json:"inquiry_type" form:"inquiry_type" label:"关联问诊类型,application_scope=问诊时存在生效,逗号分隔(1:全部 2:快速问诊 3:专家问诊 4:公益问诊 5:问诊购药 6:检测)"` // 关联问诊类型,application_scope=问诊时存在生效,逗号分隔(1:全部 2:快速问诊 3:专家问诊 4:公益问诊 5:问诊购药 6:检测)
|
||||
BrandId string `json:"brand_id" form:"brand_id" label:"关联品牌id(如不限制品牌,此项为空)"` // 关联品牌id(如不限制品牌,此项为空)
|
||||
IsMutex *int `json:"is_mutex" form:"is_mutex" label:"是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用"` // 是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用
|
||||
IsDisplay *int `json:"is_display" form:"is_display" label:"是否展示(0:否 1:是)"` // 是否展示(0:否 1:是)
|
||||
ValidType *int `json:"valid_type" form:"valid_type" label:"有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效)"` // 有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效)
|
||||
IsReissuableAfterExpire *int `json:"is_reissuable_after_expire" form:"is_reissuable_after_expire" label:"过期之后是否允许再次发放(0:否 1:是)"` // 过期之后是否允许再次发放(0:否 1:是)
|
||||
IsPopup *int `json:"is_popup" form:"is_popup" label:"是否首页弹窗(0:否 1:是)"` // 是否首页弹窗(0:否 1:是)
|
||||
CouponName string `json:"coupon_name" form:"coupon_name" label:"优惠卷名称"` // 优惠卷名称
|
||||
CouponClient *int `json:"coupon_client" form:"coupon_client" label:"使用平台(1:小程序)"` // 使用平台(1:小程序)
|
||||
CouponType *int `json:"coupon_type" form:"coupon_type" label:"优惠卷类型(1:无门槛 2:满减 3:数量)"` // 优惠卷类型(1:无门槛 2:满减 3:数量)
|
||||
CouponStatus *int `json:"coupon_status" form:"coupon_status" label:"状态(1:正常 2:强制失效 3:结束 4:删除)"` // 状态(1:正常 2:强制失效 3:结束 4:删除)
|
||||
DistributionObject *int `json:"distribution_object" form:"distribution_object" label:"发放对象(1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户 8:app用户)"` // (1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户 8:app用户)
|
||||
ApplicationScope *int `json:"application_scope" form:"application_scope" label:"适用范围(1:全场通用 2:问诊 3:按品牌适用 4:按类别适用 5:单品使用 6:全品类药品)"` // 适用范围(1:全场通用 2:问诊 3:按品牌适用 4:按类别适用 5:单品使用 6:全品类药品)
|
||||
InquiryType string `json:"inquiry_type" form:"inquiry_type" label:"关联问诊类型,application_scope=问诊时存在生效,逗号分隔(1:全部 2:快速问诊 3:专家问诊 4:公益问诊 5:问诊购药 6:检测)"` // 关联问诊类型,application_scope=问诊时存在生效,逗号分隔(1:全部 2:快速问诊 3:专家问诊 4:公益问诊 5:问诊购药 6:检测)
|
||||
BrandId string `json:"brand_id" form:"brand_id" label:"关联品牌id(如不限制品牌,此项为空)"` // 关联品牌id(如不限制品牌,此项为空)
|
||||
IsMutex *int `json:"is_mutex" form:"is_mutex" label:"是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用"` // 是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用
|
||||
IsDisplay *int `json:"is_display" form:"is_display" label:"是否展示(0:否 1:是)"` // 是否展示(0:否 1:是)
|
||||
ValidType *int `json:"valid_type" form:"valid_type" label:"有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效)"` // 有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效)
|
||||
IsReissuableAfterExpire *int `json:"is_reissuable_after_expire" form:"is_reissuable_after_expire" label:"过期之后是否允许再次发放(0:否 1:是)"` // 过期之后是否允许再次发放(0:否 1:是)
|
||||
IsPopup *int `json:"is_popup" form:"is_popup" label:"是否首页弹窗(0:否 1:是)"` // 是否首页弹窗(0:否 1:是)
|
||||
CouponDesc string `json:"coupon_desc" form:"coupon_desc" label:"优惠卷描述"`
|
||||
CreatedAt string `json:"created_at" form:"created_at" label:"创建时间"` // 创建时间
|
||||
}
|
||||
@ -36,8 +36,8 @@ type AddSystemCoupon struct {
|
||||
CouponIcon string `json:"coupon_icon" form:"coupon_icon" label:"头像"` // 优惠卷名称
|
||||
CouponClient *int `json:"coupon_client" form:"coupon_client" label:"使用平台" validate:"required,oneof=1"` // 使用平台(1:小程序)
|
||||
CouponType *int `json:"coupon_type" form:"coupon_type" label:"优惠卷类型" validate:"required,oneof=1 2 3"` // 优惠卷类型(1 :无门槛 2:满减 3:数量)
|
||||
DistributionObject *int `json:"distribution_object" form:"distribution_object" label:"发放对象" validate:"required,oneof=1 2 3 4 5 6 7"`
|
||||
ApplicationScope *int `json:"application_scope" form:"application_scope" label:"适用范围" validate:"required,oneof=1 2 3 4 5 6"` // (1:全场通用 2:问诊 3:按品牌适用 4:按类别适用 5:单品使用 6:全品类药品)
|
||||
DistributionObject *int `json:"distribution_object" form:"distribution_object" label:"发放对象" validate:"required,oneof=1 2 3 4 5 6 7 8"`
|
||||
ApplicationScope *int `json:"application_scope" form:"application_scope" label:"适用范围" validate:"required,oneof=1 2 3 4 5 6"` // (1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户 8:app用户)
|
||||
InquiryType []string `json:"inquiry_type" form:"inquiry_type" label:"关联问诊类型"` // 关联问诊类型,application_scope=问诊时存在生效,逗号分隔(1:全部 2:快速问诊 3:专家问诊 4:公益问诊 5:问诊购药 6:检测)
|
||||
BrandId *string `json:"brand_id" form:"brand_id" label:"关联品牌id"` // 关联品牌id(如不限制品牌,此项为空)
|
||||
IsMutex *int `json:"is_mutex" form:"is_mutex" label:"是否互斥" validate:"required,oneof=0 1"` // 是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用
|
||||
@ -62,7 +62,7 @@ type AddSystemCoupon struct {
|
||||
type PutSystemCoupon struct {
|
||||
CouponName string `json:"coupon_name" form:"coupon_name" label:"优惠卷名称" validate:"required"` // 优惠卷名称
|
||||
CouponIcon string `json:"coupon_icon" form:"coupon_icon" label:"头像"` // 优惠卷名称
|
||||
DistributionObject *int `json:"distribution_object" form:"distribution_object" label:"发放对象" validate:"required,oneof=1 2 3 4 5 6 7"` // (1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户)
|
||||
DistributionObject *int `json:"distribution_object" form:"distribution_object" label:"发放对象" validate:"required,oneof=1 2 3 4 5 6 7 8"` // (1:全部用户 2:新注册用户 3:会员 4:近期消费 5:近期购药 6:存量用户 7:健康包服务用户 8:app用户)
|
||||
InquiryType []string `json:"inquiry_type" form:"inquiry_type" label:"关联问诊类型"` // 关联问诊类型,application_scope=问诊时存在生效,逗号分隔(1:全部 2:快速问诊 3:专家问诊 4:公益问诊 5:问诊购药 6:检测)
|
||||
BrandId *string `json:"brand_id" form:"brand_id" label:"关联品牌id"` // 关联品牌id(如不限制品牌,此项为空)
|
||||
IsMutex *int `json:"is_mutex" form:"is_mutex" label:"是否互斥" validate:"required,oneof=0 1"` // 是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用
|
||||
|
||||
@ -257,23 +257,37 @@ func (r *DoctorWithdrawalService) PutDoctorWithdrawalExamine(req requests.PutDoc
|
||||
}
|
||||
|
||||
// 修改问诊订单提现状态
|
||||
orderDao := dao.OrderDao{}
|
||||
orderInquiryDao := dao.OrderInquiryDao{}
|
||||
for _, v := range doctorWithdrawalOrders {
|
||||
// 获取订单数据
|
||||
orderInquiryDao := dao.OrderInquiryDao{}
|
||||
orderInquiry, err := orderInquiryDao.GetOrderInquiryById(v.OrderInquiryId)
|
||||
if err != nil {
|
||||
order, err := orderDao.GetOrderPreloadById(v.OrderId)
|
||||
if order == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("关联订单数据错误")
|
||||
}
|
||||
|
||||
orderInquiryData := make(map[string]interface{})
|
||||
orderInquiryData["is_withdrawal"] = 0
|
||||
orderInquiryData["withdrawal_time"] = nil
|
||||
err = orderInquiryDao.EditOrderInquiryById(tx, orderInquiry.OrderInquiryId, orderInquiryData)
|
||||
// 修改订单数据
|
||||
orderData := make(map[string]interface{})
|
||||
orderData["is_withdrawal"] = 0
|
||||
orderData["withdrawal_time"] = nil
|
||||
|
||||
err = orderDao.EditOrderById(tx, v.OrderId, orderData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("回滚关联订单数据失败")
|
||||
}
|
||||
|
||||
if order.OrderType == 1 {
|
||||
orderInquiryData := make(map[string]interface{})
|
||||
orderInquiryData["is_withdrawal"] = 0
|
||||
orderInquiryData["withdrawal_time"] = nil
|
||||
err = orderInquiryDao.EditOrderInquiryById(tx, order.OrderInquiry.OrderInquiryId, orderInquiryData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("操作关联订单数据失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -326,22 +340,36 @@ func (r *DoctorWithdrawalService) PutDoctorWithdrawalPayment(withdrawalId, admin
|
||||
}
|
||||
|
||||
// 修改问诊订单提现状态
|
||||
orderDao := dao.OrderDao{}
|
||||
orderInquiryDao := dao.OrderInquiryDao{}
|
||||
for _, v := range doctorWithdrawalOrders {
|
||||
// 获取订单数据
|
||||
orderInquiryDao := dao.OrderInquiryDao{}
|
||||
orderInquiry, err := orderInquiryDao.GetOrderInquiryById(v.OrderInquiryId)
|
||||
order, err := orderDao.GetOrderPreloadById(v.OrderId)
|
||||
if order == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("关联订单数据错误")
|
||||
}
|
||||
|
||||
// 修改订单数据
|
||||
orderData := make(map[string]interface{})
|
||||
orderData["is_withdrawal"] = 1
|
||||
orderData["withdrawal_time"] = time.Now().Format("2006-01-02 15:04:05")
|
||||
|
||||
err = orderDao.EditOrderById(tx, v.OrderId, orderData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("关联订单数据错误")
|
||||
}
|
||||
|
||||
orderInquiryData := make(map[string]interface{})
|
||||
orderInquiryData["is_withdrawal"] = 1
|
||||
orderInquiryData["withdrawal_time"] = time.Now().Format("2006-01-02 15:04:05")
|
||||
err = orderInquiryDao.EditOrderInquiryById(tx, orderInquiry.OrderInquiryId, orderInquiryData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("操作关联订单数据失败")
|
||||
if order.OrderType == 1 {
|
||||
orderInquiryData := make(map[string]interface{})
|
||||
orderInquiryData["is_withdrawal"] = 1
|
||||
orderInquiryData["withdrawal_time"] = time.Now().Format("2006-01-02 15:04:05")
|
||||
err = orderInquiryDao.EditOrderInquiryById(tx, order.OrderInquiry.OrderInquiryId, orderInquiryData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("操作关联订单数据失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -358,31 +386,35 @@ func (r *DoctorWithdrawalService) getDoctorWithdrawalOrderAmountTotal(withdrawal
|
||||
return 0, errors.New("关联订单数据错误")
|
||||
}
|
||||
|
||||
orderDao := dao.OrderDao{}
|
||||
|
||||
// 总金额
|
||||
var amountTotal = decimal.NewFromFloat(0)
|
||||
for _, v := range doctorWithdrawalOrders {
|
||||
// 获取订单数据
|
||||
orderInquiryDao := dao.OrderInquiryDao{}
|
||||
orderInquiry, err := orderInquiryDao.GetOrderInquiryById(v.OrderInquiryId)
|
||||
order, err := orderDao.GetOrderPreloadById(v.OrderId)
|
||||
if err != nil {
|
||||
return 0, errors.New("订单数据错误")
|
||||
}
|
||||
|
||||
if orderInquiry.InquiryStatus != 6 {
|
||||
return 0, errors.New("存在未结束订单,数据错误")
|
||||
if order.OrderInquiry != nil {
|
||||
if order.OrderInquiry.InquiryStatus != 6 {
|
||||
return 0, errors.New("存在未结束订单,数据错误")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if orderInquiry.IsWithdrawal == 1 {
|
||||
if order.IsWithdrawal == 1 {
|
||||
return 0, errors.New("存在已被提现订单,数据错误")
|
||||
}
|
||||
|
||||
if orderInquiry.InquiryPayStatus != 2 {
|
||||
if order.PayStatus != 2 {
|
||||
return 0, errors.New("存在支付状态错误订单,数据错误")
|
||||
}
|
||||
|
||||
var orderInquiryAmountTotal = decimal.NewFromFloat(orderInquiry.AmountTotal)
|
||||
var orderAmountTotal = decimal.NewFromFloat(order.AmountTotal)
|
||||
|
||||
amountTotal = amountTotal.Add(orderInquiryAmountTotal)
|
||||
amountTotal = amountTotal.Add(orderAmountTotal)
|
||||
}
|
||||
|
||||
// 分成比例
|
||||
|
||||
@ -51,7 +51,6 @@ type DoctorWithdrawalOrderData struct {
|
||||
PayTime time.Time // 支付时间
|
||||
InquiryNo string // 系统订单编号
|
||||
EscrowTradeNo string // 第三方支付流水号
|
||||
InquiryStatus string // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)
|
||||
AmountTotal float64 // 订单金额
|
||||
CouponAmountTotal float64 // 优惠卷金额
|
||||
PaymentAmountTotal float64 // 实际付款金额
|
||||
@ -517,7 +516,6 @@ func (r *ExportService) DoctorWithdrawalOrder(doctorWithdrawalOrders []*model.Do
|
||||
{Value: "支付时间", CellType: "date", NumberFmt: "yyyy-mm-dd hh:mm:ss", ColWidth: 30},
|
||||
{Value: "系统订单编号", CellType: "string", NumberFmt: "", ColWidth: 30},
|
||||
{Value: "第三方支付流水号", CellType: "string", NumberFmt: "", ColWidth: 30},
|
||||
{Value: "订单状态", CellType: "string", NumberFmt: "", ColWidth: 18},
|
||||
{Value: "订单金额", CellType: "float", NumberFmt: "0.0000", ColWidth: 18},
|
||||
{Value: "优惠卷金额", CellType: "float", NumberFmt: "0.0000", ColWidth: 18},
|
||||
{Value: "付款金额", CellType: "float", NumberFmt: "0.0000", ColWidth: 18},
|
||||
@ -540,46 +538,42 @@ func (r *ExportService) DoctorWithdrawalOrder(doctorWithdrawalOrders []*model.Do
|
||||
payChannel := "未知"
|
||||
inquiryNo := "未知"
|
||||
escrowTradeNo := "未知"
|
||||
inquiryStatus := "未知"
|
||||
var amountTotal float64
|
||||
var couponAmountTotal float64
|
||||
var paymentAmountTotal float64
|
||||
var doctorAmount float64
|
||||
var payTime time.Time
|
||||
if v.OrderInquiry != nil {
|
||||
patientName = v.OrderInquiry.PatientName
|
||||
if v.Order.OrderInquiry != nil {
|
||||
patientName = v.Order.OrderInquiry.PatientName
|
||||
|
||||
// 患者性别
|
||||
patientSex = utils.SexToString(v.OrderInquiry.PatientSex)
|
||||
patientSex = utils.SexToString(v.Order.OrderInquiry.PatientSex)
|
||||
|
||||
// 患者年龄
|
||||
patientAge = fmt.Sprintf("%d", v.OrderInquiry.PatientAge)
|
||||
patientAge = fmt.Sprintf("%d", v.Order.OrderInquiry.PatientAge)
|
||||
|
||||
// 患者电话
|
||||
if v.OrderInquiry.User != nil {
|
||||
patientMobile = v.OrderInquiry.User.Mobile
|
||||
if v.Order.OrderInquiry.User != nil {
|
||||
patientMobile = v.Order.OrderInquiry.User.Mobile
|
||||
}
|
||||
|
||||
// 支付渠道
|
||||
payChannel = utils.PayChannelToString(v.OrderInquiry.InquiryPayChannel)
|
||||
payChannel = utils.PayChannelToString(v.Order.OrderInquiry.InquiryPayChannel)
|
||||
|
||||
inquiryNo = v.OrderInquiry.InquiryNo
|
||||
escrowTradeNo = v.OrderInquiry.EscrowTradeNo
|
||||
inquiryNo = v.Order.OrderInquiry.InquiryNo
|
||||
escrowTradeNo = v.Order.OrderInquiry.EscrowTradeNo
|
||||
|
||||
// 问诊订单状态
|
||||
inquiryStatus = utils.InquiryStatusToString(v.OrderInquiry.InquiryStatus)
|
||||
|
||||
amountTotal = v.OrderInquiry.AmountTotal
|
||||
couponAmountTotal = v.OrderInquiry.CouponAmountTotal
|
||||
paymentAmountTotal = v.OrderInquiry.PaymentAmountTotal
|
||||
amountTotal = v.Order.OrderInquiry.AmountTotal
|
||||
couponAmountTotal = v.Order.OrderInquiry.CouponAmountTotal
|
||||
paymentAmountTotal = v.Order.OrderInquiry.PaymentAmountTotal
|
||||
|
||||
// 医生收益
|
||||
doctorAmount, _ = decimal.NewFromFloat(v.OrderInquiry.AmountTotal).Mul(decimal.NewFromFloat(0.75)).Round(2).Float64()
|
||||
doctorAmount, _ = decimal.NewFromFloat(v.Order.OrderInquiry.AmountTotal).Mul(decimal.NewFromFloat(0.75)).Round(2).Float64()
|
||||
|
||||
// 时间处理
|
||||
|
||||
if v.OrderInquiry.PayTime != (model.LocalTime{}) {
|
||||
t := time.Time(v.OrderInquiry.PayTime)
|
||||
if v.Order.OrderInquiry.PayTime != (model.LocalTime{}) {
|
||||
t := time.Time(v.Order.OrderInquiry.PayTime)
|
||||
payTime = t
|
||||
}
|
||||
}
|
||||
@ -594,7 +588,6 @@ func (r *ExportService) DoctorWithdrawalOrder(doctorWithdrawalOrders []*model.Do
|
||||
PayTime: payTime,
|
||||
InquiryNo: inquiryNo,
|
||||
EscrowTradeNo: escrowTradeNo,
|
||||
InquiryStatus: inquiryStatus,
|
||||
AmountTotal: amountTotal,
|
||||
CouponAmountTotal: couponAmountTotal,
|
||||
PaymentAmountTotal: paymentAmountTotal,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user