Browse Source

feat: 课程合并

Joburgess 4 năm trước cách đây
mục cha
commit
f4e4383395

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseMergeDto.java

@@ -14,6 +14,9 @@ public class CourseMergeDto extends CourseSchedule {
     @ApiModelProperty(value = "合并课程编号")
     private List<Long> mergeCourseIds;
 
+    @ApiModelProperty(value = "操作人编号")
+    private Integer operatorId;
+
     public List<Long> getMergeCourseIds() {
         return mergeCourseIds;
     }
@@ -21,4 +24,12 @@ public class CourseMergeDto extends CourseSchedule {
     public void setMergeCourseIds(List<Long> mergeCourseIds) {
         this.mergeCourseIds = mergeCourseIds;
     }
+
+    public Integer getOperatorId() {
+        return operatorId;
+    }
+
+    public void setOperatorId(Integer operatorId) {
+        this.operatorId = operatorId;
+    }
 }

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -4422,6 +4422,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 idPracticeMap = practiceGroups.stream().collect(Collectors.toMap(PracticeGroup::getId, e->e));
 			}
 
+			Set<Long> mergeCourseIds = results.stream().filter(e -> Objects.nonNull(e.getNewCourseId())).map(e -> e.getNewCourseId()).collect(Collectors.toSet());
+
 			//获取班级声部名称
             List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
             Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
@@ -5265,6 +5267,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if(Objects.isNull(courseMergeInfo.getClassGroupId())&&courseMergeInfo.getId().equals(courseSchedule.getId())){
 				courseMergeInfo.setClassGroupId(courseSchedule.getClassGroupId());
 			}
+			courseSchedule.setNote("课程合并");
 		}
 		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseScheduleIds(allCourseIds);
 //		Map<Long, Set<Integer>> courseStudentIdsMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId, Collectors.mapping(CourseScheduleStudentPayment::getUserId, Collectors.toSet())));
@@ -5278,14 +5281,35 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		courseSchedules.add(courseMergeInfo);
 		courseAdjust(courseSchedules);
 
+		List<CourseScheduleModifyLog> insertCourseScheduleModifyLogList = new ArrayList<>();
+
 		List<CourseSchedule> mergeCourses = allCourses.stream().filter(c->courseMergeInfo.getMergeCourseIds().contains(c.getId())).collect(Collectors.toList());
 		for (CourseSchedule courseSchedule : mergeCourses) {
+			CourseScheduleModifyLog courseScheduleModifyLog = new CourseScheduleModifyLog();
+			courseScheduleModifyLog.setCourseScheduleId(courseSchedule.getId());
+			courseScheduleModifyLog.setCreateTime(now);
+			courseScheduleModifyLog.setPreviousCourseSchedule(JsonUtil.toJSONString(courseSchedule));
+
+			//课程信息变更
 			courseSchedule.setNewCourseId(courseMergeInfo.getId());
+			courseSchedule.setClassDate(courseMergeInfo.getClassDate());
+			courseSchedule.setStartClassTime(courseMergeInfo.getStartClassTime());
+			courseSchedule.setEndClassTime(courseMergeInfo.getEndClassTime());
+			courseSchedule.setActualTeacherId(courseMergeInfo.getActualTeacherId());
+			courseSchedule.setSchoolId(courseMergeInfo.getSchoolId());
+
+			courseScheduleModifyLog.setCurrentCourseSchedule(JsonUtil.toJSONString(courseSchedule));
+			courseScheduleModifyLog.setOperatorId(courseMergeInfo.getOperatorId());
+			insertCourseScheduleModifyLogList.add(courseScheduleModifyLog);
 		}
 		courseScheduleDao.batchUpdate(mergeCourses);
 		for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
 			courseScheduleStudentPayment.setCourseScheduleId(courseMergeInfo.getId());
 		}
 		courseScheduleStudentPaymentDao.batchUpdate(courseScheduleStudentPayments);
+
+		if (insertCourseScheduleModifyLogList.size() > 0) {
+			courseScheduleModifyLogDao.batchInsert(insertCourseScheduleModifyLogList);
+		}
 	}
 }

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

@@ -1246,6 +1246,9 @@
                 <if test="item.teachMode != null">
                     teach_mode_ = #{item.teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 </if>
+                <if test="item.note != null">
+                    note_ = #{item.note},
+                </if>
                 update_time_ = NOW()
             </set>
             WHERE id_ = #{item.id}
@@ -2298,6 +2301,7 @@
     <select id="endFindCourseSchedules" resultMap="CourseScheduleEndDto">
         SELECT
             cs.id_,
+            cs.new_course_id_,
             cs.group_type_,
             cs.music_group_id_,
             cs.class_group_id_,

+ 5 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -216,6 +216,11 @@ public class CourseScheduleController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/courseMerge','system')")
     @PostMapping(value = "/courseMerge",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public HttpResponseResult courseMerge(CourseMergeDto courseMergeInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        courseMergeInfo.setOperatorId(sysUser.getId());
         courseScheduleService.courseMerge(courseMergeInfo);
         return succeed();
     }