|
@@ -12,11 +12,11 @@ import com.qmth.distributed.print.business.bean.params.TeachCourseParams;
|
|
import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
|
|
import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
|
|
import com.qmth.distributed.print.business.bean.result.DictionaryResult;
|
|
import com.qmth.distributed.print.business.bean.result.DictionaryResult;
|
|
import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
|
|
import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
|
|
-import com.qmth.distributed.print.business.entity.TeachClazz;
|
|
|
|
-import com.qmth.distributed.print.business.entity.TeachCourse;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.entity.*;
|
|
|
|
+import com.qmth.distributed.print.business.enums.CourseEvaluationTypeEnum;
|
|
|
|
+import com.qmth.distributed.print.business.enums.CourseSettingTypeEnum;
|
|
import com.qmth.distributed.print.business.mapper.TeachCourseMapper;
|
|
import com.qmth.distributed.print.business.mapper.TeachCourseMapper;
|
|
-import com.qmth.distributed.print.business.service.TeachClazzService;
|
|
|
|
-import com.qmth.distributed.print.business.service.TeachCourseService;
|
|
|
|
|
|
+import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.teachcloud.common.base.BaseEntity;
|
|
import com.qmth.teachcloud.common.base.BaseEntity;
|
|
import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
|
|
import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
|
|
import com.qmth.teachcloud.common.bean.params.UserSaveParams;
|
|
import com.qmth.teachcloud.common.bean.params.UserSaveParams;
|
|
@@ -74,6 +74,18 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
@Resource
|
|
@Resource
|
|
private TeachClazzService teachClazzService;
|
|
private TeachClazzService teachClazzService;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private CourseTargetService courseTargetService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private CourseEvaluationService courseEvaluationService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private CourseWeightService courseWeightService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private CourseDimensionService courseDimensionService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public IPage<TeachCourseResult> teachCoursePage(String courseName, int pageNumber, int pageSize, Long userId) {
|
|
public IPage<TeachCourseResult> teachCoursePage(String courseName, int pageNumber, int pageSize, Long userId) {
|
|
if (!SystemConstant.longNotNull(userId)) {
|
|
if (!SystemConstant.longNotNull(userId)) {
|
|
@@ -94,10 +106,8 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
Long basicCourseId;
|
|
Long basicCourseId;
|
|
|
|
|
|
// 校验
|
|
// 校验
|
|
- BasicCourse basicCourse = basicCourseService.getOne(new QueryWrapper<BasicCourse>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(BasicCourse::getSchoolId, schoolId)
|
|
|
|
- .eq(BasicCourse::getCode, courseCode));
|
|
|
|
|
|
+ BasicCourse basicCourse = basicCourseService.getOne(
|
|
|
|
+ new QueryWrapper<BasicCourse>().lambda().eq(BasicCourse::getSchoolId, schoolId).eq(BasicCourse::getCode, courseCode));
|
|
if (Objects.nonNull(basicCourse)) {
|
|
if (Objects.nonNull(basicCourse)) {
|
|
// 根据课程编号查询存在课程判断名称是否一致
|
|
// 根据课程编号查询存在课程判断名称是否一致
|
|
if (!courseName.equals(basicCourse.getName())) {
|
|
if (!courseName.equals(basicCourse.getName())) {
|
|
@@ -105,11 +115,8 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
} else {
|
|
} else {
|
|
basicCourseId = basicCourse.getId();
|
|
basicCourseId = basicCourse.getId();
|
|
// 判断重复教学课程
|
|
// 判断重复教学课程
|
|
- if (this.count(new QueryWrapper<TeachCourse>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(TeachCourse::getSchoolId, schoolId)
|
|
|
|
- .eq(TeachCourse::getUserId, userId)
|
|
|
|
- .eq(TeachCourse::getBasicCourseId, basicCourseId)) > 0) {
|
|
|
|
|
|
+ if (this.count(new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getSchoolId, schoolId)
|
|
|
|
+ .eq(TeachCourse::getUserId, userId).eq(TeachCourse::getBasicCourseId, basicCourseId)) > 0) {
|
|
throw ExceptionResultEnum.ERROR.exception("课程[" + courseName + "]已经创建");
|
|
throw ExceptionResultEnum.ERROR.exception("课程[" + courseName + "]已经创建");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -136,21 +143,13 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
Long schoolId = requestUser.getSchoolId();
|
|
Long schoolId = requestUser.getSchoolId();
|
|
Long userId = requestUser.getId();
|
|
Long userId = requestUser.getId();
|
|
if (CollectionUtils.isNotEmpty(basicCourseIdList)) {
|
|
if (CollectionUtils.isNotEmpty(basicCourseIdList)) {
|
|
- basicCourseIdList = basicCourseService.listByIds(basicCourseIdList)
|
|
|
|
- .stream()
|
|
|
|
- .filter(BasicCourse::getEnable)
|
|
|
|
- .map(BaseEntity::getId)
|
|
|
|
- .distinct()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ basicCourseIdList = basicCourseService.listByIds(basicCourseIdList).stream().filter(BasicCourse::getEnable)
|
|
|
|
+ .map(BaseEntity::getId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(basicCourseIdList)) {
|
|
if (CollectionUtils.isNotEmpty(basicCourseIdList)) {
|
|
- List<Long> alreadyCreated = this.list(new QueryWrapper<TeachCourse>().lambda()
|
|
|
|
- .eq(TeachCourse::getUserId, userId)
|
|
|
|
- .in(TeachCourse::getBasicCourseId, basicCourseIdList))
|
|
|
|
- .stream()
|
|
|
|
- .map(TeachCourse::getBasicCourseId)
|
|
|
|
- .distinct()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ List<Long> alreadyCreated = this.list(
|
|
|
|
+ new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getUserId, userId).in(TeachCourse::getBasicCourseId, basicCourseIdList)).stream()
|
|
|
|
+ .map(TeachCourse::getBasicCourseId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
// 去掉已经创建的教学课程
|
|
// 去掉已经创建的教学课程
|
|
basicCourseIdList.removeAll(alreadyCreated);
|
|
basicCourseIdList.removeAll(alreadyCreated);
|
|
@@ -174,12 +173,13 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public void importTeachCourse(MultipartFile file, SysUser requestUser) throws IOException, NoSuchFieldException {
|
|
public void importTeachCourse(MultipartFile file, SysUser requestUser) throws IOException, NoSuchFieldException {
|
|
- List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(TeachCourseDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
|
- if (finalExcelErrorList.size() > 0) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
|
|
|
|
- }
|
|
|
|
- return finalExcelList;
|
|
|
|
- },2);
|
|
|
|
|
|
+ List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(TeachCourseDto.class),
|
|
|
|
+ (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
|
+ if (finalExcelErrorList.size() > 0) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
|
|
|
|
+ }
|
|
|
|
+ return finalExcelList;
|
|
|
|
+ }, 2);
|
|
|
|
|
|
if (Objects.nonNull(finalList) && finalList.size() > 0) {
|
|
if (Objects.nonNull(finalList) && finalList.size() > 0) {
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
@@ -226,8 +226,9 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
// 删除课程时,同步删除班级、学生、教师
|
|
// 删除课程时,同步删除班级、学生、教师
|
|
List<TeachCourse> teachCourseList = this.listByIds(idList);
|
|
List<TeachCourse> teachCourseList = this.listByIds(idList);
|
|
for (TeachCourse teachCourse : teachCourseList) {
|
|
for (TeachCourse teachCourse : teachCourseList) {
|
|
- List<TeachClazz> teachClazzList = teachClazzService.listByBasicCourseIdAndUserId(teachCourse.getSchoolId(), teachCourse.getBasicCourseId(), teachCourse.getUserId());
|
|
|
|
- if(CollectionUtils.isNotEmpty(teachClazzList)){
|
|
|
|
|
|
+ List<TeachClazz> teachClazzList = teachClazzService.listByBasicCourseIdAndUserId(teachCourse.getSchoolId(),
|
|
|
|
+ teachCourse.getBasicCourseId(), teachCourse.getUserId());
|
|
|
|
+ if (CollectionUtils.isNotEmpty(teachClazzList)) {
|
|
List<Long> teachClazzIds = teachClazzList.stream().map(TeachClazz::getId).collect(Collectors.toList());
|
|
List<Long> teachClazzIds = teachClazzList.stream().map(TeachClazz::getId).collect(Collectors.toList());
|
|
teachClazzService.deleteTeachClazzBatch(teachClazzIds);
|
|
teachClazzService.deleteTeachClazzBatch(teachClazzIds);
|
|
}
|
|
}
|
|
@@ -245,9 +246,8 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
Long schoolId = requestUser.getSchoolId();
|
|
Long schoolId = requestUser.getSchoolId();
|
|
Long teacherId;
|
|
Long teacherId;
|
|
|
|
|
|
- SysUser dbUser = sysUserService.getOne(new QueryWrapper<SysUser>().lambda()
|
|
|
|
- .eq(SysUser::getSchoolId, schoolId)
|
|
|
|
- .eq(SysUser::getCode, code));
|
|
|
|
|
|
+ SysUser dbUser = sysUserService.getOne(
|
|
|
|
+ new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getCode, code));
|
|
if (Objects.nonNull(dbUser)) {
|
|
if (Objects.nonNull(dbUser)) {
|
|
if (!name.equals(dbUser.getRealName())) {
|
|
if (!name.equals(dbUser.getRealName())) {
|
|
// 用户名称不一致
|
|
// 用户名称不一致
|
|
@@ -255,19 +255,15 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
} else {
|
|
} else {
|
|
teacherId = dbUser.getId();
|
|
teacherId = dbUser.getId();
|
|
// 判断在该教师团队下已经存在该教师
|
|
// 判断在该教师团队下已经存在该教师
|
|
- if (this.count(new QueryWrapper<TeachCourse>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(TeachCourse::getSchoolId, schoolId)
|
|
|
|
- .eq(TeachCourse::getBasicCourseId, basicCourseId)
|
|
|
|
- .eq(TeachCourse::getUserId, teacherId)) > 0) {
|
|
|
|
|
|
+ if (this.count(new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getSchoolId, schoolId)
|
|
|
|
+ .eq(TeachCourse::getBasicCourseId, basicCourseId).eq(TeachCourse::getUserId, teacherId)) > 0) {
|
|
throw ExceptionResultEnum.ERROR.exception("教师[" + name + "]已经在教师团队中");
|
|
throw ExceptionResultEnum.ERROR.exception("教师[" + name + "]已经在教师团队中");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
// 不存在用户,直接创建一个学校老师用户
|
|
// 不存在用户,直接创建一个学校老师用户
|
|
- SysRole schoolTeacher = sysRoleService.getOne(new QueryWrapper<SysRole>()
|
|
|
|
- .lambda()
|
|
|
|
- .eq(SysRole::getType, RoleTypeEnum.SCHOOL_TEACHER));
|
|
|
|
|
|
+ SysRole schoolTeacher = sysRoleService.getOne(
|
|
|
|
+ new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, RoleTypeEnum.SCHOOL_TEACHER));
|
|
if (Objects.isNull(schoolTeacher)) {
|
|
if (Objects.isNull(schoolTeacher)) {
|
|
throw ExceptionResultEnum.ERROR.exception("缺少学校教师角色");
|
|
throw ExceptionResultEnum.ERROR.exception("缺少学校教师角色");
|
|
}
|
|
}
|
|
@@ -280,7 +276,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
userSaveParams.setPassword(SystemConstant.DEFAULT_PASSWORD);
|
|
userSaveParams.setPassword(SystemConstant.DEFAULT_PASSWORD);
|
|
userSaveParams.setOrgId(requestUser.getOrgId());
|
|
userSaveParams.setOrgId(requestUser.getOrgId());
|
|
userSaveParams.setEnable(true);
|
|
userSaveParams.setEnable(true);
|
|
- userSaveParams.setRoleIds(new Long[]{schoolTeacher.getId()});
|
|
|
|
|
|
+ userSaveParams.setRoleIds(new Long[] { schoolTeacher.getId() });
|
|
teacherId = sysUserService.saveUser(userSaveParams);
|
|
teacherId = sysUserService.saveUser(userSaveParams);
|
|
}
|
|
}
|
|
// 添加教师团队
|
|
// 添加教师团队
|
|
@@ -300,20 +296,13 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
Long requestUserId = requestUser.getId();
|
|
Long requestUserId = requestUser.getId();
|
|
if (CollectionUtils.isNotEmpty(userIdList)) {
|
|
if (CollectionUtils.isNotEmpty(userIdList)) {
|
|
// 过滤userIdList
|
|
// 过滤userIdList
|
|
- userIdList = sysUserService.listByIds(userIdList).stream()
|
|
|
|
- .filter(SysUser::getEnable)
|
|
|
|
- .map(BaseEntity::getId)
|
|
|
|
- .distinct()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ userIdList = sysUserService.listByIds(userIdList).stream().filter(SysUser::getEnable).map(BaseEntity::getId)
|
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
|
|
|
if (CollectionUtils.isNotEmpty(userIdList)) {
|
|
if (CollectionUtils.isNotEmpty(userIdList)) {
|
|
- List<Long> alreadyCreated = this.list(new QueryWrapper<TeachCourse>().lambda()
|
|
|
|
- .in(TeachCourse::getUserId, userIdList)
|
|
|
|
- .eq(TeachCourse::getBasicCourseId, basicCourseId))
|
|
|
|
- .stream()
|
|
|
|
- .map(TeachCourse::getUserId)
|
|
|
|
- .distinct()
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
|
+ List<Long> alreadyCreated = this.list(
|
|
|
|
+ new QueryWrapper<TeachCourse>().lambda().in(TeachCourse::getUserId, userIdList).eq(TeachCourse::getBasicCourseId, basicCourseId)).stream().map(TeachCourse::getUserId)
|
|
|
|
+ .distinct().collect(Collectors.toList());
|
|
|
|
|
|
// 去掉已经在该课程教师团队的老师
|
|
// 去掉已经在该课程教师团队的老师
|
|
userIdList.removeAll(alreadyCreated);
|
|
userIdList.removeAll(alreadyCreated);
|
|
@@ -338,12 +327,13 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@Override
|
|
public void importTeacherTeam(MultipartFile file, Long basicCourseId, SysUser requestUser) throws IOException, NoSuchFieldException, IllegalAccessException {
|
|
public void importTeacherTeam(MultipartFile file, Long basicCourseId, SysUser requestUser) throws IOException, NoSuchFieldException, IllegalAccessException {
|
|
- List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(TeacherTeamDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
|
- if (finalExcelErrorList.size() > 0) {
|
|
|
|
- throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
|
|
|
|
- }
|
|
|
|
- return finalExcelList;
|
|
|
|
- },2);
|
|
|
|
|
|
+ List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(TeacherTeamDto.class),
|
|
|
|
+ (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
|
|
|
|
+ if (finalExcelErrorList.size() > 0) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
|
|
|
|
+ }
|
|
|
|
+ return finalExcelList;
|
|
|
|
+ }, 2);
|
|
|
|
|
|
if (Objects.nonNull(finalList) && finalList.size() > 0) {
|
|
if (Objects.nonNull(finalList) && finalList.size() > 0) {
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
for (int i = 0; i < finalList.size(); i++) {
|
|
@@ -369,7 +359,8 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
if (SystemConstant.strNotNull(userInfo)) {
|
|
if (SystemConstant.strNotNull(userInfo)) {
|
|
userInfo = SystemConstant.translateSpecificSign(userInfo);
|
|
userInfo = SystemConstant.translateSpecificSign(userInfo);
|
|
}
|
|
}
|
|
- IPage<TeacherTeamResult> page = this.baseMapper.findTeacherTeamPage(new Page<>(pageNumber, pageSize), userInfo, basicCourseId, schoolId);
|
|
|
|
|
|
+ IPage<TeacherTeamResult> page = this.baseMapper.findTeacherTeamPage(new Page<>(pageNumber, pageSize), userInfo,
|
|
|
|
+ basicCourseId, schoolId);
|
|
page.getRecords().forEach(e -> {
|
|
page.getRecords().forEach(e -> {
|
|
Long userId = e.getUserId();
|
|
Long userId = e.getUserId();
|
|
List<Long> userIdList = new ArrayList<>();
|
|
List<Long> userIdList = new ArrayList<>();
|
|
@@ -417,4 +408,29 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
|
|
this.saveBatch(teachCourseList);
|
|
this.saveBatch(teachCourseList);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public TeachCourse findByExamIdCourseCodeAndUserId(Long examId, String courseCode, Long userId) {
|
|
|
|
+ TeachCourse teachCourse = this.getOne(
|
|
|
|
+ new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getExamId, examId).eq(TeachCourse::getCourseCode, courseCode).eq(TeachCourse::getUserId, userId)
|
|
|
|
+ .last(SystemConstant.LIMIT1));
|
|
|
|
+ if (Objects.isNull(teachCourse)) {
|
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("教学课程不存在");
|
|
|
|
+ }
|
|
|
|
+ return teachCourse;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ @Override
|
|
|
|
+ public void clearCourseSetting(Long teachCourseId, CourseSettingTypeEnum courseSettingTypeEnum) {
|
|
|
|
+ if (courseSettingTypeEnum == CourseSettingTypeEnum.COURSE_DIMENSION) {// 删除知识点、目标设置
|
|
|
|
+ courseDimensionService.remove(
|
|
|
|
+ new QueryWrapper<CourseDimension>().lambda().eq(CourseDimension::getTeachCourseId, teachCourseId));
|
|
|
|
+ courseTargetService.remove(
|
|
|
|
+ new QueryWrapper<CourseTarget>().lambda().eq(CourseTarget::getTeachCourseId, teachCourseId));
|
|
|
|
+ }
|
|
|
|
+ // 删除权重设置
|
|
|
|
+ courseWeightService.remove(
|
|
|
|
+ new QueryWrapper<CourseWeight>().lambda().eq(CourseWeight::getTeachCourseId, teachCourseId));
|
|
|
|
+ }
|
|
}
|
|
}
|