|
@@ -2114,9 +2114,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
if (returnFeeDto.getIsReturnMaintenanceFee()) {
|
|
|
returnTotalFee = returnTotalFee.add(returnFeeDto.getMaintenanceFee());
|
|
|
}
|
|
|
- if (returnFeeDto.getIsReturnMemberFee()) {
|
|
|
+// if (returnFeeDto.getIsReturnMemberFee()) {
|
|
|
// returnTotalFee = returnTotalFee.add(returnFeeDto.getMemberFee());
|
|
|
- }
|
|
|
+// }
|
|
|
if (returnFeeDto.getIsReturnMusicalFee()) {
|
|
|
returnTotalFee = returnTotalFee.add(returnFeeDto.getMusicalFee());
|
|
|
}
|
|
@@ -2198,7 +2198,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
List<StudentPaymentOrder> studentPaymentOrderList = new ArrayList<StudentPaymentOrder>();
|
|
|
|
|
|
if (studentRegistration.getMusicGroupPaymentCalenderId() == null) {
|
|
|
- if (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.NORMAL || (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.APPLY && studentRegistration.getPaymentStatus() == PaymentStatusEnum.YES)) {
|
|
|
+ if (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.NORMAL || (currentStudentMusicGroupStatus == StudentMusicGroupStatusEnum.APPLY
|
|
|
+ && studentRegistration.getPaymentStatus() == PaymentStatusEnum.YES)) {
|
|
|
studentPaymentOrderList = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
|
|
|
}
|
|
|
|
|
@@ -2244,27 +2245,29 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
if (studentPaymentOrderList.size() > 0) {
|
|
|
|
|
|
List<Long> paymentOrderIdList = studentPaymentOrderList.stream().map(t -> t.getId()).collect(Collectors.toList());
|
|
|
-
|
|
|
+ //获取最近的一笔报名订单编号
|
|
|
Long minPaymentOrderId = Collections.min(paymentOrderIdList);
|
|
|
-
|
|
|
List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.getWithIds(paymentOrderIdList);
|
|
|
|
|
|
SubjectChange studentLastChange = null;
|
|
|
+ //如果退乐器和辅件,那么查找最近的一笔声部更换订单
|
|
|
if (returnFeeDto.getIsReturnMusicalFee() || returnFeeDto.getIsReturnAccessoriesFee()) {
|
|
|
studentLastChange = subjectChangeDao.getStudentLastChange(userId, musicGroupId);
|
|
|
}
|
|
|
|
|
|
+ //如果声部更换过
|
|
|
if (studentLastChange != null && (studentLastChange.getOriginalOrderId() == null || minPaymentOrderId <= studentLastChange.getOriginalOrderId())) {
|
|
|
+ //退乐器的同时,退乐保
|
|
|
if (returnFeeDto.getIsReturnMusicalFee()) {
|
|
|
+ //乐器金额是否正确
|
|
|
amount = amount.add(studentLastChange.getChangeMusicalPrice());
|
|
|
-
|
|
|
StudentInstrument studentMaintenance = studentInstrumentDao.getByOrderId(studentLastChange.getOrderId().longValue());
|
|
|
if (studentMaintenance != null) {
|
|
|
studentMaintenance.setDelFlag(1);
|
|
|
studentInstrumentDao.update(studentMaintenance);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ //退辅件
|
|
|
if (returnFeeDto.getIsReturnAccessoriesFee()) {
|
|
|
amount = amount.add(studentLastChange.getChangeAccessoriesPrice());
|
|
|
}
|
|
@@ -2292,14 +2295,21 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
|
|
|
//退乐保费用
|
|
|
if (returnFeeDto.getIsReturnMaintenanceFee()) {
|
|
|
- //是否有乐保
|
|
|
- //乐保是否退过
|
|
|
- //金额是否正确
|
|
|
+ //是否有乐保、乐保是否退过、金额是否正确
|
|
|
StudentInstrument studentMaintenance = studentInstrumentDao.getStudentMaintenance(userId, musicGroupId);
|
|
|
if (returnFeeDto.getMaintenanceFee().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
if (studentMaintenance == null) {
|
|
|
throw new BizException("学生没有有效期内的乐保,不能退乐保费用");
|
|
|
}
|
|
|
+ //金额是否正确
|
|
|
+ List<StudentPaymentOrderDetail> orderDetails = orderDetailList.stream().filter(e -> e.getType() == MAINTENANCE).collect(Collectors.toList());
|
|
|
+ BigDecimal maintenanceFee = BigDecimal.ZERO;
|
|
|
+ if(orderDetails != null && orderDetails.size() > 0){
|
|
|
+ maintenanceFee = orderDetails.stream().map(e -> e.getPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ }
|
|
|
+ if(returnFeeDto.getMaintenanceFee().compareTo(maintenanceFee) > 0){
|
|
|
+ throw new BizException("乐保退费金额异常");
|
|
|
+ }
|
|
|
}
|
|
|
amount = amount.add(returnFeeDto.getMaintenanceFee());
|
|
|
if (returnFeeDto.getMaintenanceFee().compareTo(BigDecimal.ZERO) > 0 && studentMaintenance != null) {
|