小班相关

加入我的收藏-单条限制
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

@@ -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;
}
}