vip到期时间按天计算

This commit is contained in:
wuchunlei
2025-10-22 14:41:53 +08:00
parent e2fbe1c9fd
commit 1da3707e64
2 changed files with 13 additions and 63 deletions

View File

@@ -1,19 +1,11 @@
package com.peanut.modules.job.task; package com.peanut.modules.job.task;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.common.utils.MailUtil; import com.peanut.common.utils.DateUtils;
import com.peanut.config.DelayQueueConfig;
import com.peanut.modules.common.entity.MyUserEntity;
import com.peanut.modules.common.entity.UserVip; import com.peanut.modules.common.entity.UserVip;
import com.peanut.modules.common.service.MyUserService;
import com.peanut.modules.master.service.UserVipService; 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.Logger;
import org.slf4j.LoggerFactory; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -26,10 +18,6 @@ public class UserVipTask implements ITask{
@Autowired @Autowired
private UserVipService vipService; private UserVipService vipService;
@Autowired
private MyUserService userService;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override @Override
public void run(String params) { public void run(String params) {
@@ -38,49 +26,11 @@ public class UserVipTask implements ITask{
List<UserVip> list = vipService.list(wrapper); List<UserVip> list = vipService.list(wrapper);
if (list.size() > 0) { if (list.size() > 0) {
for (UserVip userVip : list) { for (UserVip userVip : list) {
MyUserEntity user = userService.getById(userVip.getUserId()); if (DateUtils.stringToDate(DateUtils.format(userVip.getEndTime(),"yyyy-MM-dd")+" 23:59:59","yyyy-MM-dd HH:mm:ss").getTime()<new Date().getTime()){
if (userVip.getEndTime().getTime()<new Date().getTime()){
userVip.setState(1); userVip.setState(1);
vipService.saveOrUpdate(userVip); vipService.saveOrUpdate(userVip);
user.setVip("0");
userService.saveOrUpdate(user);
// }else if (DateUtils.isSameDay(DateUtils.addDays(new Date(),60),userVip.getEndTime())) {
// try {
// if (StringUtils.isNotEmpty(user.getTel())){
// userService.sendCodeForRegister(user.getTel(),"VIPWillExpire",86);
// }else if (StringUtils.isNotEmpty(user.getEmail())) {
// MailUtil.sendMail("太湖超V提醒","超V还有2月到期",user.getEmail());
// }
// }catch (Exception e) {
// logger.error("userVipTask定时任务超V提醒出错错误为{}", e.getMessage());
// }
// }else if (DateUtils.isSameDay(DateUtils.addDays(new Date(),30),userVip.getEndTime())) {
// try {
// if (StringUtils.isNotEmpty(user.getTel())){
// userService.sendCodeForRegister(user.getTel(),"VIPWillExpire",86);
// }else if (StringUtils.isNotEmpty(user.getEmail())) {
// MailUtil.sendMail("太湖超V提醒","超V还有一月到期",user.getEmail());
// }
// }catch (Exception e) {
// logger.error("userVipTask定时任务超V提醒出错错误为{}", e.getMessage());
// }
}else if (DateUtils.isSameDay(DateUtils.addDays(new Date(),2),userVip.getEndTime())) {
rabbitTemplate.convertAndSend(
DelayQueueConfig.USERVIP_EXCHANGE,
DelayQueueConfig.USERVIP_ROUTING_KEY,
userVip.getId(),
messagePostProcessor(userVip.getEndTime().getTime()-new Date().getTime())
);
System.out.println(new Date()+"-"+userVip.getUserId()+"-会员还剩2天加入队列");
} }
} }
} }
} }
private MessagePostProcessor messagePostProcessor(long date) {
return message -> {
message.getMessageProperties().setDelay((int)date);
return message;
};
}
} }

View File

@@ -23,17 +23,17 @@ public class UserVipConsumer {
@RabbitListener(queues = DelayQueueConfig.USERVIP_QUEUE) @RabbitListener(queues = DelayQueueConfig.USERVIP_QUEUE)
public void userVipConsumer(String userVipId) { public void userVipConsumer(String userVipId) {
UserVip userVip = userVipDao.selectById(userVipId); // UserVip userVip = userVipDao.selectById(userVipId);
if(userVip != null){ // if(userVip != null){
if(DateUtils.addSeconds(new Date(),3).getTime()>userVip.getEndTime().getTime()){ // if(DateUtils.addSeconds(new Date(),3).getTime()>userVip.getEndTime().getTime()){
userVip.setState(1); // userVip.setState(1);
userVipDao.updateById(userVip); // userVipDao.updateById(userVip);
MyUserEntity user = userDao.selectById(userVip.getUserId()); // MyUserEntity user = userDao.selectById(userVip.getUserId());
user.setVip("0"); // user.setVip("0");
userDao.updateById(user); // userDao.updateById(user);
// System.out.println(user.getName()+"-"+user.getTel()+"-"+user.getEmail()+"超v过期,vip更新完成"); //// System.out.println(user.getName()+"-"+user.getTel()+"-"+user.getEmail()+"超v过期,vip更新完成");
} // }
} // }
} }
} }