|
@@ -56,6 +56,9 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
|
|
|
|
|
|
@Autowired
|
|
|
private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao;
|
|
|
|
|
|
@Autowired
|
|
|
private MusicGroupDao musicGroupDao;
|
|
@@ -106,6 +109,44 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
|
|
|
// throw new BizException("修改失败:存在未开启缴费的学员");
|
|
|
// }
|
|
|
// }
|
|
|
+ if(expectAmount.doubleValue() > 0){
|
|
|
+ BigDecimal totalAmount = calender.getPaymentAmount().add(calender.getMemberPaymentAmount());
|
|
|
+ BigDecimal subExpectAmount = expectAmount;
|
|
|
+ if(calender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.SPAN_GROUP_CLASS_ADJUST){
|
|
|
+ List<MusicGroupPaymentCalenderStudentDetail> studentDetails = musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(calender.getBatchNo(), calenderDetails.get(0).getUserId());
|
|
|
+ if(studentDetails.size() == 0){
|
|
|
+ throw new BizException("修改失败:缴费项目数据异常");
|
|
|
+ }
|
|
|
+ List<Integer> studentIds = calenderDetails.stream().map(e -> e.getUserId()).collect(Collectors.toList());
|
|
|
+ for (int i = 0; i < studentDetails.size(); i++) {
|
|
|
+ MusicGroupPaymentCalenderStudentDetail studentDetail = studentDetails.get(i);
|
|
|
+ if(i == studentDetails.size() - 1){
|
|
|
+ musicGroupPaymentCalenderStudentDetailDao.updateByCourseType(studentDetail.getCourseType(),calender.getBatchNo(),studentIds,subExpectAmount);
|
|
|
+ }else {
|
|
|
+ BigDecimal divide = studentDetail.getCourseCurrentPrice().divide(totalAmount, BigDecimal.ROUND_DOWN);
|
|
|
+ BigDecimal courseAmount = divide.multiply(expectAmount).setScale(0, BigDecimal.ROUND_DOWN);
|
|
|
+ subExpectAmount = expectAmount.subtract(courseAmount);
|
|
|
+ musicGroupPaymentCalenderStudentDetailDao.updateByCourseType(studentDetail.getCourseType(),calender.getBatchNo(),studentIds,courseAmount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(calender.getId());
|
|
|
+ if(courseSettingsList.size() == 0){
|
|
|
+ throw new BizException("修改失败:缴费项目数据异常");
|
|
|
+ }
|
|
|
+ for (int i = 0; i < courseSettingsList.size(); i++) {
|
|
|
+ MusicGroupPaymentCalenderCourseSettings courseSettings = courseSettingsList.get(i);
|
|
|
+ if(i == courseSettingsList.size() - 1){
|
|
|
+ musicGroupPaymentStudentCourseDetailDao.updateByCourseType(courseSettings.getCourseType().getCode(),ids,subExpectAmount);
|
|
|
+ }else {
|
|
|
+ BigDecimal divide = courseSettings.getCourseCurrentPrice().divide(totalAmount, BigDecimal.ROUND_DOWN);
|
|
|
+ BigDecimal courseAmount = divide.multiply(expectAmount).setScale(0, BigDecimal.ROUND_DOWN);
|
|
|
+ subExpectAmount = expectAmount.subtract(courseAmount);
|
|
|
+ musicGroupPaymentStudentCourseDetailDao.updateByCourseType(courseSettings.getCourseType().getCode(),ids,courseAmount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
//为了解决学员欠费数量的问题,只要学员没有缴费就可以修改金额
|
|
|
Set<Integer> studentIds = new HashSet<>();
|
|
|
for (MusicGroupPaymentCalenderDetail e : calenderDetails) {
|
|
@@ -115,6 +156,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
|
|
|
e.setUpdateTime(date);
|
|
|
e.setExpectAmount(expectAmount);
|
|
|
e.setExpectMemberAmount(expectMemberAmount);
|
|
|
+
|
|
|
if(expectAmount.doubleValue() > 0 || expectMemberAmount.doubleValue() > 0){
|
|
|
if((e.getOpen() != null && e.getOpen() == 1) || calender.getStatus() == PaymentCalenderStatusEnum.OPEN){
|
|
|
studentIds.add(e.getUserId());
|