Просмотр исходного кода

1、课程调整时排除自动补签记录
2、删除请假时班级学生状态更新代码
3、小课过期课程调整生成后加入学生缴费信息
4、vip课点名添加开课前时间限制
5、学生端可购买小课获取条件调整
6、学员请假课程调整限制
7、点名列表兼容sys_user无数据
8、兼容无教学点

Joburgess 5 лет назад
Родитель
Сommit
f5115b0a1b

+ 25 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -224,48 +224,43 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	@Transactional(rollbackFor = Exception.class)
 	public void updateVipGiveCourse(Long vipGroupId) {
 		List<VipGroupGiveCourseSortDto> vipGroupSortCourseByGroup = courseScheduleStudentPaymentDao.findVipGroupSortCourseByGroup(vipGroupId.toString());
-		Map<BigDecimal, Long> expectPriceCountMap = vipGroupSortCourseByGroup.stream()
-				.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getExpectPrice, Collectors.counting()));
-		BigDecimal zero = new BigDecimal("0.00");
-		Long zeroPriceNum = expectPriceCountMap.get(zero);
-		if(Objects.isNull(zeroPriceNum)||zeroPriceNum<=0){
-			return;
-		}
+		Map<Integer, List<VipGroupGiveCourseSortDto>> userCourseMap = vipGroupSortCourseByGroup.stream().collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getUserId));
 
 		List<CourseScheduleStudentPayment> needUpdatePayments=new ArrayList<>();
-
-		List<VipGroupGiveCourseSortDto> zeroExpectPricePayments = vipGroupSortCourseByGroup.stream()
-				.filter(vipGroupGiveCourseSortDto -> vipGroupGiveCourseSortDto.getExpectPrice().compareTo(zero)==0)
-				.collect(Collectors.toList());
-		Map<Long, List<VipGroupGiveCourseSortDto>> courseIdPaymentMap = zeroExpectPricePayments.stream()
-				.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getId));
-		vipGroupSortCourseByGroup.sort(Comparator.comparing(VipGroupGiveCourseSortDto::getCourseStartTime).reversed());
-		for (int i=0;i<vipGroupSortCourseByGroup.size();i++) {
-			if(i>zeroExpectPricePayments.size()-1){
+		for (Map.Entry<Integer, List<VipGroupGiveCourseSortDto>> integerListEntry : userCourseMap.entrySet()) {
+			List<VipGroupGiveCourseSortDto> courses = integerListEntry.getValue();
+			Map<BigDecimal, Long> expectPriceCountMap = courses.stream()
+					.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getExpectPrice, Collectors.counting()));
+			BigDecimal zero = new BigDecimal("0.00");
+			Long zeroPriceNum = expectPriceCountMap.get(zero);
+			if(Objects.isNull(zeroPriceNum)||zeroPriceNum<=0){
 				return;
 			}
 
-			VipGroupGiveCourseSortDto vipGroupGiveCourseSortDto=vipGroupSortCourseByGroup.get(i);
+			List<VipGroupGiveCourseSortDto> zeroExpectPricePayments = courses.stream()
+					.filter(vipGroupGiveCourseSortDto -> vipGroupGiveCourseSortDto.getExpectPrice().compareTo(zero)==0)
+					.collect(Collectors.toList());
 
-			int j=0;
-			for (Map.Entry<Long, List<VipGroupGiveCourseSortDto>> longListEntry : courseIdPaymentMap.entrySet()) {
-				if(j>i){
+			courses.sort(Comparator.comparing(VipGroupGiveCourseSortDto::getCourseStartTime).reversed());
+			for (int i=0;i<courses.size();i++) {
+				if(i>zeroExpectPricePayments.size()-1){
 					break;
 				}
-				j++;
 
-				for (VipGroupGiveCourseSortDto groupGiveCourseSortDto : longListEntry.getValue()) {
-					if(!vipGroupGiveCourseSortDto.getId().equals(groupGiveCourseSortDto.getId())
-							&&!vipGroupGiveCourseSortDto.getTeachMode().equals(groupGiveCourseSortDto.getTeachMode())){
-						throw new BizException("不支持将不同教学形式的课程调整的赠送课时后");
-					}
-					if(!vipGroupGiveCourseSortDto.getId().equals(groupGiveCourseSortDto.getId())){
-						needUpdatePayments.add(new CourseScheduleStudentPayment(vipGroupGiveCourseSortDto.getId(),groupGiveCourseSortDto.getCourseScheduleId()));
-						needUpdatePayments.add(new CourseScheduleStudentPayment(groupGiveCourseSortDto.getId(),vipGroupGiveCourseSortDto.getCourseScheduleId()));
-					}
+				VipGroupGiveCourseSortDto vipGroupGiveCourseSortDto=courses.get(i);
+
+				if(!vipGroupGiveCourseSortDto.getId().equals(zeroExpectPricePayments.get(i).getId())
+						&&!vipGroupGiveCourseSortDto.getTeachMode().equals(zeroExpectPricePayments.get(i).getTeachMode())){
+					throw new BizException("不支持将不同教学形式的课程调整的赠送课时后");
+				}
+
+				if(!vipGroupGiveCourseSortDto.getId().equals(zeroExpectPricePayments.get(i).getId())){
+					needUpdatePayments.add(new CourseScheduleStudentPayment(vipGroupGiveCourseSortDto.getId(),zeroExpectPricePayments.get(i).getCourseScheduleId()));
+					needUpdatePayments.add(new CourseScheduleStudentPayment(zeroExpectPricePayments.get(i).getId(),vipGroupGiveCourseSortDto.getCourseScheduleId()));
 				}
 			}
 		}
+
 		if(!CollectionUtils.isEmpty(needUpdatePayments)){
 			courseScheduleStudentPaymentDao.batchUpdate(needUpdatePayments);
 		}