This commit is contained in:
wuchunlei
2025-06-04 17:12:00 +08:00
parent 6852c64984
commit 5cc6f4f255
12 changed files with 212 additions and 57 deletions

View File

@@ -0,0 +1,53 @@
package com.peanut.modules.job.task;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.common.entity.AiVipLog;
import com.peanut.modules.common.service.AiVipLogService;
import org.apache.commons.lang.time.DateUtils;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component("aiVipTask")
public class AiVipTask implements ITask{
@Autowired
private AiVipLogService aiVipLogService;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public void run(String params) {
List<AiVipLog> aiVipLogs = aiVipLogService.list(new LambdaQueryWrapper<AiVipLog>()
.eq(AiVipLog::getState,0));
for (AiVipLog aiVipLog : aiVipLogs) {
if (aiVipLog.getEndTime().getTime()<new Date().getTime()){
aiVipLog.setState(1);
aiVipLogService.updateById(aiVipLog);
}else if (DateUtil.isSameDay(DateUtils.addDays(new Date(),1), aiVipLog.getEndTime())){
rabbitTemplate.convertAndSend(
DelayQueueConfig.COMMON_EXCHANGE,
DelayQueueConfig.COMMON_ROUTING_KEY,
"aiVipExpire"+","+aiVipLog.getId(),
messagePostProcessor(aiVipLog.getEndTime().getTime()-new Date().getTime())
);
}
}
}
private MessagePostProcessor messagePostProcessor(long date) {
return message -> {
message.getMessageProperties().setDelay((int)date);
return message;
};
}
}