|
@@ -145,6 +145,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
return studentPaymentOrderDetailList;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public List<StudentPaymentOrderDetail> findApplyOrderSuccess(String musicGroupId, DealStatusEnum status, Integer deliveryStatus) {
|
|
|
return studentPaymentOrderDetailDao.findApplyOrderSuccess(musicGroupId, status, deliveryStatus);
|
|
@@ -627,7 +628,11 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
|
|
|
public void addOrderDetailTo(StudentPaymentOrder studentPaymentOrder, MusicGroup musicGroup, StudentRegistration studentRegistration) {
|
|
|
//SurplusCourseFee
|
|
|
- List<StudentPaymentOrderDetail> allDetails = this.findByOrderId(studentPaymentOrder.getId());
|
|
|
+ Integer userId = studentPaymentOrder.getUserId();
|
|
|
+ Long orderId = studentPaymentOrder.getId();
|
|
|
+ String musicGroupId = musicGroup.getId();
|
|
|
+ Integer tenantId = studentPaymentOrder.getTenantId();
|
|
|
+ List<StudentPaymentOrderDetail> allDetails = this.findByOrderId(orderId);
|
|
|
BigDecimal courseFee = allDetails.stream().filter(o -> !(o.getType() == MUSICAL)
|
|
|
&& !(o.getType() == VIP)
|
|
|
&& !(o.getType() == PRACTICE)
|
|
@@ -640,7 +645,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
if (studentRegistration.getTemporaryCourseFee() != null) {
|
|
|
- studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
|
|
|
+ studentRegistration.setTemporaryCourseFee(BigDecimal.ZERO);
|
|
|
}
|
|
|
studentRegistration.setPaymentStatus(YES);
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
@@ -652,13 +657,15 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
studentRegistration.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(courseFee));
|
|
|
//添加日志
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
- studentCourseFeeDetail.setTenantId(studentPaymentOrder.getTenantId());
|
|
|
+ studentCourseFeeDetail.setTenantId(tenantId);
|
|
|
studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
|
|
|
studentCourseFeeDetail.setAmount(courseFee);
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee());
|
|
|
studentCourseFeeDetail.setMemo("乐团缴费充值");
|
|
|
- studentCourseFeeDetail.setOperator(studentPaymentOrder.getUserId());
|
|
|
+ studentCourseFeeDetail.setOperator(userId);
|
|
|
studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
|
|
|
+ //记录用户实际课费
|
|
|
+ studentMusicCourseFeeService.addActualPrice(userId,musicGroupId,courseFee);
|
|
|
}
|
|
|
|
|
|
//缴费项目详情
|
|
@@ -705,7 +712,7 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
repair.setStudentInstrumentId(studentInstrumentId);
|
|
|
studentPaymentOrderDetailDao.update(repair);
|
|
|
}
|
|
|
- if(studentPaymentOrder.getType() == OrderTypeEnum.APPLY){
|
|
|
+ if(musicGroup.getCourseViewType() == CourseViewTypeEnum.FREE){
|
|
|
//如果是免费团,那么要处理乐器溢出的课程费用
|
|
|
CourseViewTypeEnum courseViewType = musicGroup.getCourseViewType();
|
|
|
Integer subjectId = studentRegistration.getActualSubjectId();
|
|
@@ -715,6 +722,17 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
BigDecimal musicalFee = musical.getPrice().subtract(chargeType.getFee());
|
|
|
studentMusicCourseFeeService.addExpectPrice(studentRegistration.getUserId(),
|
|
|
musicGroup.getId(),musicalFee);
|
|
|
+ //累加充值金额
|
|
|
+ studentRegistration.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(musicalFee));
|
|
|
+ //添加日志
|
|
|
+ StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
+ studentCourseFeeDetail.setTenantId(tenantId);
|
|
|
+ studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
|
|
|
+ studentCourseFeeDetail.setAmount(musicalFee);
|
|
|
+ studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee());
|
|
|
+ studentCourseFeeDetail.setMemo("免费团,购买乐器赠送课费");
|
|
|
+ studentCourseFeeDetail.setOperator(userId);
|
|
|
+ studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
|
|
|
//设置缴费项目详情乐器和课费
|
|
|
paymentCalenderDetail.setExpectAmount(chargeType.getFee());
|
|
|
paymentCalenderDetail.setActualAmount(musicalFee);
|
|
@@ -733,8 +751,20 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
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);
|
|
|
+ //累加充值金额
|
|
|
+ studentRegistration.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(subtract));
|
|
|
+ //添加日志
|
|
|
+ StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
+ studentCourseFeeDetail.setTenantId(tenantId);
|
|
|
+ studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
|
|
|
+ studentCourseFeeDetail.setAmount(subtract);
|
|
|
+ studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee());
|
|
|
+ studentCourseFeeDetail.setMemo("会员团,购买云教练赠送课费");
|
|
|
+ studentCourseFeeDetail.setOperator(userId);
|
|
|
+ studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
|
|
|
paymentCalenderDetail.setExpectMemberAmount(courseIncome);
|
|
|
- paymentCalenderDetail.setActualAmount(calenderMember.getActualAmount().subtract(courseIncome));
|
|
|
+ paymentCalenderDetail.setActualAmount(subtract);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -743,7 +773,10 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder, cloudTeacherFee);
|
|
|
}
|
|
|
- musicGroupPaymentCalenderDetailService.update(paymentCalenderDetail);
|
|
|
+ if(BigDecimal.ZERO.compareTo(paymentCalenderDetail.getActualAmount()) < 0){
|
|
|
+ musicGroupPaymentCalenderDetailService.update(paymentCalenderDetail);
|
|
|
+ studentMusicCourseFeeService.addActualPrice(userId,musicGroupId,paymentCalenderDetail.getActualAmount());
|
|
|
+ }
|
|
|
studentRegistrationDao.update(studentRegistration);
|
|
|
}
|
|
|
|