From 575c93bb73a15ce4fe2e5329dadce9355dc543e0 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Wed, 5 Jun 2024 18:56:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=8D=B7=E6=98=AF=E5=90=A6=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=8F=91=E6=94=BE=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/service/coupon.go | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/api/service/coupon.go b/api/service/coupon.go index adf19ec..b59bcf2 100644 --- a/api/service/coupon.go +++ b/api/service/coupon.go @@ -519,7 +519,7 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque } // 检测优惠卷可发放数量 - if req.TotalQuantity >= remainingQuantity { + if req.TotalQuantity > remainingQuantity { return false, errors.New("优惠卷数量不足,无法发放") } @@ -588,6 +588,25 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque } }() + // 增加优惠卷发放数量 + err = couponDao.Inc(tx, couponId, "coupon_take_count", req.SingleQuantity) + if err != nil { + tx.Rollback() + return false, errors.New("发放失败") + } + + // 检测优惠卷是否全部发放完毕 + if (req.TotalQuantity - remainingQuantity) == 0 { + maps := make(map[string]interface{}) + maps["coupon_status"] = 3 + err := couponDao.EditCouponById(tx, coupon.CouponId, maps) + if err != nil { + tx.Rollback() + return false, errors.New("发放失败") + } + } + + // 发放优惠卷 for i := 0; i < req.SingleQuantity; i++ { // 添加用户优惠卷表 UserCouponModel := &model.UserCoupon{ @@ -614,13 +633,6 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque return false, errors.New("发放失败") } - // 增加优惠卷发放数量 - err = couponDao.Inc(tx, couponId, "coupon_take_count", 1) - if err != nil { - tx.Rollback() - return false, errors.New("发放失败") - } - // 添加弹窗表 if coupon.IsPopup == 1 { popupModel := &model.Popup{