Joburgess 4 лет назад
Родитель
Сommit
f0c7f9cb07

+ 21 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -529,6 +529,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("学员信息错误");
 		}
 		Map<Integer, SimpleUserDto> idUserInfoMap = studentSimpleInfos.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, s -> s, (s1, s2) -> s1));
+		Map<Integer, BigDecimal> studentTheoryPriceMap = new HashMap<>();
 		for (Student student : studentDetail) {
 			if(StringUtils.isEmpty(student.getActivityCourseDetail())){
 				SimpleUserDto studentInfo = idUserInfoMap.get(student.getUserId());
@@ -542,6 +543,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 			courseDetail.fluentPut(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType().getCode(), surplusTimes-1);
 			student.setActivityCourseDetail(courseDetail.toJSONString());
+			if(ActivityCourseType.MUSIC_THEORY.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
+				studentTheoryPriceMap.put(student.getUserId(), courseDetail.getBigDecimal("music_theory_price"));
+			}
 		}
 		studentDao.batchUpdate(studentDetail);
 
@@ -817,21 +821,27 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		userRoleMap.put(vipGroupApplyBaseInfoDto.getUserId(),"指导老师");
 		//生成学生单课缴费信息
 		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
-			if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
+			if(ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())
+				||ActivityCourseType.MUSIC_THEORY.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
 				List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
-				for (Integer studentId : studentIdList) {
-					for (CourseSchedule courseSchedule : courseSchedules) {
-						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
-						courseScheduleStudentPayment.setUserId(studentId);
-						courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
-						courseScheduleStudentPayment.setMusicGroupId(courseSchedule.getMusicGroupId());
-						courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
-						courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
+				BigDecimal price = studentTheoryPriceMap.get(classGroupStudent.getUserId());
+				BigDecimal coursePrice = price.divide(new BigDecimal(courseSchedules.size()), CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+				for (CourseSchedule courseSchedule : courseSchedules) {
+					CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+					courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
+					courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
+					courseScheduleStudentPayment.setMusicGroupId(courseSchedule.getMusicGroupId());
+					courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+					courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
+					if(ActivityCourseType.MUSIC_THEORY.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
+						courseScheduleStudentPayment.setExpectPrice(coursePrice);
+						courseScheduleStudentPayment.setOriginalPrice(coursePrice);
+					}else{
 						courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
 						courseScheduleStudentPayment.setOriginalPrice(BigDecimal.ZERO);
-						courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
-						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 					}
+					courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
+					courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 				}
 				courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 			}else{