yonge 5 лет назад
Родитель
Сommit
567346b2c3

+ 37 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1755,18 +1755,43 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         Date date = new Date();
         List<Integer> months = subFeeSettingDto.getMonths();
-        //删除乐团相关付费周期
-        musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
-        if(months != null && months.size() > 0){
-            //批量插入
-            musicGroupPaymentCalenderDao.batchAdd(months,musicGroupId);
-            Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
-            if(num > 0){
-                throw new BizException("缴费周期更新失败,当前乐团有未缴费的学员");
-            }
-            //修改学员下次缴费日期
-            musicGroupStudentFeeDao.updateNextPaymentDate(musicGroupId,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId));
-        }
+        
+        //判断缴费日历是否修改
+		boolean isModifiedOfCalender = false;
+
+		List<MusicGroupPaymentCalender> calenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
+		if (months.size() == calenderList.size()) {
+			for (MusicGroupPaymentCalender cal : calenderList) {
+				if (!months.contains(cal.getPaymentMonth())) {
+					isModifiedOfCalender = true;
+					break;
+				}
+			}
+		} else {
+			isModifiedOfCalender = true;
+		}
+
+		if (isModifiedOfCalender) {
+			
+			Integer num = musicGroupStudentFeeDao.countStudentNoPayNum(musicGroupId);
+			if (num > 0) {
+				throw new BizException("缴费周期更新失败,当前乐团有未缴费的学员");
+			}
+			
+			// 删除乐团相关付费周期
+			musicGroupPaymentCalenderDao.delByGroupId(musicGroupId);
+			musicGroupStudentFeeDao.deleteByMusicGroupId(musicGroupId);
+			if (months != null && months.size() > 0) {
+				// 批量插入
+				musicGroupPaymentCalenderDao.batchAdd(months, musicGroupId);
+				
+				//生成学员费用表
+		        List<MusicGroupStudentFee> musicGroupStudentFees = musicGroupStudentFeeDao.initMusicGroupStudentFee(musicGroupId);
+		        if(musicGroupStudentFees != null && musicGroupStudentFees.size() > 0){
+		            musicGroupStudentFeeDao.batchInsert(musicGroupStudentFees,musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId),"PAID_COMPLETED");
+		        }
+			}
+		}
         musicGroupDao.update(musicGroup);
         //修改课程里面的教学点
         if(!musicGroup.getSchoolId().equals(musicGroup.getSchoolId())){