小班相关

加入我的收藏-单条限制
This commit is contained in:
wuchunlei
2024-08-01 17:32:57 +08:00
parent 44e10694f5
commit 0272bcbf92
9 changed files with 256 additions and 22 deletions

View File

@@ -56,6 +56,13 @@ public class ClassController {
return R.ok().put("classModelList",classModelList);
}
//获取主任下的班级
@RequestMapping("/getClassByDirectorid")
public R getClassByDirectorid(@RequestBody Map<String,Object> params){
List<ClassEntity> classEntityList = classEntityService.getClassByDirectorid(params);
return R.ok().put("classEntityList",classEntityList);
}
//获取班级列表
@RequestMapping("/getClassList")
public R getClassList(@RequestBody Map<String,Object> params){
@@ -103,4 +110,39 @@ public class ClassController {
}
}
//获取班级详情
@RequestMapping("/getClassInfo")
public R getClassInfo(@RequestBody Map<String,Object> params){
return R.ok().put("result",classEntityService.getClassInfo(params));
}
//查询包含课程的小班(登陆人未加入)
@RequestMapping("/getClassByCourseIdNoUser")
public R getClassByCourseIdNoUser(@RequestBody Map<String,Object> params){
return R.ok().put("result",classEntityService.getClassByCourseIdNoUser(params));
}
//加入小班
@RequestMapping("/joinClass")
public R joinClass(@RequestBody Map<String,Object> params){
if (classEntityService.joinClass(params)){
return R.ok();
}else {
return R.error("人员已满");
}
}
//退出小班
@RequestMapping("/quitClass")
public R quitClass(@RequestBody Map<String,Object> params){
classEntityService.quitClass(params);
return R.ok();
}
//我的小班列表
@RequestMapping("/MyClassList")
public R MyClassList(@RequestBody Map<String,Object> params){
return R.ok().put("result",classEntityService.MyClassList(params));
}
}

View File

@@ -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);
}
/**

View File

@@ -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<Map<String,Object>> classUsers;

View File

@@ -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<ClassEntity> {
List<ClassModel> getClassModelByUserid(Map<String ,Object> params);
List<ClassEntity> getClassByDirectorid(Map<String,Object> params);
Page getClassList(Map<String ,Object> params);
boolean addClass(Map<String ,Object> params);
@@ -26,4 +28,18 @@ public interface ClassEntityService extends IService<ClassEntity> {
boolean setUserRole(Map<String ,Object> params);
boolean isDirector(MyUserEntity userEntity);
boolean isMonitor(MyUserEntity userEntity);
Object getClassInfo(Map<String ,Object> params);
List<ClassEntity> getClassByCourseIdNoUser(Map<String ,Object> params);
boolean joinClass(Map<String ,Object> params);
void quitClass(Map<String ,Object> params);
List<ClassEntity> MyClassList(Map<String ,Object> params);
}

View File

@@ -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<ClassEntityDao, ClassEnt
LambdaQueryWrapper<ClassModel> 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<ClassModel> classModelList = classModelDao.selectList(wrapper);
if (classModelList.size() > 0){
for (ClassModel classModel : classModelList) {
@@ -106,6 +109,18 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
return classModelList;
}
@Override
public List<ClassEntity> getClassByDirectorid(Map<String, Object> params) {
MPJLambdaWrapper<ClassEntity> 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<ClassEntityDao, ClassEnt
c.setIcon(params.get("icon").toString());
c.setContent(params.get("content").toString());
c.setNumber((Integer)params.get("number"));
MyUserEntity user = myUserDao.selectById(ShiroUtils.getUId());
if (user == null){
c.setCreateUserid(user.getId());
}else {
try {
c.setCreateUserid(ShiroUtils.getUId());
}catch (Exception e) {
c.setCreateUserid(ShiroUtils.getUserId().intValue());
}
this.getBaseMapper().insert(c);
@@ -181,6 +195,7 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
c.setState(params.get("state").toString());
c.setIcon(params.get("icon").toString());
c.setContent(params.get("content").toString());
c.setNumber((Integer)params.get("number"));
this.getBaseMapper().updateById(c);
return true;
}
@@ -216,7 +231,6 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
return true;
}
public int addClassUser(int classId,int userId,String role) {
ClassUser classUser = new ClassUser();
classUser.setClassId(classId);
@@ -225,4 +239,147 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
return classUserDao.insert(classUser);
}
//是否主任
@Override
public boolean isDirector(MyUserEntity userEntity) {
LambdaQueryWrapper<ClassModel> 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<ClassUser> 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<String, Object> params) {
ClassEntity classEntity = this.getBaseMapper().selectById(params.get("classId").toString());
ClassModel classModel = classModelDao.selectOne(new LambdaQueryWrapper<ClassModel>().eq(ClassModel::getId,classEntity.getModelId()));
//相关课程
MPJLambdaWrapper<ClassCourse> 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<CourseEntity> courses = classCourseDao.selectJoinList(CourseEntity.class,courseWrapper);
//管理人员
List<ClassUser> admins = classUserDao.selectList(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,classEntity.getId())
.ne(ClassUser::getRole,"0"));
if (admins.size() > 0){
for (ClassUser classUser:admins){
classUser.setUser(myUserDao.selectById(classUser.getUserId()));
}
}
//学员
MPJLambdaWrapper<ClassUser> 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<MyUserEntity> students = classUserDao.selectJoinList(MyUserEntity.class,studentWrapper);
Object userId;
try {
userId = ShiroUtils.getUId();
}catch (Exception e) {
userId = ShiroUtils.getUserId();
}
ClassUser classUser = classUserDao.selectOne(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,classEntity.getId())
.eq(ClassUser::getUserId,userId));
boolean isJoin = false;
if (classUser!=null){
isJoin = true;
}
Map<String,Object> 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<ClassEntity> getClassByCourseIdNoUser(Map<String, Object> params) {
MPJLambdaWrapper<ClassEntity> 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<ClassEntity> classesUser = this.baseMapper.selectList(wrapper);
if (classesUser.size() > 0){
return new ArrayList<>();
}else {
return getClassByCourseId(params);
}
}
public List<ClassEntity> getClassByCourseId(Map<String, Object> params) {
MPJLambdaWrapper<ClassEntity> 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<ClassEntity> classes = this.baseMapper.selectList(wrapper);
return classes;
}
@Override
public boolean joinClass(Map<String, Object> params) {
ClassEntity classEntity = this.baseMapper.selectById(params.get("classId").toString());
int count = classUserDao.selectCount(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,classEntity.getId())
.eq(ClassUser::getRole,"0"));
if (count<classEntity.getNumber()){
ClassUser classUser = new ClassUser();
classUser.setClassId(classEntity.getId());
classUser.setUserId(ShiroUtils.getUId());
classUserDao.insert(classUser);
return true;
}else {
return false;
}
}
@Override
public void quitClass(Map<String, Object> params) {
classUserDao.delete(new LambdaQueryWrapper<ClassUser>()
.eq(ClassUser::getClassId,params.get("classId"))
.eq(ClassUser::getUserId,params.get("userId")));
}
@Override
public List<ClassEntity> MyClassList(Map<String, Object> params) {
MPJLambdaWrapper<ClassEntity> 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<ClassEntity> list = this.baseMapper.selectList(wrapper);
return list;
}
}

View File

@@ -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);
}
//移除正在学习(收藏)

View File

@@ -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<CourseEntity> {
List<CourseEntity> getUserLateCourseList(ParamTo param);
boolean addUserCourseStudying(UserCourseStudying userCourseStudying);
R addUserCourseStudying(UserCourseStudying userCourseStudying);
boolean delUserCourseStudying(Map<String,Object> param);

View File

@@ -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<CourseDao, CourseEntity> 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<UserCourseStudying>()
.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("添加失败");
}
}
}

View File

@@ -111,11 +111,18 @@ public class CourseController {
*/
@RequestMapping("/addUserCourseStudying")
public R addUserCourseStudying(@RequestBody Map<String,Integer> 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<UserCourseStudying>()
.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);
}
}
/**