aiVip
This commit is contained in:
53
src/main/java/com/peanut/modules/job/task/AiVipTask.java
Normal file
53
src/main/java/com/peanut/modules/job/task/AiVipTask.java
Normal 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;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user