优惠卷增加队列处理

This commit is contained in:
wucongxing8150 2024-06-11 13:48:35 +08:00
parent 4545359713
commit cb00d5a082

View File

@ -271,6 +271,41 @@ func (r *CouponService) AddSystemCoupon(req requests.AddSystemCoupon) (bool, err
}
// 增加优惠卷过期队列
if coupon.ValidType == 1 {
validEndTime := time.Time(*coupon.ValidStartTime)
// 计算当天的结束时间
now := time.Now()
year, month, day := now.Date()
location := now.Location()
endOfDay := time.Date(year, month, day, 23, 59, 59, 0, location)
if validEndTime.Before(endOfDay) {
// 需添加队列
// 建立队列连接
rabbitMQ, err := rabbitMq.NewRabbitMQClient()
if err != nil {
tx.Rollback()
return false, errors.New("发放失败")
}
defer rabbitMQ.Close()
data := make(map[string]interface{})
data["coupon_id"] = fmt.Sprintf("%d", coupon.CouponId)
delay := validEndTime.Sub(time.Now())
if delay < 10 {
delay = 10 * time.Second
}
err = rabbitMQ.PublishWithDelay("coupon.expired.delay.queue", "amqp.delay.direct", "CouponExpired", data, delay)
if err != nil {
tx.Rollback()
return false, err
}
}
}
tx.Commit()
return true, nil
@ -447,6 +482,8 @@ func (r *CouponService) PutSystemCoupon(couponId int64, req requests.PutSystemCo
return false, errors.New(err.Error())
}
// 新增队列
tx.Commit()
return true, nil
}
@ -526,7 +563,6 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque
// 检测优惠卷过期时间
now := time.Now()
now = now.Add(time.Minute * 10)
if coupon.ValidType == 1 {
// 1:绝对时效
validStartTime := time.Time(*coupon.ValidStartTime)
@ -535,7 +571,7 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque
}
validEndTime := time.Time(*coupon.ValidEndTime)
if now.After(validEndTime) {
if now.Add(time.Minute * 10).After(validEndTime) {
return false, errors.New("优惠卷即将过期,不支持发放")
}
}