|
@@ -1,6 +1,7 @@
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -160,7 +161,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
tmp.setWeightSetting(false);
|
|
tmp.setWeightSetting(false);
|
|
|
|
|
|
for (String courseCode : courseCodeList) {
|
|
for (String courseCode : courseCodeList) {
|
|
- if (Objects.isNull(basicCourseService.findByCourseCode(courseCode,schoolId))){
|
|
|
|
|
|
+ if (Objects.isNull(basicCourseService.findByCourseCode(courseCode, schoolId))) {
|
|
throw ExceptionResultEnum.ERROR.exception("课程不存在");
|
|
throw ExceptionResultEnum.ERROR.exception("课程不存在");
|
|
}
|
|
}
|
|
TeachCourse cell = new TeachCourse();
|
|
TeachCourse cell = new TeachCourse();
|
|
@@ -511,17 +512,19 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
@Override
|
|
@Override
|
|
public List<ClazzDistributedResult> findClazzDistributedStatus(Long examId, String courseCode, String clazzName) {
|
|
public List<ClazzDistributedResult> findClazzDistributedStatus(Long examId, String courseCode, String clazzName) {
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
|
+ Long requestUserId = requestUser.getId();
|
|
clazzName = SystemConstant.translateSpecificSign(clazzName);
|
|
clazzName = SystemConstant.translateSpecificSign(clazzName);
|
|
|
|
|
|
- TeachCourse teacherTeachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, requestUser.getId());
|
|
|
|
- Long leaderId = teacherTeachCourse.getCreateId();
|
|
|
|
- TeachCourse leaderTeachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, leaderId);
|
|
|
|
|
|
+ TeachCourse teachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, requestUserId);
|
|
|
|
+ if (!requestUserId.equals(teachCourse.getCreateId())) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("非课程创建人没有分配班级的权限");
|
|
|
|
+ }
|
|
|
|
+ Long leaderTeachCourseId = teachCourse.getId();
|
|
|
|
|
|
- Long leaderTeachCourseId = leaderTeachCourse.getId();
|
|
|
|
// 所有教学班
|
|
// 所有教学班
|
|
QueryWrapper<TeachClazz> queryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TeachClazz> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.lambda().eq(TeachClazz::getTeachCourseId, leaderTeachCourseId);
|
|
queryWrapper.lambda().eq(TeachClazz::getTeachCourseId, leaderTeachCourseId);
|
|
- if (SystemConstant.strNotNull(clazzName)){
|
|
|
|
|
|
+ if (SystemConstant.strNotNull(clazzName)) {
|
|
queryWrapper.lambda().like(TeachClazz::getClazzName, clazzName);
|
|
queryWrapper.lambda().like(TeachClazz::getClazzName, clazzName);
|
|
}
|
|
}
|
|
List<TeachClazz> teachClazzList = teachClazzService.list(queryWrapper);
|
|
List<TeachClazz> teachClazzList = teachClazzService.list(queryWrapper);
|
|
@@ -535,7 +538,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
Long basicTeachClazzId = teachClazz.getBasicTeachClazzId();
|
|
Long basicTeachClazzId = teachClazz.getBasicTeachClazzId();
|
|
List<DictionaryResult> teacherList = new ArrayList<>();
|
|
List<DictionaryResult> teacherList = new ArrayList<>();
|
|
List<TeachClazz> list = distributedClazzDatasource.stream().filter(e -> basicTeachClazzId.equals(e.getBasicTeachClazzId())).collect(Collectors.toList());
|
|
List<TeachClazz> list = distributedClazzDatasource.stream().filter(e -> basicTeachClazzId.equals(e.getBasicTeachClazzId())).collect(Collectors.toList());
|
|
- if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
teacherList = sysUserService.listByIds(
|
|
teacherList = sysUserService.listByIds(
|
|
list.stream().map(TeachClazz::getUserId).collect(Collectors.toList())).stream().flatMap(e -> {
|
|
list.stream().map(TeachClazz::getUserId).collect(Collectors.toList())).stream().flatMap(e -> {
|
|
DictionaryResult dictionaryResult = new DictionaryResult();
|
|
DictionaryResult dictionaryResult = new DictionaryResult();
|
|
@@ -557,37 +560,47 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public void assignClazz(AssignClazzParam assignClazzParam, SysUser requestUser) {
|
|
public void assignClazz(AssignClazzParam assignClazzParam, SysUser requestUser) {
|
|
|
|
+ Long requestUserId = requestUser.getId();
|
|
Long examId = assignClazzParam.getExamId();
|
|
Long examId = assignClazzParam.getExamId();
|
|
String courseCode = assignClazzParam.getCourseCode();
|
|
String courseCode = assignClazzParam.getCourseCode();
|
|
Long teacherId = assignClazzParam.getTeacherId();
|
|
Long teacherId = assignClazzParam.getTeacherId();
|
|
List<Long> basicTeachClazzIdList = assignClazzParam.getClazzIdList();
|
|
List<Long> basicTeachClazzIdList = assignClazzParam.getClazzIdList();
|
|
|
|
|
|
- TeachCourse teachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, requestUser.getId());
|
|
|
|
- if (!teachCourse.getCreateId().equals(teachCourse.getUserId())) {
|
|
|
|
|
|
+ TeachCourse teachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, requestUserId);
|
|
|
|
+ if (!teachCourse.getCreateId().equals(requestUserId)) {
|
|
throw ExceptionResultEnum.ERROR.exception("该用户没有分配教师班级的权限");
|
|
throw ExceptionResultEnum.ERROR.exception("该用户没有分配教师班级的权限");
|
|
}
|
|
}
|
|
-
|
|
|
|
Long teachCourseId = teachCourse.getId();
|
|
Long teachCourseId = teachCourse.getId();
|
|
|
|
|
|
- TeachCourse teacherTeachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, teacherId);
|
|
|
|
- Long teacherTeachCourseId = teacherTeachCourse.getId();
|
|
|
|
-
|
|
|
|
- List<Long> alreadySelectClazzIdList = teachClazzService.list(
|
|
|
|
- new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getTeachCourseId, teacherTeachCourseId)).stream()
|
|
|
|
- .map(TeachClazz::getBasicTeachClazzId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- basicTeachClazzIdList = basicTeachClazzIdList.stream().filter(e -> !alreadySelectClazzIdList.contains(e)).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (Long clazzId : basicTeachClazzIdList) {
|
|
|
|
- TeachClazz teachClazz = new TeachClazz();
|
|
|
|
- teachClazz.setSchoolId(teachCourse.getSchoolId());
|
|
|
|
- teachClazz.setTeachCourseId(teacherTeachCourseId);
|
|
|
|
- teachClazz.setBasicTeachClazzId(clazzId);
|
|
|
|
- teachClazz.setUserId(teacherId);
|
|
|
|
- teachClazz.setClazzName(basicTeachClazzService.getById(clazzId).getClazzName());
|
|
|
|
- teachClazz.setBelongTeachCourseId(teachCourseId);
|
|
|
|
- teachClazz.insertInfo(requestUser.getId());
|
|
|
|
- teachClazzService.save(teachClazz);
|
|
|
|
|
|
+ if (teacherId.equals(requestUserId)) {
|
|
|
|
+ // 课程负责人分配自己的班级
|
|
|
|
+ UpdateWrapper<TeachClazz> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper.lambda().set(TeachClazz::getBelongTeachCourseId, teachCourseId)
|
|
|
|
+ .set(TeachClazz::getUpdateId, requestUserId)
|
|
|
|
+ .set(TeachClazz::getUpdateTime, System.currentTimeMillis())
|
|
|
|
+ .set(TeachClazz::getUserId, requestUserId).eq(TeachClazz::getTeachCourseId, teachCourseId)
|
|
|
|
+ .in(TeachClazz::getBasicTeachClazzId, basicTeachClazzIdList);
|
|
|
|
+ teachClazzService.update(updateWrapper);
|
|
|
|
+ } else {
|
|
|
|
+ // 课程负责人分配其他老师的班级
|
|
|
|
+ TeachCourse teacherTeachCourse = this.findByExamIdCourseCodeAndUserId(examId, courseCode, teacherId);
|
|
|
|
+ Long teacherTeachCourseId = teacherTeachCourse.getId();
|
|
|
|
+ // 删除之前分配的班级数据
|
|
|
|
+ teachClazzService.remove(
|
|
|
|
+ new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getTeachCourseId, teacherTeachCourseId)
|
|
|
|
+ .eq(TeachClazz::getBelongTeachCourseId, teachCourseId));
|
|
|
|
+ // 新增新班级分配数据
|
|
|
|
+ for (Long clazzId : basicTeachClazzIdList) {
|
|
|
|
+ TeachClazz teachClazz = new TeachClazz();
|
|
|
|
+ teachClazz.setSchoolId(teachCourse.getSchoolId());
|
|
|
|
+ teachClazz.setTeachCourseId(teacherTeachCourseId);
|
|
|
|
+ teachClazz.setBasicTeachClazzId(clazzId);
|
|
|
|
+ teachClazz.setUserId(teacherId);
|
|
|
|
+ teachClazz.setClazzName(basicTeachClazzService.getById(clazzId).getClazzName());
|
|
|
|
+ teachClazz.setBelongTeachCourseId(teachCourseId);
|
|
|
|
+ teachClazz.insertInfo(requestUser.getId());
|
|
|
|
+ teachClazzService.save(teachClazz);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|