From 0272bcbf9216e490aaa965a55be93d324dae0918 Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 1 Aug 2024 17:32:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=8F=AD=E7=9B=B8=E5=85=B3=20?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=88=91=E7=9A=84=E6=94=B6=E8=97=8F-?= =?UTF-8?q?=E5=8D=95=E6=9D=A1=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/controller/ClassController.java | 42 +++++ .../common/controller/UserController.java | 11 +- .../modules/common/entity/ClassEntity.java | 2 - .../common/service/ClassEntityService.java | 18 +- .../service/impl/ClassEntityServiceImpl.java | 167 +++++++++++++++++- .../medical/controller/CourseController.java | 2 +- .../medical/service/CourseService.java | 3 +- .../service/impl/CourseServiceImpl.java | 16 +- .../controller/CourseController.java | 17 +- 9 files changed, 256 insertions(+), 22 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 ed5af40c..0a066f3f 100644 --- a/src/main/java/com/peanut/modules/common/controller/ClassController.java +++ b/src/main/java/com/peanut/modules/common/controller/ClassController.java @@ -56,6 +56,13 @@ public class ClassController { return R.ok().put("classModelList",classModelList); } + //获取主任下的班级 + @RequestMapping("/getClassByDirectorid") + public R getClassByDirectorid(@RequestBody Map params){ + List classEntityList = classEntityService.getClassByDirectorid(params); + return R.ok().put("classEntityList",classEntityList); + } + //获取班级列表 @RequestMapping("/getClassList") public R getClassList(@RequestBody Map params){ @@ -103,4 +110,39 @@ public class ClassController { } } + //获取班级详情 + @RequestMapping("/getClassInfo") + public R getClassInfo(@RequestBody Map params){ + return R.ok().put("result",classEntityService.getClassInfo(params)); + } + + //查询包含课程的小班(登陆人未加入) + @RequestMapping("/getClassByCourseIdNoUser") + public R getClassByCourseIdNoUser(@RequestBody Map params){ + return R.ok().put("result",classEntityService.getClassByCourseIdNoUser(params)); + } + + //加入小班 + @RequestMapping("/joinClass") + public R joinClass(@RequestBody Map params){ + if (classEntityService.joinClass(params)){ + return R.ok(); + }else { + return R.error("人员已满"); + } + } + + //退出小班 + @RequestMapping("/quitClass") + public R quitClass(@RequestBody Map params){ + classEntityService.quitClass(params); + return R.ok(); + } + + //我的小班列表 + @RequestMapping("/MyClassList") + public R MyClassList(@RequestBody Map params){ + return R.ok().put("result",classEntityService.MyClassList(params)); + } + } diff --git a/src/main/java/com/peanut/modules/common/controller/UserController.java b/src/main/java/com/peanut/modules/common/controller/UserController.java index c83c2561..ed511218 100644 --- a/src/main/java/com/peanut/modules/common/controller/UserController.java +++ b/src/main/java/com/peanut/modules/common/controller/UserController.java @@ -6,8 +6,10 @@ import com.peanut.common.utils.MD5Utils; import com.peanut.common.utils.MailUtil; import com.peanut.common.utils.R; import com.peanut.common.utils.ShiroUtils; +import com.peanut.modules.common.entity.ClassUser; import com.peanut.modules.common.entity.MyUserEntity; import com.peanut.modules.common.entity.UserVip; +import com.peanut.modules.common.service.ClassEntityService; import com.peanut.modules.common.service.MyUserService; import com.peanut.modules.common.service.UserVipService; import com.peanut.modules.sys.service.SysUserTokenService; @@ -40,6 +42,8 @@ public class UserController { private SysUserTokenService sysUserTokenService; @Autowired private UserVipService userVipService; + @Autowired + private ClassEntityService classEntityService; /** * 常规注册 发短信验证码 @@ -117,9 +121,10 @@ public class UserController { userEntity.setUserVip(userVips.get(0)); } } - return R.ok().put("result",userEntity); - - + //查询用户是否有小班角色 + boolean isDirector = classEntityService.isDirector(userEntity); + boolean isMonitor = classEntityService.isMonitor(userEntity); + return R.ok().put("result",userEntity).put("isDirector",isDirector).put("isMonitor",isMonitor); } /** diff --git a/src/main/java/com/peanut/modules/common/entity/ClassEntity.java b/src/main/java/com/peanut/modules/common/entity/ClassEntity.java index a94a9410..84699765 100644 --- a/src/main/java/com/peanut/modules/common/entity/ClassEntity.java +++ b/src/main/java/com/peanut/modules/common/entity/ClassEntity.java @@ -43,8 +43,6 @@ public class ClassEntity { @TableField(exist = false) private Object createUser; @TableField(exist = false) - private String type; - @TableField(exist = false) private ClassModel classModel; @TableField(exist = false) private List> classUsers; 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 bf3465da..ab5a5714 100644 --- a/src/main/java/com/peanut/modules/common/service/ClassEntityService.java +++ b/src/main/java/com/peanut/modules/common/service/ClassEntityService.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.peanut.modules.common.entity.ClassEntity; import com.peanut.modules.common.entity.ClassModel; - +import com.peanut.modules.common.entity.MyUserEntity; import java.util.List; import java.util.Map; @@ -18,6 +18,8 @@ public interface ClassEntityService extends IService { List getClassModelByUserid(Map params); + List getClassByDirectorid(Map params); + Page getClassList(Map params); boolean addClass(Map params); @@ -26,4 +28,18 @@ public interface ClassEntityService extends IService { boolean setUserRole(Map params); + boolean isDirector(MyUserEntity userEntity); + + boolean isMonitor(MyUserEntity userEntity); + + Object getClassInfo(Map params); + + List getClassByCourseIdNoUser(Map params); + + boolean joinClass(Map params); + + void quitClass(Map params); + + List MyClassList(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 3f00cea8..c9b31bec 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 @@ -15,6 +15,8 @@ import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -96,6 +98,7 @@ public class ClassEntityServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.and(t->t.eq(ClassModel::getDirectorId,params.get("userId")) .or().eq(ClassModel::getDdirectorId,params.get("userId"))); + wrapper.eq(ClassModel::getType,params.get("type")); List classModelList = classModelDao.selectList(wrapper); if (classModelList.size() > 0){ for (ClassModel classModel : classModelList) { @@ -106,6 +109,18 @@ public class ClassEntityServiceImpl extends ServiceImpl getClassByDirectorid(Map params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(ClassEntity.class); + wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId); + wrapper.and(t->t.eq(ClassModel::getDirectorId,ShiroUtils.getUId()) + .or().eq(ClassModel::getDdirectorId,ShiroUtils.getUId())); + wrapper.eq(ClassModel::getType,params.get("type")); + wrapper.eq(ClassEntity::getState,params.get("state")); + return this.getBaseMapper().selectList(wrapper); + } + //设置主任和课程 private void setDirectorCourse(ClassModel classModel){ classModel.setDirector(myUserDao.selectById(classModel.getDirectorId())); @@ -163,10 +178,9 @@ public class ClassEntityServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.and(t->t.eq(ClassModel::getDirectorId,userEntity.getId()) + .or().eq(ClassModel::getDdirectorId,userEntity.getId())); + return classModelDao.selectCount(wrapper)>0; + } + + //是否班干部 + @Override + public boolean isMonitor(MyUserEntity userEntity) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ClassUser::getUserId,userEntity.getId()); + wrapper.in(ClassUser::getRole,"1","2","3","4","5"); + return classUserDao.selectCount(wrapper)>0; + } + + @Override + public Object getClassInfo(Map params) { + ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString()); + + ClassModel classModel = classModelDao.selectOne(new LambdaQueryWrapper().eq(ClassModel::getId,classEntity.getModelId())); + + //相关课程 + MPJLambdaWrapper courseWrapper = new MPJLambdaWrapper<>(); + courseWrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassCourse::getModelId); + courseWrapper.leftJoin(CourseEntity.class,CourseEntity::getId,ClassCourse::getCourseId); + courseWrapper.leftJoin(ClassEntity.class,ClassEntity::getModelId,ClassModel::getId); + courseWrapper.selectAll(CourseEntity.class); + courseWrapper.eq(ClassEntity::getId,classEntity.getId()); + List courses = classCourseDao.selectJoinList(CourseEntity.class,courseWrapper); + + //管理人员 + List admins = classUserDao.selectList(new LambdaQueryWrapper() + .eq(ClassUser::getClassId,classEntity.getId()) + .ne(ClassUser::getRole,"0")); + if (admins.size() > 0){ + for (ClassUser classUser:admins){ + classUser.setUser(myUserDao.selectById(classUser.getUserId())); + } + } + + //学员 + MPJLambdaWrapper studentWrapper = new MPJLambdaWrapper<>(); + studentWrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,ClassUser::getUserId); + studentWrapper.eq(ClassUser::getClassId,classEntity.getId()); + studentWrapper.eq(ClassUser::getRole,"0"); + studentWrapper.selectAll(MyUserEntity.class); + List students = classUserDao.selectJoinList(MyUserEntity.class,studentWrapper); + + Object userId; + try { + userId = ShiroUtils.getUId(); + }catch (Exception e) { + userId = ShiroUtils.getUserId(); + } + ClassUser classUser = classUserDao.selectOne(new LambdaQueryWrapper() + .eq(ClassUser::getClassId,classEntity.getId()) + .eq(ClassUser::getUserId,userId)); + boolean isJoin = false; + if (classUser!=null){ + isJoin = true; + } + + Map result = new HashMap<>(); + result.put("class",classEntity); + result.put("classModel",classModel); + result.put("courses",courses); + result.put("admins",admins); + result.put("students",students); + result.put("studentNumber",students.size()); + result.put("isJoin",isJoin); + return result; + } + + @Override + public List getClassByCourseIdNoUser(Map params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(ClassEntity.class); + wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId); + wrapper.leftJoin(ClassCourse.class,ClassCourse::getModelId,ClassModel::getId); + wrapper.leftJoin(ClassUser.class,ClassUser::getClassId,ClassEntity::getId); + wrapper.eq(ClassCourse::getCourseId,params.get("courseId")); + wrapper.eq(ClassUser::getUserId,ShiroUtils.getUId()); + List classesUser = this.baseMapper.selectList(wrapper); + if (classesUser.size() > 0){ + return new ArrayList<>(); + }else { + return getClassByCourseId(params); + } + } + + public List getClassByCourseId(Map params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(ClassEntity.class); + wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId); + wrapper.leftJoin(ClassCourse.class,ClassCourse::getModelId,ClassModel::getId); + wrapper.eq(ClassCourse::getCourseId,params.get("courseId")); + wrapper.eq(ClassEntity::getState,params.get("state")); + wrapper.eq(ClassModel::getType,params.get("type")); + List classes = this.baseMapper.selectList(wrapper); + return classes; + } + + @Override + public boolean joinClass(Map params) { + ClassEntity classEntity = this.baseMapper.selectById(params.get("classId").toString()); + int count = classUserDao.selectCount(new LambdaQueryWrapper() + .eq(ClassUser::getClassId,classEntity.getId()) + .eq(ClassUser::getRole,"0")); + if (count params) { + classUserDao.delete(new LambdaQueryWrapper() + .eq(ClassUser::getClassId,params.get("classId")) + .eq(ClassUser::getUserId,params.get("userId"))); + } + + @Override + public List MyClassList(Map params) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.leftJoin(ClassUser.class,ClassUser::getClassId,ClassEntity::getId); + wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId); + wrapper.selectAll(ClassEntity.class); + wrapper.eq(ClassEntity::getState,params.get("state")); + wrapper.eq(ClassModel::getType,params.get("type")); + wrapper.eq(ClassUser::getUserId,ShiroUtils.getUId()); + List list = this.baseMapper.selectList(wrapper); + return list; + } + + } diff --git a/src/main/java/com/peanut/modules/medical/controller/CourseController.java b/src/main/java/com/peanut/modules/medical/controller/CourseController.java index 5abbae0a..80ca69c5 100644 --- a/src/main/java/com/peanut/modules/medical/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/medical/controller/CourseController.java @@ -32,7 +32,7 @@ public class CourseController { //添加正在学习(收藏) @RequestMapping("/addUserCourseStudying") public R addUserCourseStudying(@RequestBody UserCourseStudying userCourseStudying){ - return R.ok().put("success",courseService.addUserCourseStudying(userCourseStudying)); + return courseService.addUserCourseStudying(userCourseStudying); } //移除正在学习(收藏) diff --git a/src/main/java/com/peanut/modules/medical/service/CourseService.java b/src/main/java/com/peanut/modules/medical/service/CourseService.java index 86c5db2a..7d343b54 100644 --- a/src/main/java/com/peanut/modules/medical/service/CourseService.java +++ b/src/main/java/com/peanut/modules/medical/service/CourseService.java @@ -2,6 +2,7 @@ package com.peanut.modules.medical.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.common.utils.R; import com.peanut.modules.common.entity.CourseEntity; import com.peanut.modules.common.entity.UserCourseStudying; import com.peanut.modules.common.to.ParamTo; @@ -17,7 +18,7 @@ public interface CourseService extends IService { List getUserLateCourseList(ParamTo param); - boolean addUserCourseStudying(UserCourseStudying userCourseStudying); + R addUserCourseStudying(UserCourseStudying userCourseStudying); boolean delUserCourseStudying(Map param); diff --git a/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java index b6520907..1c08ea80 100644 --- a/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.peanut.common.utils.R; import com.peanut.common.utils.ShiroUtils; import com.peanut.modules.common.dao.*; import com.peanut.modules.common.entity.*; @@ -84,11 +85,18 @@ public class CourseServiceImpl extends ServiceImpl impl } @Override - public boolean addUserCourseStudying(UserCourseStudying userCourseStudying) { - if (studyingDao.insert(userCourseStudying)>0){ - return true; + public R addUserCourseStudying(UserCourseStudying userCourseStudying) { + int isExist = studyingDao.selectCount(new LambdaQueryWrapper() + .eq(UserCourseStudying::getUserId,userCourseStudying.getUserId()) + .eq(UserCourseStudying::getCourseId,userCourseStudying.getCourseId())); + if (isExist>0){ + return R.error("已存在"); }else { - return false; + if (studyingDao.insert(userCourseStudying)>0){ + return R.ok().put("result",userCourseStudying); + }else { + return R.error("添加失败"); + } } } diff --git a/src/main/java/com/peanut/modules/sociology/controller/CourseController.java b/src/main/java/com/peanut/modules/sociology/controller/CourseController.java index 3e31da18..bab93659 100644 --- a/src/main/java/com/peanut/modules/sociology/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/sociology/controller/CourseController.java @@ -111,11 +111,18 @@ public class CourseController { */ @RequestMapping("/addUserCourseStudying") public R addUserCourseStudying(@RequestBody Map map){ - UserCourseStudying userCourseStudying = new UserCourseStudying(); - userCourseStudying.setUserId(ShiroUtils.getUId()); - userCourseStudying.setCourseId(map.get("courseId")); - userCourseStudyingDao.insert(userCourseStudying); - return R.ok().put("result",userCourseStudying); + int isExist = userCourseStudyingDao.selectCount(new LambdaQueryWrapper() + .eq(UserCourseStudying::getUserId,ShiroUtils.getUId()) + .eq(UserCourseStudying::getCourseId,map.get("courseId"))); + if (isExist>0){ + return R.error("已存在"); + }else { + UserCourseStudying userCourseStudying = new UserCourseStudying(); + userCourseStudying.setUserId(ShiroUtils.getUId()); + userCourseStudying.setCourseId(map.get("courseId")); + userCourseStudyingDao.insert(userCourseStudying); + return R.ok().put("result",userCourseStudying); + } } /**