🐛 修复分成金额错误计算bug

This commit is contained in:
2025-09-17 12:08:45 +08:00
parent 7f066800a8
commit 914513b5da
2 changed files with 27 additions and 8 deletions

View File

@@ -167,14 +167,12 @@ func (s *OrderService) BalancePay(p request.BalancePay) error {
// 全站Vip
if order.OrderType == 2 {
// 更新用户的会员状态
user.IsVip = 1
// 查询用户购买的会员信息
vipInfo := vip.Vip{}
err = global.GVA_DB.Model(&vip.Vip{}).Where("id = ?", order.VipId).First(&vipInfo).Error
if err != nil {
global.GVA_LOG.Error("查询会员信息失败", zap.Error(err))
return nil
return err
}
// 计算会员的过期时间
if user.VipExpireTime != "" {
@@ -190,11 +188,22 @@ func (s *OrderService) BalancePay(p request.BalancePay) error {
// 如果没有会员时间,则从当前时间开始计算
user.VipExpireTime = time.Now().AddDate(0, 0, int(vipInfo.Expiration)).Format("2006-01-02")
}
// 更新用户的会员状态
user.IsVip = 1
if vipInfo.Level == 1 {
user.UserLabel = 2 // VIP
}
if vipInfo.Level == 2 {
user.UserLabel = 3 // SVIP
}
err = global.GVA_DB.Save(&user).Error
if err != nil {
global.GVA_LOG.Error("更新用户会员状态失败", zap.Error(err))
return nil
return err
}
return nil
}
// 讲师包月
if order.OrderType == 3 {
@@ -223,13 +232,14 @@ func (s *OrderService) BalancePay(p request.BalancePay) error {
return err
}
// 计算分成金额
amount := float64(order.Price) * float64(teacher.ExpectRate) / 100.0
amount := float64(order.Price/100) * float64(teacher.ExpectRate) / 100.0
teacher.Balance = teacher.Balance + amount
err = global.GVA_DB.Save(&teacher).Error
if err != nil {
global.GVA_LOG.Error("更新讲师余额失败", zap.Error(err))
return err
}
return nil
}
// 计算分成比例,按比例增加讲师余额
teacher := userM.User{}
@@ -239,7 +249,7 @@ func (s *OrderService) BalancePay(p request.BalancePay) error {
return err
}
// 计算分成金额
amount := float64(order.Price) * float64(teacher.ExpectRate) / 100.0
amount := float64(order.Price/100) * float64(teacher.ExpectRate) / 100.0
teacher.Balance = teacher.Balance + amount
err = global.GVA_DB.Save(&teacher).Error
if err != nil {