修改会员订单0元支付的问题

This commit is contained in:
wucongxing8150 2024-09-09 17:35:30 +08:00
parent 508976a93c
commit 7d2ddb6598
3 changed files with 24 additions and 23 deletions

View File

@ -112,8 +112,8 @@ func (b *OrderMember) AddOrderMember(c *gin.Context) {
defer func() {
if r := recover(); r != nil {
tx.Rollback()
utils.LogJsonErr("订单创建失败", r)
responses.FailWithMessage("订单创建失败", c)
utils.LogJsonErr("订单创建失败1", r)
responses.FailWithMessage("订单创建失败2", c)
return
}
}()

View File

@ -86,14 +86,6 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
// 检测用户优惠卷
var userCoupon *model.UserCoupon
if UserCouponId != nil {
// 检测用户是否购买过会员
userService := &UserService{}
isBuy := userService.CheckUserBuyMember(UserId)
if isBuy == true {
// 已购买过会员,无法使用优惠卷
return nil, errors.New("优惠券异常")
}
// 获取优惠卷数据
UserCouponDao := dao.UserCouponDao{}
userCoupon, err = UserCouponDao.GetUserCouponPreloadById(*UserCouponId)
@ -122,6 +114,8 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
paymentAmountTotal = 0 // 实际付款金额
}
fmt.Println(*orderPrice)
fmt.Println(paymentAmountTotal)
if *orderPrice != paymentAmountTotal {
return nil, errors.New("价格异常")
}
@ -135,11 +129,6 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
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:转入退款)
@ -233,6 +222,14 @@ func (r *OrderMemberService) AddOrderMember(tx *gorm.DB, UserId, SystemMemberId
}
}
if paymentAmountTotal == 0 {
// 处理会员订单支付成功
err := r.HandleOrderMemberPaySuccess(tx, orderMember, user)
if err != nil {
return nil, err
}
}
return orderMember, nil
}

View File

@ -21,7 +21,6 @@ func (r *SystemMemberService) GetSystemMemberBuyPrice(m *model.SystemMember) (p
// GetUserBuyPrice 获取会员最终价格
func (r *SystemMemberService) GetUserBuyPrice(userId int64, m *model.SystemMember) (p float64) {
// 优惠价格
price := r.HandleSystemMemberDiscountPrice(m.DiscountPrice, m.DiscountEndTime)
if price == nil {
@ -48,15 +47,20 @@ func (r *SystemMemberService) GetUserBuyPrice(userId int64, m *model.SystemMembe
func (r *SystemMemberService) HandleSystemMemberDiscountPrice(discountPrice *float64, discountEndTime *model.LocalTime) (p *float64) {
// 优惠价格
if discountPrice != nil {
discountEndTime := time.Time(*discountEndTime)
// 检测是否超出优惠时间
now := time.Now()
if discountEndTime.Before(now) {
p = nil
} else {
if discountEndTime == nil {
p = discountPrice
} else {
discountEndTime := time.Time(*discountEndTime)
// 检测是否超出优惠时间
now := time.Now()
if discountEndTime.Before(now) {
p = nil
} else {
p = discountPrice
}
}
}
return p