From afa0dbb4f54e7244835dd67ec33c3e545f122f71 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 17 一月 2025 16:40:43 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java | 76 ++++++++++++++++++++++++++++++++++++- 1 files changed, 73 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java index 76bcae0..572ce5c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java @@ -3,7 +3,13 @@ import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; -import lombok.extern.slf4j.Slf4j; +import com.ruoyi.system.api.constant.DelayTaskEnum; +import com.ruoyi.system.api.service.RemoteActivityService; +import com.ruoyi.system.api.service.RemoteConfigService; +import com.ruoyi.system.api.service.RemoteCouponService; +import com.ruoyi.system.api.service.RemoteGoodsService; +import com.ruoyi.system.api.service.RemoteOrderService; +import lombok.extern.log4j.Log4j2; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; @@ -11,6 +17,7 @@ import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.Date; /** @@ -20,12 +27,26 @@ * @date 2023年06月06日 * @version: 1.0 */ -@Slf4j +@Log4j2 @Component public class RedisListener extends KeyExpirationEventMessageListener { private RedisTemplate<String, Object> redisTemplate; + @Resource + private RemoteConfigService remoteConfigService; + + @Resource + private RemoteCouponService remoteCouponService; + + @Resource + private RemoteActivityService remoteActivityService; + + @Resource + private RemoteOrderService remoteOrderService; + + @Resource + private RemoteGoodsService remoteGoodsService; public RedisListener(RedisMessageListenerContainer listenerContainer, RedisTemplate redisTemplate) { @@ -44,6 +65,21 @@ if(expiredKey.contains("-")){ String[] split = expiredKey.split("-"); String operation=split[0]; + if(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode().equals(operation)){ + //自动发送优惠券 + autoTimeSendCoupon(split[1]); + }else if(DelayTaskEnum.ACTIVITY_START_TASK.getCode().equals(operation)){ + //自动开始任务 + autoStartActivity(split[1]); + }else if(DelayTaskEnum.ACTIVITY_END_TASK.getCode().equals(operation)){ + //自动结束任务 + autoEndActivity(split[1]); + }else if(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode().equals(operation)){ + //自动结束任务 + autoCancelOrder(split[1]); + } else if (DelayTaskEnum.LIVE_APPOINTMENT_TASK.getCode().equals(operation)) { + push(Long.valueOf(split[1])); + } //删除失效的key redisTemplate.delete(expiredKey); @@ -52,6 +88,16 @@ }catch (Exception e){ e.printStackTrace(); } + } + + /** + * 推送消息 + * @param appointmentId + */ + private void push(Long appointmentId) { + remoteGoodsService.push(appointmentId); + //删除定时任务 + remoteConfigService.deleteDelayTask(DelayTaskEnum.LIVE_APPOINTMENT_TASK.getCode()+"-"+appointmentId); } public <T> T getAndSet(final String key, T value){ @@ -66,8 +112,32 @@ } //延时任务表 + //自动定时发送优惠券 + private void autoTimeSendCoupon(String couponId){ + log.info("autoTimeSendCoupon scheduler task is running :" + couponId); + remoteCouponService.autoTimeSendCoupon(couponId); + //删除定时任务 + remoteConfigService.deleteDelayTask(DelayTaskEnum.COUPON_SEND_DELAY_TASK.getCode()+"-"+couponId); + } + private void autoStartActivity(String activityId){ + log.info("autoStartActivity scheduler task is running :" + activityId); + remoteActivityService.startActivity(activityId); + //删除定时任务 + remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode()+"-"+activityId); + } + private void autoEndActivity(String activityId){ + log.info("autoEndActivity scheduler task is running :" + activityId); + remoteActivityService.endActivity(activityId); + //删除定时任务 + remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_END_TASK.getCode()+"-"+activityId); + } - + private void autoCancelOrder(String orderId){ + log.info("autoCancelOrder scheduler task is running :" + orderId); + remoteOrderService.autoCancelOrder(orderId); + //删除定时任务 + remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode()+"-"+orderId); + } } -- Gitblit v1.7.1