mitao
2025-01-17 afa0dbb4f54e7244835dd67ec33c3e545f122f71
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/listener/RedisListener.java
@@ -7,8 +7,9 @@
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.slf4j.Slf4j;
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;
@@ -26,7 +27,7 @@
 * @date 2023年06月06日
 * @version: 1.0
 */
@Slf4j
@Log4j2
@Component
public class RedisListener extends KeyExpirationEventMessageListener {
@@ -43,6 +44,9 @@
    @Resource
    private RemoteOrderService remoteOrderService;
    @Resource
    private RemoteGoodsService remoteGoodsService;
    public RedisListener(RedisMessageListenerContainer listenerContainer,
                         RedisTemplate redisTemplate) {
@@ -73,6 +77,8 @@
                    }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
@@ -84,6 +90,16 @@
        }
    }
    /**
     * 推送消息
     * @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){
        T oldValue=null;
        try {