🎨 优化支付回调
This commit is contained in:
@@ -211,19 +211,47 @@ func (s *OrderService) BalancePay(p request.BalancePay) error {
|
|||||||
ids := strings.Split(order.TeacherVipId, ",")
|
ids := strings.Split(order.TeacherVipId, ",")
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
teacherVip := app.UserTeacherVip{}
|
teacherVip := app.UserTeacherVip{}
|
||||||
teacherVip.TeacherId = uint(order.TeacherId)
|
err = global.GVA_DB.Model(&app.UserTeacherVip{}).
|
||||||
// 将id转为uint
|
Where("teacher_id = ? AND user_id = ? AND teacher_vip_id = ?", order.TeacherId, order.UserId, id).
|
||||||
teacherVipId, _ := strconv.ParseUint(id, 10, 64)
|
Order("id desc"). // 取最新一条
|
||||||
teacherVip.TeacherVipId = uint(teacherVipId)
|
First(&teacherVip).Error
|
||||||
teacherVip.UserId = uint(order.UserId)
|
|
||||||
teacherVip.ExpireAt = time.Now().AddDate(0, 1, 0).Format("2006-01-02 15:04:05") // 会员有效期一个月
|
now := time.Now()
|
||||||
|
var newExpireAt time.Time
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
// 找到记录,判断是否过期
|
||||||
|
expireTime, _ := time.Parse("2006-01-02 15:04:05", teacherVip.ExpireAt)
|
||||||
|
if teacherVip.IsExpire == 1 && expireTime.After(now) {
|
||||||
|
// 未过期,在原有基础上加一个月
|
||||||
|
newExpireAt = expireTime.AddDate(0, 1, 0)
|
||||||
|
} else {
|
||||||
|
// 已过期,从当前时间加一个月
|
||||||
|
newExpireAt = now.AddDate(0, 1, 0)
|
||||||
|
}
|
||||||
|
teacherVip.ExpireAt = newExpireAt.Format("2006-01-02 15:04:05")
|
||||||
teacherVip.IsExpire = 1 // 设置为未过期
|
teacherVip.IsExpire = 1 // 设置为未过期
|
||||||
|
err = global.GVA_DB.Save(&teacherVip).Error
|
||||||
|
if err != nil {
|
||||||
|
global.GVA_LOG.Error("更新用户讲师会员信息失败", zap.Error(err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 没有购买过,直接新建
|
||||||
|
teacherVip := app.UserTeacherVip{
|
||||||
|
TeacherId: uint(order.TeacherId),
|
||||||
|
UserId: uint(order.UserId),
|
||||||
|
TeacherVipId: func() uint { v, _ := strconv.ParseUint(id, 10, 64); return uint(v) }(),
|
||||||
|
ExpireAt: now.AddDate(0, 1, 0).Format("2006-01-02 15:04:05"),
|
||||||
|
IsExpire: 1,
|
||||||
|
}
|
||||||
err = global.GVA_DB.Create(&teacherVip).Error
|
err = global.GVA_DB.Create(&teacherVip).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
global.GVA_LOG.Error("购买讲师会员回调处理失败:", zap.Error(err))
|
global.GVA_LOG.Error("购买讲师会员回调处理失败:", zap.Error(err))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// 计算分成比例,按比例增加讲师余额
|
// 计算分成比例,按比例增加讲师余额
|
||||||
teacher := userM.User{}
|
teacher := userM.User{}
|
||||||
err = global.GVA_DB.Model(&userM.User{}).Where("id = ?", order.TeacherId).First(&teacher).Error
|
err = global.GVA_DB.Model(&userM.User{}).Where("id = ?", order.TeacherId).First(&teacher).Error
|
||||||
|
|||||||
@@ -274,19 +274,47 @@ func NotifyHandle(ctx *gin.Context) error {
|
|||||||
ids := strings.Split(order.TeacherVipId, ",")
|
ids := strings.Split(order.TeacherVipId, ",")
|
||||||
for _, id := range ids {
|
for _, id := range ids {
|
||||||
teacherVip := app.UserTeacherVip{}
|
teacherVip := app.UserTeacherVip{}
|
||||||
teacherVip.TeacherId = uint(order.TeacherId)
|
err = global.GVA_DB.Model(&app.UserTeacherVip{}).
|
||||||
// 将id转为uint
|
Where("teacher_id = ? AND user_id = ? AND teacher_vip_id = ?", order.TeacherId, order.UserId, id).
|
||||||
teacherVipId, _ := strconv.ParseUint(id, 10, 64)
|
Order("id desc"). // 取最新一条
|
||||||
teacherVip.TeacherVipId = uint(teacherVipId)
|
First(&teacherVip).Error
|
||||||
teacherVip.UserId = uint(order.UserId)
|
|
||||||
teacherVip.ExpireAt = time.Now().AddDate(0, 1, 0).Format("2006-01-02 15:04:05") // 会员有效期一个月
|
now := time.Now()
|
||||||
|
var newExpireAt time.Time
|
||||||
|
|
||||||
|
if err == nil {
|
||||||
|
// 找到记录,判断是否过期
|
||||||
|
expireTime, _ := time.Parse("2006-01-02 15:04:05", teacherVip.ExpireAt)
|
||||||
|
if teacherVip.IsExpire == 1 && expireTime.After(now) {
|
||||||
|
// 未过期,在原有基础上加一个月
|
||||||
|
newExpireAt = expireTime.AddDate(0, 1, 0)
|
||||||
|
} else {
|
||||||
|
// 已过期,从当前时间加一个月
|
||||||
|
newExpireAt = now.AddDate(0, 1, 0)
|
||||||
|
}
|
||||||
|
teacherVip.ExpireAt = newExpireAt.Format("2006-01-02 15:04:05")
|
||||||
teacherVip.IsExpire = 1 // 设置为未过期
|
teacherVip.IsExpire = 1 // 设置为未过期
|
||||||
|
err = global.GVA_DB.Save(&teacherVip).Error
|
||||||
|
if err != nil {
|
||||||
|
global.GVA_LOG.Error("更新用户讲师会员信息失败", zap.Error(err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 没有购买过,直接新建
|
||||||
|
teacherVip := app.UserTeacherVip{
|
||||||
|
TeacherId: uint(order.TeacherId),
|
||||||
|
UserId: uint(order.UserId),
|
||||||
|
TeacherVipId: func() uint { v, _ := strconv.ParseUint(id, 10, 64); return uint(v) }(),
|
||||||
|
ExpireAt: now.AddDate(0, 1, 0).Format("2006-01-02 15:04:05"),
|
||||||
|
IsExpire: 1,
|
||||||
|
}
|
||||||
err = global.GVA_DB.Create(&teacherVip).Error
|
err = global.GVA_DB.Create(&teacherVip).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
global.GVA_LOG.Error("购买讲师会员回调处理失败:", zap.Error(err))
|
global.GVA_LOG.Error("购买讲师会员回调处理失败:", zap.Error(err))
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 计算分成比例,按比例增加讲师余额
|
// 计算分成比例,按比例增加讲师余额
|
||||||
teacher := user.User{}
|
teacher := user.User{}
|
||||||
|
|||||||
Reference in New Issue
Block a user