mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
1、system rabbitmq队列声明暂注释;2、cad异步拆单锁调整;
This commit is contained in:
+71
-71
@@ -1,71 +1,71 @@
|
||||
package com.cf.imes.module.system.mq.consumer.advertisement;
|
||||
|
||||
import com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants;
|
||||
import com.cf.imes.module.system.dal.dataobject.advertisement.AdvertisementDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.advertisement.AdvertisementTaskDO;
|
||||
import com.cf.imes.module.system.dal.mysql.advertisement.AdvertisementMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.advertisement.AdvertisementTaskMapper;
|
||||
import com.cf.imes.module.system.enums.advertisement.AdvertisementStatusEnum;
|
||||
import com.cf.imes.module.system.enums.advertisement.MessageStatusEnum;
|
||||
import com.cf.imes.module.system.mq.message.advertisement.AdvertisementSendMessage;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
/**
|
||||
* 针对 {@link AdvertisementSendMessage} 的消费者
|
||||
*
|
||||
* @author 晨丰科技
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class AdvertisementSendConsumer {
|
||||
|
||||
@Resource
|
||||
private AdvertisementMapper advertisementMapper;
|
||||
|
||||
@Resource
|
||||
private AdvertisementTaskMapper advertisementTaskMapper;
|
||||
|
||||
@RabbitListener(queues = RabbitMqConstants.SYSTEM_ADVERTISEMENT_UPDATE_DELAYED_QUEUE)
|
||||
public void onMessage(AdvertisementSendMessage message){
|
||||
// 1. 获取广告数据
|
||||
AdvertisementDO ad = advertisementMapper.selectById(message.getAdId());
|
||||
if (ad == null || ad.getDeleted())
|
||||
return;
|
||||
|
||||
// 2. 检查消息有效性
|
||||
AdvertisementTaskDO messageRecord = advertisementTaskMapper.selectByMessageId(message.getMessageId());
|
||||
if (messageRecord == null ||
|
||||
Objects.equals(messageRecord.getMessageStatus(), MessageStatusEnum.CANCELLED.getStatus())) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 3. 处理状态变更
|
||||
if (AdvertisementStatusEnum.PUBLISHED.getName().equals(message.getAction())) { // 待发布
|
||||
if (ad.getStatus() == AdvertisementStatusEnum.UNPUBLISHED.getStatus() &&
|
||||
LocalDateTime.now().isAfter(ad.getStartTime())) {
|
||||
updateAdStatus(ad, messageRecord.getAdvertisementStatus());
|
||||
}
|
||||
} else if (AdvertisementStatusEnum.ENDED.getName().equals(message.getAction())) { // 待结束
|
||||
if (ad.getStatus() == AdvertisementStatusEnum.PUBLISHED.getStatus() &&
|
||||
LocalDateTime.now().isAfter(ad.getEndTime())) {
|
||||
updateAdStatus(ad, messageRecord.getAdvertisementStatus());
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 标记消息为已处理
|
||||
messageRecord.setMessageStatus(MessageStatusEnum.PROCESSED.getStatus());
|
||||
advertisementTaskMapper.updateMessageStateByMessageId(message.getMessageId(),false, MessageStatusEnum.PROCESSED.getStatus());
|
||||
}
|
||||
|
||||
private void updateAdStatus(AdvertisementDO ad, Integer newStatus) {
|
||||
advertisementMapper.updateAdStatus(ad.getId(), newStatus);
|
||||
}
|
||||
|
||||
}
|
||||
//package com.cf.imes.module.system.mq.consumer.advertisement;
|
||||
//
|
||||
//import com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants;
|
||||
//import com.cf.imes.module.system.dal.dataobject.advertisement.AdvertisementDO;
|
||||
//import com.cf.imes.module.system.dal.dataobject.advertisement.AdvertisementTaskDO;
|
||||
//import com.cf.imes.module.system.dal.mysql.advertisement.AdvertisementMapper;
|
||||
//import com.cf.imes.module.system.dal.mysql.advertisement.AdvertisementTaskMapper;
|
||||
//import com.cf.imes.module.system.enums.advertisement.AdvertisementStatusEnum;
|
||||
//import com.cf.imes.module.system.enums.advertisement.MessageStatusEnum;
|
||||
//import com.cf.imes.module.system.mq.message.advertisement.AdvertisementSendMessage;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
//import org.springframework.stereotype.Component;
|
||||
//
|
||||
//import javax.annotation.Resource;
|
||||
//import java.time.LocalDateTime;
|
||||
//import java.util.Objects;
|
||||
//
|
||||
//
|
||||
///**
|
||||
// * 针对 {@link AdvertisementSendMessage} 的消费者
|
||||
// *
|
||||
// * @author 晨丰科技
|
||||
// */
|
||||
//@Component
|
||||
//@Slf4j
|
||||
//public class AdvertisementSendConsumer {
|
||||
//
|
||||
// @Resource
|
||||
// private AdvertisementMapper advertisementMapper;
|
||||
//
|
||||
// @Resource
|
||||
// private AdvertisementTaskMapper advertisementTaskMapper;
|
||||
//
|
||||
// @RabbitListener(queues = RabbitMqConstants.SYSTEM_ADVERTISEMENT_UPDATE_DELAYED_QUEUE)
|
||||
// public void onMessage(AdvertisementSendMessage message){
|
||||
// // 1. 获取广告数据
|
||||
// AdvertisementDO ad = advertisementMapper.selectById(message.getAdId());
|
||||
// if (ad == null || ad.getDeleted())
|
||||
// return;
|
||||
//
|
||||
// // 2. 检查消息有效性
|
||||
// AdvertisementTaskDO messageRecord = advertisementTaskMapper.selectByMessageId(message.getMessageId());
|
||||
// if (messageRecord == null ||
|
||||
// Objects.equals(messageRecord.getMessageStatus(), MessageStatusEnum.CANCELLED.getStatus())) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// // 3. 处理状态变更
|
||||
// if (AdvertisementStatusEnum.PUBLISHED.getName().equals(message.getAction())) { // 待发布
|
||||
// if (ad.getStatus() == AdvertisementStatusEnum.UNPUBLISHED.getStatus() &&
|
||||
// LocalDateTime.now().isAfter(ad.getStartTime())) {
|
||||
// updateAdStatus(ad, messageRecord.getAdvertisementStatus());
|
||||
// }
|
||||
// } else if (AdvertisementStatusEnum.ENDED.getName().equals(message.getAction())) { // 待结束
|
||||
// if (ad.getStatus() == AdvertisementStatusEnum.PUBLISHED.getStatus() &&
|
||||
// LocalDateTime.now().isAfter(ad.getEndTime())) {
|
||||
// updateAdStatus(ad, messageRecord.getAdvertisementStatus());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 4. 标记消息为已处理
|
||||
// messageRecord.setMessageStatus(MessageStatusEnum.PROCESSED.getStatus());
|
||||
// advertisementTaskMapper.updateMessageStateByMessageId(message.getMessageId(),false, MessageStatusEnum.PROCESSED.getStatus());
|
||||
// }
|
||||
//
|
||||
// private void updateAdStatus(AdvertisementDO ad, Integer newStatus) {
|
||||
// advertisementMapper.updateAdStatus(ad.getId(), newStatus);
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
||||
Reference in New Issue
Block a user