优惠卷增加队列处理
This commit is contained in:
parent
4545359713
commit
cb00d5a082
@ -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()
|
tx.Commit()
|
||||||
return true, nil
|
return true, nil
|
||||||
@ -447,6 +482,8 @@ func (r *CouponService) PutSystemCoupon(couponId int64, req requests.PutSystemCo
|
|||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 新增队列
|
||||||
|
|
||||||
tx.Commit()
|
tx.Commit()
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
@ -526,7 +563,6 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque
|
|||||||
|
|
||||||
// 检测优惠卷过期时间
|
// 检测优惠卷过期时间
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
now = now.Add(time.Minute * 10)
|
|
||||||
if coupon.ValidType == 1 {
|
if coupon.ValidType == 1 {
|
||||||
// 1:绝对时效
|
// 1:绝对时效
|
||||||
validStartTime := time.Time(*coupon.ValidStartTime)
|
validStartTime := time.Time(*coupon.ValidStartTime)
|
||||||
@ -535,7 +571,7 @@ func (r *CouponService) GrantSystemCoupon(couponId, adminUserId int64, req reque
|
|||||||
}
|
}
|
||||||
|
|
||||||
validEndTime := time.Time(*coupon.ValidEndTime)
|
validEndTime := time.Time(*coupon.ValidEndTime)
|
||||||
if now.After(validEndTime) {
|
if now.Add(time.Minute * 10).After(validEndTime) {
|
||||||
return false, errors.New("优惠卷即将过期,不支持发放")
|
return false, errors.New("优惠卷即将过期,不支持发放")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user