Forráskód Böngészése

feat:合并课程还原

Joburgess 4 éve
szülő
commit
a0bfedfb4d

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

@@ -636,5 +636,13 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 */
 	void courseMerge(CourseMergeDto courseMergeInfo);
 
-	void mergeCourseSplit(Long mainCourseId);
+	/**
+	 * @describe 合并课程还原
+	 * @author Joburgess
+	 * @date 2021/1/21 0021
+	 * @param mainCourseId:
+	 * @param operatorId:
+	 * @return void
+	 */
+	void mergeCourseSplit(Long mainCourseId, Integer operatorId);
 }

+ 16 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5357,7 +5357,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 		courseScheduleDao.batchUpdate(mergeCourses);
 
-		courseScheduleStudentPaymentDao.batchUpdate(updatePayments);
+		if(!CollectionUtils.isEmpty(updatePayments)){
+			courseScheduleStudentPaymentDao.batchUpdate(updatePayments);
+		}
 		if(!CollectionUtils.isEmpty(newPayments))
 			courseScheduleStudentPaymentDao.batchInsert(newPayments);
 
@@ -5370,7 +5372,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public void mergeCourseSplit(Long mainCourseId) {
+	public void mergeCourseSplit(Long mainCourseId, Integer operatorId) {
 		List<CourseSchedule> courseSchedules = courseScheduleDao.findByMainMergeCourse(mainCourseId);
 		if(CollectionUtils.isEmpty(courseSchedules)){
 			throw new BizException("未找到相关合并课程信息");
@@ -5382,8 +5384,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			throw new BizException("已结束的主课暂不支持此操作");
 		}
 
-		courseScheduleDao.cleanCoursMergeId(courseIds);
-
 		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByMainMergedCourse(mainCourseId);
 		Map<Integer, CourseScheduleStudentPayment> studentMainCoursePaymentMap = courseScheduleStudentPayments.stream().filter(c -> c.getCourseScheduleId().equals(mainCourseId)).collect(Collectors.toMap(CourseScheduleStudentPayment::getUserId, c -> c, (c1, c2) -> c1));
 
@@ -5392,9 +5392,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<Integer> deletePaymentIds = new ArrayList<>();
 		List<CourseScheduleStudentPayment> updatePayments = new ArrayList<>();
 
+		otherCoursePayments.sort(Comparator.comparing(CourseScheduleStudentPayment::getCreateTime).reversed());
 		for (CourseScheduleStudentPayment otherCoursePayment : otherCoursePayments) {
 			CourseScheduleStudentPayment mainCoursePayment = studentMainCoursePaymentMap.get(otherCoursePayment.getUserId());
-			if(Objects.nonNull(mainCoursePayment.getBeMerged())&&mainCoursePayment.getBeMerged()){
+			if(Objects.isNull(mainCoursePayment.getBeMerged())){
+				throw new BizException("当前课程暂不支持此操作");
+			}
+			if(mainCoursePayment.getBeMerged()){
 				deletePaymentIds.add(mainCoursePayment.getId().intValue());
 				continue;
 			}
@@ -5413,11 +5417,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseScheduleModifyLog.setPreviousCourseSchedule(JsonUtil.toJSONString(courseSchedule));
 
 			//课程信息变更
-			courseSchedule.setNewCourseId(courseSchedule.getId());
+			courseSchedule.setNote("合并课程还原");
 
 			courseScheduleModifyLog.setCurrentCourseSchedule(JsonUtil.toJSONString(courseSchedule));
-//			courseScheduleModifyLog.setOperatorId(courseMergeInfo.getOperatorId());
+			courseScheduleModifyLog.setOperatorId(operatorId);
 			insertCourseScheduleModifyLogList.add(courseScheduleModifyLog);
 		}
+		courseScheduleDao.batchUpdate(courseSchedules);
+		courseScheduleDao.cleanCoursMergeId(courseIds);
+		if (insertCourseScheduleModifyLogList.size() > 0) {
+			courseScheduleModifyLogDao.batchInsert(insertCourseScheduleModifyLogList);
+		}
     }
 }

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

@@ -3387,10 +3387,10 @@
         SELECT COUNT(id_) FROM course_schedule WHERE new_course_id_=#{courseId}
     </select>
 
-    <select id="findByMainMergeCourse" resultType="int">
+    <select id="findByMainMergeCourse" resultMap="CourseSchedule">
         SELECT
-        <include refid="resultSql" />
-        FROM course_schedule WHERE new_course_id_=#{mainMergeCourseId}
+        <include refid="resultSql"/>
+        FROM course_schedule cs WHERE new_course_id_=#{mainMergeCourseId}
     </select>
 
     <select id="querySubCourseNumMap" resultType="java.util.Map">

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

@@ -231,6 +231,18 @@ public class CourseScheduleController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "合并课程还原")
+    @PreAuthorize("@pcs.hasPermissions('courseSchedule/mergeCourseSplit','system')")
+    @PostMapping(value = "/mergeCourseSplit",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public HttpResponseResult mergeCourseSplit(Long mainCourseId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        courseScheduleService.mergeCourseSplit(mainCourseId, sysUser.getId());
+        return succeed();
+    }
+
     @ApiOperation(value = "根据班级列表调整课程")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/classGroupTeacherAdjust','system')")
     @PostMapping(value = "/classGroupTeacherAdjust")