修改提现数据3

This commit is contained in:
wucongxing8150 2024-06-26 11:34:36 +08:00
parent a0cc55a37b
commit ed736a7c92
2 changed files with 56 additions and 17 deletions

View File

@ -2,6 +2,7 @@ package dao
import ( import (
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/clause"
"hospital-admin-api/api/model" "hospital-admin-api/api/model"
"hospital-admin-api/global" "hospital-admin-api/global"
) )
@ -18,6 +19,14 @@ func (r *OrderDao) GetOrderById(orderId int64) (m *model.Order, err error) {
return m, nil 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 新增 // AddOrder 新增
func (r *OrderDao) AddOrder(tx *gorm.DB, model *model.Order) (*model.Order, error) { func (r *OrderDao) AddOrder(tx *gorm.DB, model *model.Order) (*model.Order, error) {
if err := tx.Create(model).Error; err != nil { if err := tx.Create(model).Error; err != nil {

View File

@ -326,22 +326,48 @@ func (r *DoctorWithdrawalService) PutDoctorWithdrawalPayment(withdrawalId, admin
} }
// 修改问诊订单提现状态 // 修改问诊订单提现状态
orderDao := dao.OrderDao{}
orderInquiryDao := dao.OrderInquiryDao{}
orderServicePackageDao := dao.OrderServicePackageDao{}
for _, v := range doctorWithdrawalOrders { for _, v := range doctorWithdrawalOrders {
// 获取订单数据 // 获取订单数据
orderInquiryDao := dao.OrderInquiryDao{} order, err := orderDao.GetOrderPreloadById(v.OrderId)
orderInquiry, err := orderInquiryDao.GetOrderInquiryById(v.OrderInquiryId) 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 { if err != nil {
tx.Rollback() tx.Rollback()
return false, errors.New("关联订单数据错误") return false, errors.New("关联订单数据错误")
} }
orderInquiryData := make(map[string]interface{}) if order.OrderType == 1 {
orderInquiryData["is_withdrawal"] = 1 orderInquiryData := make(map[string]interface{})
orderInquiryData["withdrawal_time"] = time.Now().Format("2006-01-02 15:04:05") orderInquiryData["is_withdrawal"] = 1
err = orderInquiryDao.EditOrderInquiryById(tx, orderInquiry.OrderInquiryId, orderInquiryData) orderInquiryData["withdrawal_time"] = time.Now().Format("2006-01-02 15:04:05")
if err != nil { err = orderInquiryDao.EditOrderInquiryById(tx, order.OrderInquiry.OrderInquiryId, orderInquiryData)
tx.Rollback() if err != nil {
return false, errors.New("操作关联订单数据失败") tx.Rollback()
return false, errors.New("操作关联订单数据失败")
}
}
if order.OrderType == 4 || order.OrderType == 5 {
orderServicePackageData := make(map[string]interface{})
orderServicePackageData["is_withdrawal"] = 1
orderServicePackageData["withdrawal_time"] = time.Now().Format("2006-01-02 15:04:05")
err = orderServicePackageDao.EditOrderServicePackageById(tx, order.OrderId, orderServicePackageData)
if err != nil {
tx.Rollback()
return false, errors.New("操作关联订单数据失败")
}
} }
} }
@ -358,31 +384,35 @@ func (r *DoctorWithdrawalService) getDoctorWithdrawalOrderAmountTotal(withdrawal
return 0, errors.New("关联订单数据错误") return 0, errors.New("关联订单数据错误")
} }
orderDao := dao.OrderDao{}
// 总金额 // 总金额
var amountTotal = decimal.NewFromFloat(0) var amountTotal = decimal.NewFromFloat(0)
for _, v := range doctorWithdrawalOrders { for _, v := range doctorWithdrawalOrders {
// 获取订单数据 // 获取订单数据
orderInquiryDao := dao.OrderInquiryDao{} order, err := orderDao.GetOrderPreloadById(v.OrderId)
orderInquiry, err := orderInquiryDao.GetOrderInquiryByOrderId(v.OrderId)
if err != nil { if err != nil {
return 0, errors.New("订单数据错误") return 0, errors.New("订单数据错误")
} }
if orderInquiry.InquiryStatus != 6 { if order.OrderInquiry != nil {
return 0, errors.New("存在未结束订单,数据错误") if order.OrderInquiry.InquiryStatus != 6 {
return 0, errors.New("存在未结束订单,数据错误")
}
} }
if orderInquiry.IsWithdrawal == 1 { if order.IsWithdrawal == 1 {
return 0, errors.New("存在已被提现订单,数据错误") return 0, errors.New("存在已被提现订单,数据错误")
} }
if orderInquiry.InquiryPayStatus != 2 { if order.PayStatus != 2 {
return 0, errors.New("存在支付状态错误订单,数据错误") return 0, errors.New("存在支付状态错误订单,数据错误")
} }
var orderInquiryAmountTotal = decimal.NewFromFloat(orderInquiry.AmountTotal) var orderAmountTotal = decimal.NewFromFloat(order.AmountTotal)
amountTotal = amountTotal.Add(orderInquiryAmountTotal) amountTotal = amountTotal.Add(orderAmountTotal)
} }
// 分成比例 // 分成比例