123
This commit is contained in:
@@ -2,9 +2,9 @@ package com.ruoyi.cai.mq.consumer;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.ruoyi.cai.manager.UserForbidManager;
|
||||
import com.ruoyi.cai.mq.CommonDelayTypeEnum;
|
||||
import com.ruoyi.cai.mq.config.CommonDelayMqConfig;
|
||||
import com.ruoyi.cai.mq.dto.CommonDelayDto;
|
||||
import com.ruoyi.cai.mq.CommonDelayMqConfig;
|
||||
import com.ruoyi.cai.ws.job.CheckTimeOutJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -13,8 +13,6 @@ import org.springframework.stereotype.Component;
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CommonDelayMqConsumer {
|
||||
@Autowired
|
||||
private CheckTimeOutJob checkTimeOutJob;
|
||||
@Autowired
|
||||
private UserForbidManager userForbidManager;
|
||||
|
||||
@@ -23,12 +21,18 @@ public class CommonDelayMqConsumer {
|
||||
public void checkTimeOutMq(String message) {
|
||||
log.info("CommonDelayMqConsumer: " + message);
|
||||
CommonDelayDto dto = JSON.parseObject(message, CommonDelayDto.class);
|
||||
switch (dto.getType()){
|
||||
case 1:
|
||||
checkTimeOutJob.deal(dto.getRoomId());
|
||||
break;
|
||||
case 2:
|
||||
userForbidManager.checkAll();
|
||||
CommonDelayTypeEnum typeEnum = dto.getTypeEnum();
|
||||
if(typeEnum == null){
|
||||
log.warn("延时任务执行失败,未检测到正确的类型 dto={}",JSON.toJSONString(dto));
|
||||
return;
|
||||
}
|
||||
switch (typeEnum){
|
||||
case USER_FORBID:
|
||||
try {
|
||||
userForbidManager.checkExpire(dto.getForbidId());
|
||||
}catch (Exception e){
|
||||
log.error("检查用户封禁状态失败!需要开发确认!",e);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.ruoyi.cai.mq.consumer;
|
||||
|
||||
import com.ruoyi.cai.mq.AmqpProducer;
|
||||
import com.ruoyi.cai.mq.config.RoomCheckDelayMqConfig;
|
||||
import com.ruoyi.cai.ws.job.JobResp;
|
||||
import com.ruoyi.cai.ws.job.RoomCheckJobService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class RoomCheckDelayMqConsumer {
|
||||
@Autowired
|
||||
private AmqpProducer amqpProducer;
|
||||
@Autowired
|
||||
private RoomCheckJobService roomCheckJobService;
|
||||
|
||||
@RabbitListener(queues = RoomCheckDelayMqConfig.QUEUE_NAME
|
||||
,containerFactory = "customContainerFactory")
|
||||
public void sendRoomCheck(String roomIdStr) {
|
||||
log.info("开始执行房间检测: roomId={}",roomIdStr);
|
||||
try {
|
||||
Long roomId = Long.valueOf(roomIdStr);
|
||||
JobResp resp = roomCheckJobService.checkRoom(roomId);
|
||||
if(resp.isNextCreateJob()){
|
||||
// 1分钟后继续执行
|
||||
amqpProducer.sendRoomCheckDelay(roomIdStr,60);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("每分钟定时检测房间失败! roomId={}",roomIdStr);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,23 +1,22 @@
|
||||
package com.ruoyi.cai.mq.consumer;
|
||||
|
||||
import com.ruoyi.cai.mq.AmqpProducer;
|
||||
import com.ruoyi.cai.mq.CheckTimeOutMqConfig;
|
||||
import com.ruoyi.cai.mq.config.RoomSettleDelayMqConfig;
|
||||
import com.ruoyi.cai.ws.service.SettleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.checkerframework.checker.index.qual.SameLen;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class CheckTimeOutMqConsumer {
|
||||
public class RoomSettleDelayMqConsumer {
|
||||
@Autowired
|
||||
private SettleService settleService;
|
||||
@Autowired
|
||||
private AmqpProducer amqpProducer;
|
||||
|
||||
@RabbitListener(queues = CheckTimeOutMqConfig.QUEUE_NAME
|
||||
@RabbitListener(queues = RoomSettleDelayMqConfig.QUEUE_NAME
|
||||
,containerFactory = "customContainerFactory")
|
||||
public void checkTimeOutMq(String message) {
|
||||
log.info("开始执行预扣费: " + message);
|
||||
@@ -25,7 +24,7 @@ public class CheckTimeOutMqConsumer {
|
||||
boolean next = settleService.withholdingFee(Long.valueOf(message));
|
||||
if(next){
|
||||
// 1分钟后继续执行
|
||||
amqpProducer.sendCheckTimeOut(message,60);
|
||||
amqpProducer.sendRoomSettleDelay(message,60);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("每分钟定时扣费失败!",e);
|
||||
Reference in New Issue
Block a user