🎨 优化支付回调
This commit is contained in:
@@ -203,8 +203,30 @@ func NotifyHandle(ctx *gin.Context) error {
|
||||
}
|
||||
order.Status = 2 // 设置订单状态为已支付
|
||||
|
||||
// 全站vip订单
|
||||
if order.OrderType == 2 {
|
||||
switch order.OrderType {
|
||||
case 1: // 课程订单
|
||||
err = global.GVA_DB.Save(&order).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("更新订单状态失败", zap.Error(err))
|
||||
return nil
|
||||
}
|
||||
|
||||
// 计算分成比例,按比例增加讲师余额
|
||||
teacher := user.User{}
|
||||
err = global.GVA_DB.Model(&user.User{}).Where("id = ?", order.TeacherId).First(&teacher).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询讲师信息失败", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
// 计算分成金额
|
||||
amount := float64(order.Price) * 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
|
||||
}
|
||||
case 2: // 全站VIP订单
|
||||
userInfo := user.User{}
|
||||
err = global.GVA_DB.Model(&user.User{}).Where("id = ?", order.UserId).First(&userInfo).Error
|
||||
if err != nil {
|
||||
@@ -239,11 +261,7 @@ func NotifyHandle(ctx *gin.Context) error {
|
||||
global.GVA_LOG.Error("更新用户会员状态失败", zap.Error(err))
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是讲师包月订单,更新讲师的会员状态
|
||||
if order.OrderType == 3 {
|
||||
// 逗号分割字符串
|
||||
case 3: // 讲师包月订单
|
||||
ids := strings.Split(order.TeacherVipId, ",")
|
||||
for _, id := range ids {
|
||||
teacherVip := app.UserTeacherVip{}
|
||||
@@ -260,13 +278,24 @@ func NotifyHandle(ctx *gin.Context) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// 计算分成比例,按比例增加讲师余额
|
||||
teacher := user.User{}
|
||||
err = global.GVA_DB.Model(&user.User{}).Where("id = ?", order.TeacherId).First(&teacher).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("查询讲师信息失败", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
// 计算分成金额
|
||||
amount := float64(order.Price) * 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
|
||||
}
|
||||
}
|
||||
|
||||
err = global.GVA_DB.Save(&order).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("更新订单状态失败", zap.Error(err))
|
||||
return nil
|
||||
}
|
||||
log.Printf("订单号:%s 支付成功", transaction.OutTradeNo)
|
||||
} else {
|
||||
// 因为微信这个回调不存在订单号,所以可以告诉微信我还没处理成功,等会它会重新发起通知
|
||||
|
Reference in New Issue
Block a user