소스 검색

feat:1、服务指标

Joburgess 4 년 전
부모
커밋
22e3e7a4e9
1개의 변경된 파일26개의 추가작업 그리고 18개의 파일을 삭제
  1. 26 18
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

+ 26 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5271,6 +5271,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 			if(Objects.isNull(courseMergeInfo.getClassGroupId())&&courseMergeInfo.getId().equals(courseSchedule.getId())){
 				courseMergeInfo.setClassGroupId(courseSchedule.getClassGroupId());
+				courseMergeInfo.setGroupType(courseSchedule.getGroupType());
+				courseMergeInfo.setMusicGroupId(courseSchedule.getMusicGroupId());
 			}
 			courseSchedule.setNote("课程合并");
 		}
@@ -5279,34 +5281,40 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		Set<Integer> allStudentIds = courseScheduleStudentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
 
 		Map<Integer, CourseScheduleStudentPayment> mainStudentCourseMap = courseScheduleStudentPayments.stream().filter(c -> courseMergeInfo.getId().equals(c.getCourseScheduleId())).collect(Collectors.toMap(CourseScheduleStudentPayment::getUserId, c -> c, (c1, c2) -> c1));
+
+		Map<Integer, List<CourseScheduleStudentPayment>> otherStudentCourseMap = courseScheduleStudentPayments.stream().filter(c -> !courseMergeInfo.getId().equals(c.getCourseScheduleId())).collect(Collectors.groupingBy(CourseScheduleStudentPayment::getUserId));
+
+
 		List<CourseScheduleStudentPayment> newPayments = new ArrayList<>();
 		List<CourseScheduleStudentPayment> updatePayments = new ArrayList<>();
-		for (Map.Entry<Integer, CourseScheduleStudentPayment> mainStudentCourseMapEntry : mainStudentCourseMap.entrySet()) {
-			BigDecimal salary = courseScheduleStudentPayments.stream().filter(c -> mainStudentCourseMapEntry.getKey().equals(c.getUserId())).map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-			CourseScheduleStudentPayment updatePayment = mainStudentCourseMapEntry.getValue();
-			updatePayment.setExpectPrice(salary);
-			updatePayments.add(updatePayment);
-		}
 
-		for (CourseScheduleStudentPayment courseScheduleStudentPayment : courseScheduleStudentPayments) {
-			CourseScheduleStudentPayment updatePayment = mainStudentCourseMap.get(courseScheduleStudentPayment.getUserId());
-			if(Objects.nonNull(updatePayment)&&updatePayment.getCourseScheduleId().equals(courseScheduleStudentPayment.getCourseScheduleId())){
-				continue;
-			}
-			if(Objects.nonNull(updatePayment)&&updatePayment.getUserId().equals(courseScheduleStudentPayment.getUserId())){
-
-				courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
-				updatePayments.add(courseScheduleStudentPayment);
+		for (Map.Entry<Integer, List<CourseScheduleStudentPayment>> otherStudentCourseMapEntry : otherStudentCourseMap.entrySet()) {
+			List<CourseScheduleStudentPayment> studentCoursePayments = otherStudentCourseMapEntry.getValue();
+			BigDecimal salary = studentCoursePayments.stream().map(CourseScheduleStudentPayment::getExpectPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+			if(mainStudentCourseMap.containsKey(otherStudentCourseMapEntry.getKey())){
+				CourseScheduleStudentPayment updatePayment = mainStudentCourseMap.get(otherStudentCourseMapEntry.getKey());
+				updatePayment.setExpectPrice(updatePayment.getExpectPrice().add(salary));
+				updatePayments.add(updatePayment);
+
+				for (CourseScheduleStudentPayment studentCoursePayment : studentCoursePayments) {
+					studentCoursePayment.setExpectPrice(BigDecimal.ZERO);
+					updatePayments.add(studentCoursePayment);
+				}
 				continue;
 			}
 			CourseScheduleStudentPayment newPayment = new CourseScheduleStudentPayment();
-			BeanUtils.copyProperties(courseScheduleStudentPayment, newPayment);
+			BeanUtils.copyProperties(studentCoursePayments.get(0), newPayment);
 			newPayment.setCourseScheduleId(courseMergeInfo.getId());
 			newPayment.setClassGroupId(courseMergeInfo.getClassGroupId());
-			courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+			newPayment.setMusicGroupId(courseMergeInfo.getMusicGroupId());
+			newPayment.setGroupType(courseMergeInfo.getGroupType());
+			newPayment.setExpectPrice(salary);
 			newPayment.setId(null);
 			newPayments.add(newPayment);
-			updatePayments.add(courseScheduleStudentPayment);
+			for (CourseScheduleStudentPayment studentCoursePayment : studentCoursePayments) {
+				studentCoursePayment.setExpectPrice(BigDecimal.ZERO);
+				updatePayments.add(studentCoursePayment);
+			}
 		}
 
 		List<CourseSchedule> courseSchedules=new ArrayList<>();