更新了优惠券模块

This commit is contained in:
chen-xin-zhi 2025-02-08 07:30:27 +08:00
parent f1dfd35960
commit 50a5b81f72
4 changed files with 17 additions and 6 deletions
src/main/java/com/cultural/heritage

View File

@ -132,6 +132,10 @@ public class CouponController {
boolean result = couponService.saveOrUpdate(coupon);
ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR, "优惠券更新失败");
// 向消息队列中发送优惠券创建的消息
couponService.sendCouponCreateMessage(coupon);
return ResultUtils.success(true);
}

View File

@ -28,17 +28,22 @@ public class CouponStatusListener {
exchange = @Exchange(name = MqConstant.DELAY_EXCHANGE, delayed = "true"),
key = MqConstant.DELAY_COUPON_ROUTING_KEY
))
public void listenDelayMessage(MultiDelayMessage<Long> msg) {
public void listenDelayMessage(MultiDelayMessage<Coupon> msg) {
System.out.println("\n\n\n\n\nCouponStatusListener.listenerDelayMessage msg-------------------------------->" + msg);
// 1.获取消息中的优惠券id
Long couponId = msg.getData();
Coupon sourceCoupon = msg.getData();
Long couponId = sourceCoupon.getId();
// 2.判断优惠券是否存在
Coupon coupon = couponService.getById(couponId);
if (coupon == null) {
Coupon targetCoupon = couponService.getById(couponId);
if (targetCoupon == null) {
return ;
}
// 3.更新优惠券状态
// 3.判断日期是否被更新过
if (!sourceCoupon.getEndTime().equals(targetCoupon.getEndTime())) {
return ;
}
// 4.更新优惠券状态
UpdateWrapper<Coupon> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", couponId).set("status", "已过期");
boolean update = couponService.update(updateWrapper);

View File

@ -33,6 +33,7 @@ public interface CouponService extends IService<Coupon> {
void sendCouponCreateMessage(Coupon coupon);
/**
* 向消息队列中发送用户优惠券创建的消息
*/

View File

@ -111,7 +111,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
@Override
public void sendCouponCreateMessage(Coupon coupon) {
// 延迟检查优惠券是否过期
MultiDelayMessage<Long> msg = new MultiDelayMessage<>(coupon.getId());
MultiDelayMessage<Coupon> msg = new MultiDelayMessage<>(coupon);
rabbitTemplate.convertAndSend(MqConstant.DELAY_EXCHANGE,
MqConstant.DELAY_COUPON_ROUTING_KEY, msg, message -> {
//计算优惠券截止日期和当前的时间差
@ -126,6 +126,7 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
/**
* 向消息队列中发送用户优惠券创建的消息
*/