Browse Source

feat:乐团改造

Joburgess 4 years ago
parent
commit
838c9089ad

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -154,6 +154,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<CourseSchedule> getClassGroupNotStartCourse(@Param("classGroupId") Long classGroupId);
 
+    /**
+     * @describe 获取班级上的课程
+     * @author qnc99
+     * @date 2020/12/8 0008
+     * @param classGroupId:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
+     */
+    List<CourseSchedule> getClassGroupCourses(@Param("classGroupId") Long classGroupId);
+
 
     /**
      * @param teacherId: 教师编号

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -625,7 +625,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @param courseSchedules:
 	 * @return void
 	 */
-	void mergeCourseReplace(List<CourseSchedule> courseSchedules);
+	List<CourseSchedule> mergeCourseReplace(Long classGroupId);
 
 	/**
 	 * @describe 课程合并

+ 1 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -454,13 +454,11 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         classGroupService.updateClassStudentNum(classGroupId.intValue(), allStudentIds.size());
 
-        List<CourseSchedule> classGroupNotStartCourse = courseScheduleDao.getClassGroupNotStartCourse(classGroupId);
+        List<CourseSchedule> classGroupNotStartCourse = courseScheduleService.mergeCourseReplace(classGroupId);
         if(CollectionUtils.isEmpty(classGroupNotStartCourse)){
             return;
         }
 
-        courseScheduleService.mergeCourseReplace(classGroupNotStartCourse);
-
         if(ClassGroupTypeEnum.MUSIC_NETWORK.equals(classGroup.getType())){
             for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
                 courseSchedule.setName(classGroup.getName());

+ 9 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5258,11 +5258,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public void mergeCourseReplace(List<CourseSchedule> courseSchedules) {
+	public List<CourseSchedule> mergeCourseReplace(Long classGroupId) {
+		List<CourseSchedule> courseSchedules = courseScheduleDao.getClassGroupCourses(classGroupId);
 		Set<Long> newCourseIds = courseSchedules.stream().filter(c -> Objects.nonNull(c.getNewCourseId())).map(CourseSchedule::getNewCourseId).collect(Collectors.toSet());
 		if(CollectionUtils.isEmpty(newCourseIds)){
-			return;
+			return Collections.EMPTY_LIST;
 		}
+
+		Date now = new Date();
+
 		List<CourseSchedule> mainCourses = courseScheduleDao.findByCourseScheduleIds(new ArrayList<>(newCourseIds));
 		Map<Long, CourseSchedule> idCourseMap = mainCourses.stream().collect(Collectors.toMap(CourseSchedule::getId, c -> c, (c1, c2) -> c1));
 		Iterator<CourseSchedule> iterator = courseSchedules.iterator();
@@ -5271,7 +5275,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if(Objects.isNull(next.getNewCourseId())){
 				continue;
 			}
-			if(next.getClassGroupId().equals(idCourseMap.get(next.getNewCourseId()).getClassGroupId())){
+			CourseSchedule mainCourse = idCourseMap.get(next.getNewCourseId());
+			if(next.getClassGroupId().equals(mainCourse.getClassGroupId())||mainCourse.getStartClassTime().compareTo(now)<0){
 				iterator.remove();
 			}
 		}
@@ -5281,6 +5286,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 			courseSchedule = idCourseMap.get(courseSchedule.getId());
 		}
+		return courseSchedules;
 	}
 
 	@Override

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1293,8 +1293,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         Map<CourseSchedule.CourseScheduleType, Integer> courseTypeCourseDurationMap = new HashMap<>();
         Map<CourseSchedule.CourseScheduleType, List<CourseSchedule>> typeCourseMap = new HashMap<>();
         if(Objects.nonNull(classGroupId)){
-            List<CourseSchedule> classGroupNotStartCourse = courseScheduleDao.getClassGroupNotStartCourse(classGroupId);
-            courseScheduleService.mergeCourseReplace(classGroupNotStartCourse);
+            List<CourseSchedule> classGroupNotStartCourse = courseScheduleService.mergeCourseReplace(classGroupId);
             typeCourseMap = classGroupNotStartCourse.stream().collect(Collectors.groupingBy(CourseSchedule::getType));
             for (Map.Entry<CourseSchedule.CourseScheduleType, List<CourseSchedule>> typeCoursesEntry : typeCourseMap.entrySet()) {
                 int totalCourseDuration = 0;

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

@@ -2054,6 +2054,10 @@
         SELECT * FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ', start_class_time_) &gt; NOW()
     </select>
 
+    <select id="getClassGroupCourses" resultMap="CourseSchedule">
+        SELECT * FROM course_schedule WHERE class_group_id_=#{classGroupId}
+    </select>
+
     <delete id="deleteCourseSchedulesByClassGroupIds">
         DELETE FROM course_schedule WHERE id_ IN
         <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">