|
@@ -727,9 +727,11 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
studentRegistration.setHasCloudTeacher(1);
|
|
|
//如果是报名订单,要处理云教练费用、以及溢出课费
|
|
|
}
|
|
|
+ List<StudentPaymentOrderDetail> memberDetailList = allDetails.stream().filter(o -> o.getType() == CLOUD_TEACHER).collect(Collectors.toList());
|
|
|
+ List<Long> calenderMemberIds = memberDetailList.stream().map(StudentPaymentOrderDetail::getStudentInstrumentId).collect(Collectors.toList());
|
|
|
+ List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByIds(calenderMemberIds);
|
|
|
if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
|
|
|
//获取云教练溢出费用
|
|
|
- List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByCalenderId(paymentCalenderDetail.getMusicGroupPaymentCalenderId());
|
|
|
if (CollectionUtils.isNotEmpty(calenderMembers)) {
|
|
|
for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
|
|
|
BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
|
|
@@ -751,10 +753,10 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal cloudTeacherFee = allDetails.stream().filter(o -> o.getType() == CLOUD_TEACHER)
|
|
|
+ BigDecimal cloudTeacherFee = memberDetailList.stream()
|
|
|
.map(o -> o.getPrice().subtract(o.getRemitFee() == null ? BigDecimal.ZERO : o.getRemitFee()))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder, cloudTeacherFee);
|
|
|
+ cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder, cloudTeacherFee,calenderMembers);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -830,34 +832,34 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
studentRegistration.setHasCloudTeacher(1);
|
|
|
//如果是报名订单,要处理云教练费用、以及溢出课费
|
|
|
}
|
|
|
+ List<StudentPaymentOrderDetail> memberDetailList = allDetails.stream().filter(o -> o.getType() == CLOUD_TEACHER).collect(Collectors.toList());
|
|
|
+ List<Long> calenderMemberIds = memberDetailList.stream().map(StudentPaymentOrderDetail::getStudentInstrumentId).collect(Collectors.toList());
|
|
|
+ List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByIds(calenderMemberIds);
|
|
|
if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
|
|
|
//获取云教练溢出费用
|
|
|
- List<MusicGroupPaymentCalenderMember> calenderMembers = musicGroupPaymentCalenderMemberDao.findByCalenderId(paymentCalenderDetail.getMusicGroupPaymentCalenderId());
|
|
|
- if (CollectionUtils.isNotEmpty(calenderMembers)) {
|
|
|
- for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
|
|
|
- BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
|
|
|
- calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
|
|
|
- if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
|
|
|
- BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
|
|
|
- //累加充值金额
|
|
|
- studentRegistrationDao.updateCourseFee(studentRegistration.getId(),subtract);
|
|
|
- //添加日志
|
|
|
- StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
- studentCourseFeeDetail.setTenantId(tenantId);
|
|
|
- studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
|
|
|
- studentCourseFeeDetail.setAmount(subtract);
|
|
|
- studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
|
|
|
- studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
|
|
|
- studentCourseFeeDetail.setOperator(userId);
|
|
|
- studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
|
|
|
- }
|
|
|
+ for (MusicGroupPaymentCalenderMember calenderMember : calenderMembers) {
|
|
|
+ BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(),
|
|
|
+ calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome);
|
|
|
+ if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){
|
|
|
+ BigDecimal subtract = calenderMember.getActualAmount().subtract(courseIncome);
|
|
|
+ //累加充值金额
|
|
|
+ studentRegistrationDao.updateCourseFee(studentRegistration.getId(),subtract);
|
|
|
+ //添加日志
|
|
|
+ StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
+ studentCourseFeeDetail.setTenantId(tenantId);
|
|
|
+ studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
|
|
|
+ studentCourseFeeDetail.setAmount(subtract);
|
|
|
+ studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
|
|
|
+ studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
|
|
|
+ studentCourseFeeDetail.setOperator(userId);
|
|
|
+ studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal cloudTeacherFee = allDetails.stream().filter(o -> o.getType() == CLOUD_TEACHER)
|
|
|
+ BigDecimal cloudTeacherFee = memberDetailList.stream()
|
|
|
.map(o -> o.getPrice().subtract(o.getRemitFee() == null ? BigDecimal.ZERO : o.getRemitFee()))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder, cloudTeacherFee);
|
|
|
+ cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder, cloudTeacherFee,calenderMembers);
|
|
|
}
|
|
|
}
|
|
|
|