小班进入考试周修改

优惠券修改
This commit is contained in:
wuchunlei
2024-10-30 16:14:23 +08:00
parent d5d22ae2d9
commit 1e71f8280b
6 changed files with 163 additions and 51 deletions

View File

@@ -0,0 +1,67 @@
package com.peanut.modules.job.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.DateUtils;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.common.dao.ClassEntityDao;
import com.peanut.modules.common.dao.ClassModelDao;
import com.peanut.modules.common.entity.ClassEntity;
import com.peanut.modules.common.entity.ClassModel;
import org.springframework.amqp.AmqpException;
import org.springframework.amqp.core.Message;
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("classToExamTask")
public class ClassToExamTask implements ITask{
@Autowired
private ClassEntityDao classEntityDao;
@Autowired
private ClassModelDao classModelDao;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public void run(String params) {
List<ClassEntity> classEntities = classEntityDao.selectList(new MPJLambdaWrapper<ClassEntity>()
.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId)
.selectAll(ClassEntity.class)
.eq(ClassModel::getIsExam,1)
.eq(ClassEntity::getState,1));
for (ClassEntity classEntity : classEntities) {
ClassModel classModel = classModelDao.selectById(classEntity.getModelId());
int studyDays = classModel.getDays()-classModel.getExamDays();
//考试周开始时间
Date startExamTime = DateUtils.addDateDays(classEntity.getStartTime(),studyDays);
if (startExamTime.getTime()<=new Date().getTime()){//已到考试周,调整小班状态为考试周
classEntity.setState("3");
classEntityDao.updateById(classEntity);
}else if (DateUtils.format(startExamTime).equals(DateUtils.format(new Date()))){
//当天与考试周到达天相同,加入队列
if (classModel.getIsExam()==1){
//根据设置的天数将班级状态从进行中设置成考试中
rabbitTemplate.convertAndSend(
DelayQueueConfig.COMMON_EXCHANGE,
DelayQueueConfig.COMMON_ROUTING_KEY,
"examDays" + "," + classEntity.getId(),
new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws AmqpException {
message.getMessageProperties().setDelay((int)(startExamTime.getTime()-new Date().getTime()));
return message;
}
}
);
}
}
}
}
}