Files
nuttyreading-java/src/main/java/com/peanut/modules/job/task/CouponEffectTask.java
wuchunlei 1e71f8280b 小班进入考试周修改
优惠券修改
2024-10-30 16:14:23 +08:00

57 lines
2.3 KiB
Java

package com.peanut.modules.job.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.common.utils.DateUtils;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.common.dao.CouponDao;
import com.peanut.modules.common.dao.CouponHistoryDao;
import com.peanut.modules.common.entity.CouponEntity;
import com.peanut.modules.common.entity.CouponHistory;
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("couponEffectTask")
public class CouponEffectTask implements ITask{
@Autowired
private CouponHistoryDao couponHistoryDao;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public void run(String params) {
List<CouponHistory> classEntities = couponHistoryDao.selectList(new LambdaQueryWrapper<CouponHistory>()
.eq(CouponHistory::getStatus,0)
.ne(CouponHistory::getEffectType,0));
for (CouponHistory couponHistory : classEntities) {
Date endTime = couponHistory.getEndTime();
if (endTime.getTime()<=new Date().getTime()){
//优惠券到期
couponHistory.setStatus(2);
couponHistoryDao.updateById(couponHistory);
}else if (DateUtils.format(endTime).equals(DateUtils.format(new Date()))) {
//优惠券到期时间是当天
rabbitTemplate.convertAndSend(
DelayQueueConfig.COMMON_EXCHANGE,
DelayQueueConfig.COMMON_ROUTING_KEY,
"couponExpire"+","+couponHistory.getId(),
new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws AmqpException {
message.getMessageProperties().setDelay((int)(endTime.getTime()-new Date().getTime()));
return message;
}
}
);
}
}
}
}