From 7d2ddb659840d4869a9234386e7324d137bc2101 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Mon, 9 Sep 2024 17:35:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BC=9A=E5=91=98=E8=AE=A2?= =?UTF-8?q?=E5=8D=950=E5=85=83=E6=94=AF=E4=BB=98=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/OrderMember.go | 4 ++-- api/service/OrderMember.go | 23 ++++++++++------------- api/service/SystemMember.go | 20 ++++++++++++-------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/api/controller/OrderMember.go b/api/controller/OrderMember.go index ce854c9..6f24a9c 100644 --- a/api/controller/OrderMember.go +++ b/api/controller/OrderMember.go @@ -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 } }() diff --git a/api/service/OrderMember.go b/api/service/OrderMember.go index a794afa..0d1b2c1 100644 --- a/api/service/OrderMember.go +++ b/api/service/OrderMember.go @@ -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 } diff --git a/api/service/SystemMember.go b/api/service/SystemMember.go index ffc4302..137b5d8 100644 --- a/api/service/SystemMember.go +++ b/api/service/SystemMember.go @@ -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