小班相关

This commit is contained in:
wuchunlei
2024-07-30 10:49:38 +08:00
parent 8503e4dfb4
commit 8322cb8089
5 changed files with 192 additions and 16 deletions

View File

@@ -22,12 +22,14 @@ public class ClassController {
@Autowired
private ClassEntityService classEntityService;
//班级模型列表
@RequestMapping("/getClassModelList")
public R getClassModelList(@RequestBody Map<String,Object> params){
Page classModelList = classEntityService.getClassModelList(params);
return R.ok().put("page",classModelList);
}
//新增班级模型
@RequestMapping("/addClassModel")
public R addClassModel(@RequestBody ClassModel classModel){
if (classEntityService.addClassModel(classModel)){
@@ -37,36 +39,61 @@ public class ClassController {
}
}
//修改班级模型
@RequestMapping("/editClassModel")
public R editClassModel(@RequestBody ClassModel classModel){
if (classEntityService.editClassModel(classModel)){
return R.ok();
}else {
return R.error("已存在小班,不能修改");
}
}
//获取主任下的班级模型
@RequestMapping("/getClassModelByUserid")
public R getClassModelByUserid(@RequestBody Map<String,Object> params){
List<ClassModel> classModelList = classEntityService.getClassModelByUserid(params);
return R.ok().put("classModelList",classModelList);
}
//获取班级列表
@RequestMapping("/getClassList")
public R getClassList(@RequestBody Map<String,Object> params){
Page classList = classEntityService.getClassList(params);
return R.ok().put("page",classList);
}
//新增班级
@RequestMapping("/addClass")
public R addClass(@RequestBody ClassEntity classEntity){
if (classEntityService.save(classEntity)){
public R addClass(@RequestBody Map<String,Object> params){
if (classEntityService.addClass(params)){
return R.ok();
}else {
return R.error("保存出错");
}
}
//修改班级
@RequestMapping("/editClass")
public R editClass(@RequestBody ClassEntity classEntity){
if (classEntityService.updateById(classEntity)){
public R editClass(@RequestBody Map<String,Object> params){
if (classEntityService.editClass(params)){
return R.ok();
}else {
return R.error("编辑出错");
}
}
//设置班委
@RequestMapping("/setUserRole")
public R setUserRole(@RequestBody Map<String,Object> params){
if (classEntityService.setUserRole(params)){
return R.ok();
}else {
return R.error("设置出错");
}
}
//设删除班级
@RequestMapping("/delClass")
public R delClass(@RequestBody Map<String,Object> params){
if (classEntityService.removeById((Integer)params.get("classId"))){

View File

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@TableName("class")
@@ -25,6 +27,8 @@ public class ClassEntity {
private String content;
private Integer number; //成员数量
private Integer createUserid;
private Date createTime;
@@ -38,5 +42,12 @@ 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

@@ -1,5 +1,6 @@
package com.peanut.modules.common.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -16,8 +17,11 @@ public class ClassUser {
private Integer userId;
private String role;
private String role;//角色0学员1班长2副班长3学习委员4评分员5记分员
@TableLogic
private Integer delFlag;
@TableField(exist = false)
private MyUserEntity user;
}

View File

@@ -14,8 +14,16 @@ public interface ClassEntityService extends IService<ClassEntity> {
boolean addClassModel(ClassModel classModel);
boolean editClassModel(ClassModel classModel);
List<ClassModel> getClassModelByUserid(Map<String ,Object> params);
Page getClassList(Map<String ,Object> params);
boolean addClass(Map<String ,Object> params);
boolean editClass(Map<String ,Object> params);
boolean setUserRole(Map<String ,Object> params);
}

View File

@@ -4,15 +4,14 @@ 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.modules.common.dao.ClassCourseDao;
import com.peanut.modules.common.dao.ClassEntityDao;
import com.peanut.modules.common.dao.ClassModelDao;
import com.peanut.modules.common.dao.MyUserDao;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.modules.common.dao.*;
import com.peanut.modules.common.entity.*;
import com.peanut.modules.common.service.ClassEntityService;
import com.peanut.modules.sys.dao.SysUserDao;
import com.peanut.modules.sys.entity.SysUserEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -28,6 +27,8 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
@Autowired
private ClassCourseDao classCourseDao;
@Autowired
private ClassUserDao classUserDao;
@Autowired
private MyUserDao myUserDao;
@Autowired
private SysUserDao sysUserDao;
@@ -37,8 +38,13 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
Integer limit = Integer.valueOf(params.get("limit").toString());
Integer page = Integer.valueOf(params.get("page").toString());
MPJLambdaWrapper<ClassModel> wrapper = new MPJLambdaWrapper<>();
if (StringUtils.isNotEmpty(params.get("title").toString())){
wrapper.like(ClassModel::getTitle,params.get("title"));
}
wrapper.orderByDesc(ClassModel::getId);
Page<ClassModel> classModelPage = classModelDao.selectPage(new Page<>(page, limit), wrapper);
for (ClassModel classModel:classModelPage.getRecords()){
//返回主任和课程
setDirectorCourse(classModel);
}
return classModelPage;
@@ -46,37 +52,68 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
@Override
public boolean addClassModel(ClassModel classModel) {
if (classModelDao.insert(classModel)>0){
String[] crouseIds = classModel.getCourseIds().split(",");
for (String crouseId : crouseIds) {
classModelDao.insert(classModel);
String[] courseIds = classModel.getCourseIds().split(",");
if(courseIds.length > 0){
for (String courseId : courseIds) {
ClassCourse classCourse = new ClassCourse();
classCourse.setCourseId(Integer.parseInt(crouseId));
classCourse.setCourseId(Integer.parseInt(courseId));
classCourse.setModelId(classModel.getId());
return classCourseDao.insert(classCourse)>0;
classCourseDao.insert(classCourse);
}
}
return false;
return true;
}
@Override
public boolean editClassModel(ClassModel classModel) {
LambdaQueryWrapper<ClassEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ClassEntity::getModelId,classModel.getId());
//模型下有小班,不能编辑
if (this.getBaseMapper().selectCount(wrapper)>0){
return false;
}else {
classModelDao.updateById(classModel);
//查询出所属课程,先删除,在添加
LambdaQueryWrapper<ClassCourse> courseWrap = new LambdaQueryWrapper<>();
courseWrap.eq(ClassCourse::getModelId,classModel.getId());
classCourseDao.delete(courseWrap);
String[] crouseIds = classModel.getCourseIds().split(",");
if (crouseIds.length > 0) {
for (String crouseId : crouseIds) {
ClassCourse classCourse = new ClassCourse();
classCourse.setCourseId(Integer.parseInt(crouseId));
classCourse.setModelId(classModel.getId());
classCourseDao.insert(classCourse);
}
}
return true;
}
}
@Override
public List<ClassModel> getClassModelByUserid(Map<String, Object> params) {
LambdaQueryWrapper<ClassModel> wrapper = new LambdaQueryWrapper<>();
wrapper.and(t->t.eq(ClassModel::getDirectorId,params.get("userId")).or().eq(ClassModel::getDdirectorId,params.get("userId")));
wrapper.and(t->t.eq(ClassModel::getDirectorId,params.get("userId"))
.or().eq(ClassModel::getDdirectorId,params.get("userId")));
List<ClassModel> classModelList = classModelDao.selectList(wrapper);
if (classModelList.size() > 0){
for (ClassModel classModel : classModelList) {
//返回主任和课程
setDirectorCourse(classModel);
}
}
return classModelList;
}
//设置主任和课程
private void setDirectorCourse(ClassModel classModel){
classModel.setDirector(myUserDao.selectById(classModel.getDirectorId()));
classModel.setDdirector(myUserDao.selectById(classModel.getDdirectorId()));
MPJLambdaWrapper<ClassModel> modelwrapper = new MPJLambdaWrapper<>();
modelwrapper.leftJoin(ClassCourse.class,ClassCourse::getModelId,ClassModel::getId);
modelwrapper.leftJoin(CourseEntity.class,CourseEntity::getId,ClassCourse::getCourseId);
modelwrapper.eq(ClassCourse::getModelId,classModel.getId());
modelwrapper.selectAll(CourseEntity.class);
classModel.setCourseList(classModelDao.selectJoinList(CourseEntity.class,modelwrapper));
}
@@ -86,6 +123,17 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
Integer limit = Integer.valueOf(params.get("limit").toString());
Integer page = Integer.valueOf(params.get("page").toString());
MPJLambdaWrapper<ClassEntity> wrapper = new MPJLambdaWrapper<>();
wrapper.leftJoin(ClassModel.class,ClassModel::getId,ClassEntity::getModelId);
wrapper.selectAll(ClassEntity.class);
if (StringUtils.isNotEmpty(params.get("type").toString())){
wrapper.eq(ClassModel::getType,params.get("type"));
}
if (StringUtils.isNotEmpty(params.get("state").toString())){
wrapper.eq(ClassEntity::getState,params.get("state"));
}
if (StringUtils.isNotEmpty(params.get("title").toString())){
wrapper.like(ClassEntity::getTitle,params.get("title"));
}
wrapper.orderByDesc(ClassEntity::getCreateTime);
Page<ClassEntity> classEntityPage = this.getBaseMapper().selectPage(new Page<>(page, limit), wrapper);
for (ClassEntity classEntity:classEntityPage.getRecords()){
@@ -96,7 +144,85 @@ public class ClassEntityServiceImpl extends ServiceImpl<ClassEntityDao, ClassEnt
}else {
classEntity.setCreateUser(user);
}
classEntity.setClassModel(classModelDao.selectById(classEntity.getModelId()));
MPJLambdaWrapper<ClassUser> userWrapper = new MPJLambdaWrapper<>();
userWrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,ClassUser::getUserId);
userWrapper.select("t.role,t.user_id as userId,t1.tel,t1.name,t1.nickname");
userWrapper.eq(ClassUser::getClassId,classEntity.getId());
userWrapper.in(ClassUser::getRole,"1","2","3","4","5");
classEntity.setClassUsers(classUserDao.selectMaps(userWrapper));
}
return classEntityPage;
}
@Override
public boolean addClass(Map<String, Object> params) {
ClassEntity c = new ClassEntity();
c.setModelId((Integer)params.get("modelId"));
c.setTitle(params.get("title").toString());
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 {
c.setCreateUserid(ShiroUtils.getUserId().intValue());
}
this.getBaseMapper().insert(c);
return true;
}
@Override
public boolean editClass(Map<String, Object> params) {
ClassEntity c = new ClassEntity();
c.setId((Integer)params.get("id"));
c.setTitle(params.get("title").toString());
c.setState(params.get("state").toString());
c.setIcon(params.get("icon").toString());
c.setContent(params.get("content").toString());
this.getBaseMapper().updateById(c);
return true;
}
@Override
public boolean setUserRole(Map<String, Object> params) {
LambdaQueryWrapper<ClassUser> userWrap = new LambdaQueryWrapper<>();
userWrap.eq(ClassUser::getClassId,params.get("classId"));
userWrap.in(ClassUser::getRole,"1","2","3","4","5");
classUserDao.delete(userWrap);
int classId = Integer.parseInt(params.get("classId").toString());
if (StringUtils.isNotEmpty(params.get("monitor").toString())){
addClassUser(classId,Integer.parseInt(params.get("monitor").toString()),"1");
}
if (StringUtils.isNotEmpty(params.get("dmonitor").toString())){
addClassUser(classId,Integer.parseInt(params.get("dmonitor").toString()),"2");
}
if (StringUtils.isNotEmpty(params.get("learner").toString())){
addClassUser(classId,Integer.parseInt(params.get("learner").toString()),"3");
}
if (StringUtils.isNotEmpty(params.get("scorer").toString())){
String[] scorers = params.get("scorer").toString().split(",");
for (String scorer : scorers) {
addClassUser(classId,Integer.parseInt(scorer),"4");
}
}
if (StringUtils.isNotEmpty(params.get("counter").toString())){
String[] scorers = params.get("counter").toString().split(",");
for (String scorer : scorers) {
addClassUser(classId,Integer.parseInt(scorer),"5");
}
}
return true;
}
public int addClassUser(int classId,int userId,String role) {
ClassUser classUser = new ClassUser();
classUser.setClassId(classId);
classUser.setUserId(userId);
classUser.setRole(role);
return classUserDao.insert(classUser);
}
}