package cc.mrbird.febs.common.listener; import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; import org.springframework.data.redis.listener.RedisMessageListenerContainer; /** * @author wzy * @date 2021-04-16 **/ @Slf4j //@Component public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) { super(listenerContainer); } @Autowired private MallOrderInfoMapper mallOrderInfoMapper; @Override public void onMessage(Message message, byte[] pattern) { // String expireKey = message.toString(); // if (expireKey.startsWith(AppContants.REDIS_ORDER_OVERTIME_PREFIX)) { // List split = StrUtil.split(expireKey, '_'); // if (split.size() < 4) { // log.error("自动取消订单失效:{}", expireKey); // return; // } // Long memberId = Long.valueOf(split.get(2)); // Long orderId = Long.valueOf(split.get(3)); // // MallOrderInfo orderInfo = mallOrderInfoMapper.selectOrderByMemberIdAndId(memberId, orderId); // if (orderInfo == null) { // log.error("自动取消订单参数错误:{}", expireKey); // return; // } // if (orderInfo.getStatus() == OrderStatusEnum.WAIT_PAY.getValue()) { // log.info("自动取消订单:{},{}", memberId, orderId); // orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); // orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); // mallOrderInfoMapper.updateById(orderInfo); // } // } } }