处理会员订单支付成功

This commit is contained in:
wucongxing8150 2024-09-09 14:30:32 +08:00
parent d6dde2d5d3
commit 9771b2e76f
2 changed files with 46 additions and 34 deletions

View File

@ -239,38 +239,12 @@ func (r *CallBack) WxPayMember(c *gin.Context) {
// 处理支付成功情况
if wxResult.OrderStatus == 2 {
// 完成未支付单项订单
orderSingleService := service.OrderSingleService{}
res, err := orderSingleService.CompleteUnPayOrderSingle(tx, orderMember.UserId)
if err != nil || res == false {
tx.Rollback()
c.JSON(http.StatusInternalServerError, gin.H{"code": "ERROR", "message": err})
return
}
// 处理用户会员过期时间
// 获取订单配置
systemMemberDao := dao.SystemMemberDao{}
systemMember, err := systemMemberDao.GetSystemMemberById(orderMember.SystemMemberId)
// 处理会员订单支付成功
orderMemberService := service.OrderMemberService{}
err := orderMemberService.HandleOrderMemberPaySuccess(tx, orderMember, user)
if err != nil {
tx.Rollback()
c.JSON(http.StatusInternalServerError, gin.H{"code": "ERROR", "message": "会员配置错误"})
return
}
userService := service.UserService{}
res = userService.AddUserMemberValidDate(tx, user, int(systemMember.MemberDays))
if res == false {
tx.Rollback()
c.JSON(http.StatusInternalServerError, gin.H{"code": "ERROR", "message": "增加用户会员到期时间失败"})
return
}
// 增加用户会员购买次数
res, err = userService.AddUserMemberBuyCount(tx, user.UserId)
if err != nil || res == false {
tx.Rollback()
c.JSON(http.StatusInternalServerError, gin.H{"code": "ERROR", "message": "增加用户会员到期时间失败"})
c.JSON(http.StatusInternalServerError, gin.H{"code": "ERROR", "message": err.Error()})
return
}
}

View File

@ -119,7 +119,7 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
paymentAmountTotal = amountTotal - couponAmountTotal // 实际付款金额
paymentAmountTotal = math.Round(paymentAmountTotal*100) / 100
if paymentAmountTotal < 0 {
paymentAmountTotal = 0
paymentAmountTotal = 0 // 实际付款金额
}
if *orderPrice != paymentAmountTotal {
@ -127,14 +127,19 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
}
if paymentAmountTotal == 0 {
paymentAmountTotal = 0 // 实际付款金额
orderStatus = 2 // 订单状态1:待支付 2:已完成 3:已取消)
payStatus = 2 // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
orderStatus = 2 // 订单状态1:待支付 2:已完成 3:已取消)
payStatus = 2 // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
now := model.LocalTime(time.Now())
payTime = &now // 支付时间
escrowTradeNo = "GD" + global.Snowflake.Generate().String() // 第三方支付流水号
// 处理会员订单支付成功
err := r.HandleOrderMemberPaySuccess(tx, orderMember, user)
if err != nil {
return nil, err
}
} else {
orderStatus = 1 // 订单状态1:待支付 2:已完成 3:已取消)
payStatus = 1 // 支付状态1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
@ -404,3 +409,36 @@ func (r *OrderMemberService) OrderCouponRefund(tx *gorm.DB, order *model.OrderMe
return nil
}
// HandleOrderMemberPaySuccess 处理会员订单支付成功
func (r *OrderMemberService) HandleOrderMemberPaySuccess(tx *gorm.DB, order *model.OrderMember, user *model.User) error {
// 完成未支付单项订单
orderSingleService := OrderSingleService{}
res, err := orderSingleService.CompleteUnPayOrderSingle(tx, order.UserId)
if err != nil || res == false {
return err
}
// 处理用户会员过期时间
// 获取订单配置
systemMemberDao := dao.SystemMemberDao{}
systemMember, err := systemMemberDao.GetSystemMemberById(order.SystemMemberId)
if err != nil {
return errors.New("会员配置错误")
}
// 增加用户会员过期时间
userService := UserService{}
res = userService.AddUserMemberValidDate(tx, user, int(systemMember.MemberDays))
if res == false {
return errors.New("增加用户会员到期时间失败")
}
// 增加用户会员购买次数
res, err = userService.AddUserMemberBuyCount(tx, user.UserId)
if err != nil || res == false {
return errors.New("增加用户会员到期时间失败")
}
return nil
}