Преглед изворни кода

Merge remote-tracking branch 'origin/master'

zouxuan пре 4 година
родитељ
комит
4aa8a95a7e

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1801,6 +1801,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //3、将老师加入关联关系
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
 
+        Set<Integer> noRepeatTeacherIds = classGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
+        if(noRepeatTeacherIds.size()!=classGroupTeacherMapperList.size()){
+            throw new BizException("主教与助教存在冲突");
+        }
+
         Integer teacherId = null;
         for (ClassGroupTeacherMapper groupTeacherMapper : classGroupTeacherMapperList) {
             groupTeacherMapper.setGroupType(classGroup.getGroupType());
@@ -2098,6 +2103,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
         //1、更新班级关联老师信息
         List<ClassGroupTeacherMapper> newClassGroupTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
+
+        Set<Integer> noRepeatTeacherIds = newClassGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
+        if(noRepeatTeacherIds.size()!=newClassGroupTeacherMapperList.size()){
+            throw new BizException("主教与助教存在冲突");
+        }
+
         Integer teacherId = null;
         for (ClassGroupTeacherMapper groupTeacherMapper : newClassGroupTeacherMapperList) {
             groupTeacherMapper.setGroupType(classGroup.getGroupType());
@@ -2410,6 +2421,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //3、将老师加入关联关系
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroup4MixDtos.get(0).getClassGroupTeacherMapperList();
 
+        Set<Integer> noRepeatTeacherIds = classGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
+        if(noRepeatTeacherIds.size()!=classGroupTeacherMapperList.size()){
+            throw new BizException("主教与助教存在冲突");
+        }
+
         Integer teacherId = null;
         for (ClassGroupTeacherMapper groupTeacherMapper : classGroupTeacherMapperList) {
             groupTeacherMapper.setGroupType(classGroup.getGroupType());

+ 29 - 22
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1807,9 +1807,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         }
 
         //所有课程编号
-		List<Long> allCourseScheduleIds = allCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+		Set<Long> allCourseScheduleIds = allCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toSet());
         //所有课程学员签到记录
-		List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseIds(allCourseScheduleIds);
+		List<StudentAttendance> studentAttendances = studentAttendanceDao.findByCourseIds(new ArrayList<>(allCourseScheduleIds));
 		//课程请假学员字典
 		Map<Long, Set<Integer>> courseLeaveStudentMap = studentAttendances.stream()
 				.filter(e -> StudentAttendanceStatusEnum.LEAVE.equals(e.getStatus()))
@@ -1878,24 +1878,27 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 //                        }
 
                         //助教冲突检测
-                        if (Objects.isNull(preCourseSchedule.getId())) {
-                            IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(preCourseSchedule.getClassGroupId());
-                            if (Objects.nonNull(integerAndIntegerListDto)) {
-                                preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
-                            }
-                        } else if (existCourseScheduleIdsSet.contains(preCourseSchedule.getId())) {
-                            IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(preCourseSchedule.getId());
+						if (allCourseScheduleIds.contains(preCourseSchedule.getId())) {
+							IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(preCourseSchedule.getId());
+							if (Objects.nonNull(integerAndIntegerListDto)) {
+								preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+							}
+						}
+                        if (CollectionUtils.isEmpty(preCourseSchedule.getTeachingTeacherIdList())) {
+                            IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(preCourseSchedule.getClassGroupId().longValue());
                             if (Objects.nonNull(integerAndIntegerListDto)) {
                                 preCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
                             }
                         }
-                        if (Objects.isNull(backCourseSchedule.getId())) {
-                            IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(backCourseSchedule.getClassGroupId());
-                            if (Objects.nonNull(integerAndIntegerListDto)) {
-                                backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
-                            }
-                        } else if (existCourseScheduleIdsSet.contains(backCourseSchedule.getId())) {
-                            IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(backCourseSchedule.getId());
+
+						if (allCourseScheduleIds.contains(backCourseSchedule.getId())) {
+							IntegerAndIntegerListDto integerAndIntegerListDto = courseScheduleTeachingTeacherMap.get(backCourseSchedule.getId());
+							if (Objects.nonNull(integerAndIntegerListDto)) {
+								backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
+							}
+						}
+                        if (CollectionUtils.isEmpty(backCourseSchedule.getTeachingTeacherIdList())) {
+                            IntegerAndIntegerListDto integerAndIntegerListDto = classGroupTeachingTeacherMap.get(backCourseSchedule.getClassGroupId().longValue());
                             if (Objects.nonNull(integerAndIntegerListDto)) {
                                 backCourseSchedule.setTeachingTeacherIdList(integerAndIntegerListDto.getIds());
                             }
@@ -5178,6 +5181,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		courseRepeatCheckInfos.sort(Comparator.comparing(CourseRepeatCheckDto::getStartClassTime));
 		Map<Date, List<CourseRepeatCheckDto>> dayCourseMap = courseRepeatCheckInfos.stream().collect(Collectors.groupingBy(CourseRepeatCheckDto::getClassDate));
 		Map<Long, List<Long>> courseRepeatIdMap = new HashMap<>();
+		int needAdjustCourseNum = 0;
 		for (CourseRepeatCheckDto cs1 : courseRepeatCheckInfos) {
 			if(!courseRepeatIdMap.containsKey(cs1.getCourseId())){
 				courseRepeatIdMap.put(cs1.getCourseId(), new ArrayList<>());
@@ -5209,21 +5213,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				if(repeatTeacherNums>0){
 					System.out.println(cs1.getCourseId() + "," + cs2.getCourseId());
 					courseRepeatIdMap.get(cs1.getCourseId()).add(cs2.getCourseId());
+					needAdjustCourseNum++;
 					continue;
 				}
 
-//				long repeatStudentNums = cs1.getStudentIds().stream().filter(studentId -> cs2.getStudentIds().contains(studentId)).count();
-//				if(repeatStudentNums>0){
-//					System.out.println(cs1.getCourseId() + "," + cs2.getCourseId());
-//					courseRepeatIdMap.get(cs1.getCourseId()).add(cs2.getCourseId());
-//					continue;
-//				}
+				long repeatStudentNums = cs1.getStudentIds().stream().filter(studentId -> cs2.getStudentIds().contains(studentId)).count();
+				if(repeatStudentNums>0){
+					System.out.println(cs1.getCourseId() + "," + cs2.getCourseId());
+					courseRepeatIdMap.get(cs1.getCourseId()).add(cs2.getCourseId());
+					needAdjustCourseNum++;
+					continue;
+				}
 			}
 			if(CollectionUtils.isEmpty(courseRepeatIdMap.get(cs1.getCourseId()))||courseRepeatIdMap.get(cs1.getCourseId()).size()==1){
 				courseRepeatIdMap.remove(cs1.getCourseId());
 			}
 		}
 		System.out.println("重复课程:" + JSON.toJSONString(courseRepeatIdMap));
+		System.out.println("需调整课程数量:" + needAdjustCourseNum);
 		System.out.println("重复课程数量:" + courseRepeatIdMap.size());
 	}
 }

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -3311,7 +3311,7 @@
         FROM course_schedule cs
         LEFT JOIN course_schedule_student_payment cssp ON cs.id_=cssp.course_schedule_id_
         LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
-        WHERE cs.organ_id_!=41 AND cs.del_flag_=0 AND cs.create_time_>'2020-03-01 00:00:00' AND cs.create_time_&lt;'3000-01-01 00:00:00'
+        WHERE cs.organ_id_!=41 AND cs.del_flag_=0 AND cs.create_time_>'2020-11-01 00:00:00' AND cs.create_time_&lt;'3000-01-01 00:00:00'
     </select>
 
 </mapper>

+ 8 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupActivityController.java

@@ -63,16 +63,22 @@ public class VipGroupActivityController extends BaseController {
             return failed("用户信息获取失败");
         }
         List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(categoryId, sysUser.getId());
+        SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.VIP_SPECIAL_ACTIVITY_IDS);
         if(onlySpecialActivity){
-            SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.VIP_SPECIAL_ACTIVITY_IDS);
             if(Objects.isNull(sysConfig)|| StringUtils.isBlank(sysConfig.getParanValue())){
                 return succeed(Collections.EMPTY_LIST);
             }
             Set<Integer> specialActivityIds = Arrays.stream(sysConfig.getParanValue().split(",")).map(Integer::valueOf).collect(Collectors.toSet());
             List<VipGroupActivity> results = vipGroupActivities.stream().filter(e -> specialActivityIds.contains(e.getId())).collect(Collectors.toList());
             return succeed(results);
+        }else{
+            if(Objects.isNull(sysConfig)|| StringUtils.isBlank(sysConfig.getParanValue())){
+                return succeed(vipGroupActivities);
+            }
+            Set<Integer> specialActivityIds = Arrays.stream(sysConfig.getParanValue().split(",")).map(Integer::valueOf).collect(Collectors.toSet());
+            List<VipGroupActivity> results = vipGroupActivities.stream().filter(e -> !specialActivityIds.contains(e.getId())).collect(Collectors.toList());
+            return succeed(results);
         }
-        return succeed(vipGroupActivities);
     }
 
 }