package com.peanut.modules.job.task; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.peanut.common.utils.MailUtil; import com.peanut.config.DelayQueueConfig; import com.peanut.modules.common.entity.MyUserEntity; import com.peanut.modules.common.entity.UserVip; import com.peanut.modules.common.service.MyUserService; import com.peanut.modules.master.service.UserVipService; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; 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("userVipTask") public class UserVipTask implements ITask{ private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private UserVipService vipService; @Autowired private MyUserService userService; @Autowired private RabbitTemplate rabbitTemplate; @Override public void run(String params) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); wrapper.eq(UserVip::getState,0); List list = vipService.list(wrapper); if (list.size() > 0) { for (UserVip userVip : list) { MyUserEntity user = userService.getById(userVip.getUserId()); if (userVip.getEndTime().getTime() { message.getMessageProperties().setDelay((int)date); return message; }; } }