This commit is contained in:
wucongxing 2023-11-06 11:11:13 +08:00
parent 58149a8c08
commit 78ab9a6ba6

View File

@ -2,12 +2,12 @@ package service
import (
"errors"
"github.com/shopspring/decimal"
"hospital-admin-api/api/dao"
"hospital-admin-api/api/dto"
"hospital-admin-api/api/requests"
"hospital-admin-api/global"
"hospital-admin-api/utils"
"math"
"time"
)
@ -118,12 +118,18 @@ func (r *DoctorWithdrawalService) PutDoctorWithdrawalIncome(req requests.PutDoct
}()
// 计算实际提现金额
actualWithdrawalAmount := math.Floor((doctorWithdrawal.AppliedWithdrawalAmount-req.IncomeTax)*100) / 100
var appliedWithdrawalAmount = decimal.NewFromFloat(doctorWithdrawal.AppliedWithdrawalAmount)
var incomeTax = decimal.NewFromFloat(req.IncomeTax)
// (计算提现金额-个人所得税金额) * 100 取小数点后3位
actualWithdrawalAmount := appliedWithdrawalAmount.Sub(incomeTax).Mul(decimal.NewFromFloat(100)).Floor().Div(decimal.NewFromFloat(100))
// 转为float64
result, _ := actualWithdrawalAmount.Float64()
// 提现申请修改数据-提现金额固定不动,修改个人所得税,实际提现金额跟随变动
doctorWithdrawalData := make(map[string]interface{})
doctorWithdrawalData["actual_withdrawal_amount"] = actualWithdrawalAmount // 实际提现金额
doctorWithdrawalData["income_tax"] = req.IncomeTax // 提现所得税金额
doctorWithdrawalData["actual_withdrawal_amount"] = result // 实际提现金额
doctorWithdrawalData["income_tax"] = req.IncomeTax // 提现所得税金额
err := doctorWithdrawalDao.EditDoctorWithdrawalById(tx, doctorWithdrawal.WithdrawalId, doctorWithdrawalData)
if err != nil {
tx.Rollback()
@ -353,7 +359,7 @@ func (r *DoctorWithdrawalService) getDoctorWithdrawalOrderAmountTotal(withdrawal
}
// 总金额
var amountTotal float64
var amountTotal = decimal.NewFromFloat(0)
for _, v := range doctorWithdrawalOrders {
// 获取订单数据
orderInquiryDao := dao.OrderInquiryDao{}
@ -374,10 +380,19 @@ func (r *DoctorWithdrawalService) getDoctorWithdrawalOrderAmountTotal(withdrawal
return 0, errors.New("存在支付状态错误订单,数据错误")
}
amountTotal = amountTotal + orderInquiry.AmountTotal
var orderInquiryAmountTotal = decimal.NewFromFloat(orderInquiry.AmountTotal)
amountTotal = amountTotal.Sub(orderInquiryAmountTotal)
}
amountTotal = amountTotal * 0.75
// 分成比例
var prop = decimal.NewFromFloat(0.75)
return amountTotal, nil
// 计算分成
amountTotal = amountTotal.Mul(prop)
// 转为float64
result, _ := amountTotal.Float64()
return result, nil
}