From 77b7d5b38b2c2ab842ff0e74a2e2afa8051b6bef Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Fri, 20 Sep 2024 10:07:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E7=8F=AD=E5=90=8E24=E5=B0=8F=E6=97=B6?= =?UTF-8?q?=E6=9C=AA=E4=B9=B0=E8=AF=BE=E8=B8=A2=E5=87=BA=E5=8E=BB=20?= =?UTF-8?q?=E6=80=9D=E8=80=83=E9=A2=98=E5=88=97=E8=A1=A8(=E5=AD=A6?= =?UTF-8?q?=E5=91=98)=20=E6=A8=A1=E5=9E=8B=E6=B7=BB=E5=8A=A0=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/controller/ClassController.java | 6 +++ .../modules/common/entity/ClassModel.java | 3 ++ .../common/service/ClassEntityService.java | 2 + .../service/impl/ClassEntityServiceImpl.java | 41 ++++++++++++++++-- .../modules/mq/Consumer/CommonConsumer.java | 42 +++++++++++++++++-- 5 files changed, 86 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/peanut/modules/common/controller/ClassController.java b/src/main/java/com/peanut/modules/common/controller/ClassController.java index 0c91d1fb..07def47e 100644 --- a/src/main/java/com/peanut/modules/common/controller/ClassController.java +++ b/src/main/java/com/peanut/modules/common/controller/ClassController.java @@ -365,6 +365,12 @@ public class ClassController { return R.ok().put("thinkQuestionList",classEntityService.getThinkQuestionList(params)); } + //思考题列表(学员) + @RequestMapping("/getThinkQuestionListStudent") + public R getThinkQuestionListStudent(@RequestBody Map params){ + return R.ok().put("getThinkQuestionListStudent",classEntityService.getThinkQuestionListStudent(params)); + } + //学员成绩 @RequestMapping("/getUserScore") public R getUserScore(@RequestBody Map params){ diff --git a/src/main/java/com/peanut/modules/common/entity/ClassModel.java b/src/main/java/com/peanut/modules/common/entity/ClassModel.java index 5cc0fc44..7fbd7b42 100644 --- a/src/main/java/com/peanut/modules/common/entity/ClassModel.java +++ b/src/main/java/com/peanut/modules/common/entity/ClassModel.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.util.Date; import java.util.List; @Data @@ -15,6 +16,8 @@ public class ClassModel { @TableId private Integer id; + private Date createTime; + private String title; private Integer directorId; diff --git a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java index 5a974e27..d789b3f4 100644 --- a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java +++ b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java @@ -87,6 +87,8 @@ public interface ClassEntityService extends IService { Page getThinkQuestionList(Map params); + List> getThinkQuestionListStudent(Map params); + Map getUserScore(Map params); List userScoreList(Map params); diff --git a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java index c4cb631e..5e6db3b3 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/ClassEntityServiceImpl.java @@ -1,12 +1,10 @@ package com.peanut.modules.common.service.impl; -import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.peanut.common.utils.DateUtils; import com.peanut.common.utils.R; import com.peanut.common.utils.ShiroUtils; import com.peanut.config.DelayQueueConfig; @@ -22,10 +20,8 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import java.math.BigDecimal; import java.math.RoundingMode; -import java.time.LocalDate; import java.util.*; @Slf4j @@ -678,6 +674,12 @@ public class ClassEntityServiceImpl extends ServiceImpl params) { classUserDao.delete(new LambdaQueryWrapper() .eq(ClassUser::getClassId,params.get("classId")) @@ -1014,6 +1017,36 @@ public class ClassEntityServiceImpl extends ServiceImpl> getThinkQuestionListStudent(Map params) { + List> res = new ArrayList<>(); + MPJLambdaWrapper classCourseWrapper = new MPJLambdaWrapper<>(); + classCourseWrapper.leftJoin(ClassCourse.class,ClassCourse::getCourseId,CourseEntity::getId); + classCourseWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassCourse::getModelId); + classCourseWrapper.eq(ClassEntity::getId,params.get("classId")); + classCourseWrapper.select(CourseEntity::getId,CourseEntity::getTitle); + List courseList = courseDao.selectList(classCourseWrapper); + for (CourseEntity courseEntity : courseList) { + Map map = new HashMap<>(); + map.put("courseEntity",courseEntity); + MPJLambdaWrapper chapterWrapper = new MPJLambdaWrapper<>(); + chapterWrapper.eq(CourseCatalogueChapterEntity::getCourseId,courseEntity.getId()); + chapterWrapper.select(CourseCatalogueChapterEntity::getId,CourseCatalogueChapterEntity::getTitle); + chapterWrapper.orderByAsc(CourseCatalogueChapterEntity::getSort); + List> chapterList = courseCatalogueChapterDao.selectMaps(chapterWrapper); + for (Map m : chapterList) { + ClassTaskAndQuesReply reply = classTaskAndQuesReplyDao.selectOne(new LambdaQueryWrapper() + .eq(ClassTaskAndQuesReply::getRelationId,m.get("id")) + .eq(ClassTaskAndQuesReply::getType,"1") + .eq(ClassTaskAndQuesReply::getUserId,ShiroUtils.getUId())); + m.put("reply",reply); + } + map.put("chapterList",chapterList); + res.add(map); + } + return res; + } + @Override public Map getUserScore(Map params) { ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString()); diff --git a/src/main/java/com/peanut/modules/mq/Consumer/CommonConsumer.java b/src/main/java/com/peanut/modules/mq/Consumer/CommonConsumer.java index 5aba8675..88b7b308 100644 --- a/src/main/java/com/peanut/modules/mq/Consumer/CommonConsumer.java +++ b/src/main/java/com/peanut/modules/mq/Consumer/CommonConsumer.java @@ -2,11 +2,11 @@ package com.peanut.modules.mq.Consumer; 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.ClassEntityDao; -import com.peanut.modules.common.dao.ClassExamUserDao; -import com.peanut.modules.common.entity.ClassEntity; -import com.peanut.modules.common.entity.ClassExamUser; +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 org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; @@ -26,6 +26,14 @@ public class CommonConsumer { private ClassExamUserDao classExamUserDao; @Autowired private ClassExamService classexamService; + @Autowired + private MyUserDao myUserDao; + @Autowired + private ClassCourseDao classCourseDao; + @Autowired + private UserCourseBuyDao userCourseBuyDao; + @Autowired + private ClassEntityService classEntityService; @RabbitListener(queues = DelayQueueConfig.COMMON_QUEUE) public void commonConsumer(String typeAndParam) { @@ -47,6 +55,32 @@ public class CommonConsumer { map.put("id",classExamUser.getId()); classexamService.submitExamPaper(map); } + } + //加班后24小时未买课踢出去 + if ("joinClass".equals(typeAndParams[0])){ + ClassEntity classEntity = classEntityDao.selectById(typeAndParams[1]); + MyUserEntity user = myUserDao.selectById(typeAndParams[2]); + if ("0".equals(user.getVip())||"3".equals(user.getVip())){ + //不是vip查询每门课是否购买 + List courses = classCourseDao.selectList(new LambdaQueryWrapper() + .eq(ClassCourse::getModelId,classEntity.getModelId())); + for (ClassCourse classCourse:courses){ + List ucb = userCourseBuyDao.selectList(new LambdaQueryWrapper() + .eq(UserCourseBuyEntity::getUserId,user.getId()) + .eq(UserCourseBuyEntity::getCourseId,classCourse.getCourseId())); + if (ucb.size() == 0){ + Map map = new HashMap<>(); + map.put("classId",classEntity.getId()); + map.put("userId",user.getId()); + classEntityService.quitClass(map); + } + } + } + + + + + }