VIP改版
This commit is contained in:
@@ -1,20 +1,17 @@
|
||||
package com.peanut.modules.mq.Consumer;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.peanut.common.utils.DateUtils;
|
||||
import com.peanut.common.utils.R;
|
||||
import com.peanut.config.DelayQueueConfig;
|
||||
import com.peanut.modules.common.dao.*;
|
||||
import com.peanut.modules.common.entity.*;
|
||||
import com.peanut.modules.common.service.ClassEntityService;
|
||||
import com.peanut.modules.common.service.ClassExamService;
|
||||
import com.peanut.modules.common.service.CouponHistoryService;
|
||||
import com.peanut.modules.common.service.UserVipService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -42,6 +39,8 @@ public class CommonConsumer {
|
||||
private CouponHistoryService couponHistoryService;
|
||||
@Autowired
|
||||
private CourseCatalogueDao courseCatalogueDao;
|
||||
@Autowired
|
||||
private UserVipService userVipService;
|
||||
|
||||
@RabbitListener(queues = DelayQueueConfig.COMMON_QUEUE)
|
||||
public void commonConsumer(String typeAndParam) {
|
||||
@@ -71,11 +70,12 @@ public class CommonConsumer {
|
||||
if (classEntity!=null&&"0".equals(classEntity.getState())){
|
||||
MyUserEntity user = myUserDao.selectById(typeAndParams[2]);
|
||||
if (user!=null){
|
||||
if ("0".equals(user.getVip())||"3".equals(user.getVip())){
|
||||
//不是vip查询每门课是否购买
|
||||
List<ClassCourse> courses = classCourseDao.selectList(new LambdaQueryWrapper<ClassCourse>()
|
||||
.eq(ClassCourse::getModelId,classEntity.getModelId()));
|
||||
for (ClassCourse classCourse:courses){
|
||||
List<ClassCourse> courses = classCourseDao.selectList(new LambdaQueryWrapper<ClassCourse>()
|
||||
.eq(ClassCourse::getModelId,classEntity.getModelId()));
|
||||
for (ClassCourse classCourse:courses){
|
||||
UserVip userVip = userVipService.ownCourseCatalogueByVip(user,classCourse.getCourseId());
|
||||
if (userVip == null) {
|
||||
//不是vip查询每门课是否购买
|
||||
List<CourseCatalogueEntity> catalogues = courseCatalogueDao.selectList(new LambdaQueryWrapper<CourseCatalogueEntity>()
|
||||
.eq(CourseCatalogueEntity::getCourseId,classCourse.getCourseId()));
|
||||
for (CourseCatalogueEntity catalog:catalogues){
|
||||
|
||||
@@ -1,23 +1,9 @@
|
||||
package com.peanut.modules.mq.Consumer;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.peanut.config.DelayQueueConfig;
|
||||
import com.peanut.modules.common.entity.MyUserEntity;
|
||||
import com.peanut.modules.book.service.MyUserService;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.core.Message;
|
||||
import org.springframework.amqp.rabbit.annotation.Exchange;
|
||||
import org.springframework.amqp.rabbit.annotation.Queue;
|
||||
import org.springframework.amqp.rabbit.annotation.QueueBinding;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 延时队列消息消费者
|
||||
@@ -28,38 +14,6 @@ import java.util.Date;
|
||||
@Slf4j
|
||||
public class DelayMsgConsumer {
|
||||
|
||||
@Autowired
|
||||
private MyUserService userService;
|
||||
|
||||
// 会员开通 时间到期 进入死信队列
|
||||
|
||||
@RabbitListener(bindings = @QueueBinding(
|
||||
value = @Queue(DelayQueueConfig.DEAD_LETTER_QUEUE),
|
||||
exchange = @Exchange(DelayQueueConfig.DEAD_LETTER_EXCHANGE)))
|
||||
public void queueAConsumer(Message message) {
|
||||
|
||||
Msg msg = JSONObject.parseObject(new String(message.getBody()), Msg.class);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
Duration duration = Duration.between(msg.getTime(), now);
|
||||
String id = msg.getMsg();
|
||||
System.out.println("--------------------------->"+id);
|
||||
MyUserEntity user = userService.getById(id);
|
||||
Date vipValidtime = user.getVipValidtime();
|
||||
Date date = new Date();
|
||||
|
||||
long times = date.getTime() - vipValidtime.getTime();
|
||||
if (times >= 0) {
|
||||
user.setVip("0");
|
||||
}
|
||||
userService.updateById(user);
|
||||
log.info("DelayMsgConsumer死信队列消费---->Msg:{}, 发送时间:{}, 当前时间:{}, 相差时间:{}秒,消息设置的ttl:{}",
|
||||
JSONObject.toJSONString(msg),
|
||||
localDateTimeToString(msg.getTime()),
|
||||
localDateTimeToString(now),
|
||||
duration.getSeconds(),
|
||||
msg.getTtl());
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class Msg {
|
||||
private String ttl;
|
||||
@@ -67,8 +21,4 @@ public class DelayMsgConsumer {
|
||||
private LocalDateTime time;
|
||||
}
|
||||
|
||||
private String localDateTimeToString(LocalDateTime localDateTime){
|
||||
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
return dateTimeFormatter.format(localDateTime);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user