|  | @@ -38,6 +38,9 @@ import java.util.*;
 | 
											
												
													
														|  |  import java.util.Map.Entry;
 |  |  import java.util.Map.Entry;
 | 
											
												
													
														|  |  import java.util.stream.Collectors;
 |  |  import java.util.stream.Collectors;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
 | 
											
												
													
														|  | 
 |  | +import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_RENEW;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  @Service
 |  |  @Service
 | 
											
												
													
														|  |  public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
 |  |  public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long, MusicGroupPaymentCalender> implements MusicGroupPaymentCalenderService {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -95,7 +98,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  		musicGroupPaymentCalender.setOperator(sysUser.getId());
 |  |  		musicGroupPaymentCalender.setOperator(sysUser.getId());
 | 
											
												
													
														|  |  		musicGroupPaymentCalender.setCreateTime(date);
 |  |  		musicGroupPaymentCalender.setCreateTime(date);
 | 
											
												
													
														|  |  		musicGroupPaymentCalender.setUpdateTime(date);
 |  |  		musicGroupPaymentCalender.setUpdateTime(date);
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  | 
 |  | +		musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.NO);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  		if (musicGroupPaymentCalender.getDeadlinePaymentDate() == null && musicGroupPaymentCalender.getPayUserType() == PayUserType.STUDENT) {
 |  |  		if (musicGroupPaymentCalender.getDeadlinePaymentDate() == null && musicGroupPaymentCalender.getPayUserType() == PayUserType.STUDENT) {
 | 
											
												
													
														|  |  			musicGroupPaymentCalender.setDeadlinePaymentDate(DateUtil.addDays(musicGroupPaymentCalender.getStartPaymentDate(), 3));
 |  |  			musicGroupPaymentCalender.setDeadlinePaymentDate(DateUtil.addDays(musicGroupPaymentCalender.getStartPaymentDate(), 3));
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
										
											
												
													
														|  | @@ -104,30 +108,40 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  		if (count > 0) {
 |  |  		if (count > 0) {
 | 
											
												
													
														|  |  			throw new BizException("缴费有效期存在冲突,请修改缴费有效期");
 |  |  			throw new BizException("缴费有效期存在冲突,请修改缴费有效期");
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  |  		//获取设置的课程
 |  |  		//获取设置的课程
 | 
											
												
													
														|  |  		List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList = musicGroupPaymentCalender.getMusicGroupPaymentCalenderCourseSettingsList();
 |  |  		List<MusicGroupPaymentCalenderCourseSettings> musicGroupPaymentCalenderCourseSettingsList = musicGroupPaymentCalender.getMusicGroupPaymentCalenderCourseSettingsList();
 | 
											
												
													
														|  |  		if(musicGroupPaymentCalenderCourseSettingsList == null){
 |  |  		if(musicGroupPaymentCalenderCourseSettingsList == null){
 | 
											
												
													
														|  |  			musicGroupPaymentCalenderCourseSettingsList = new ArrayList<>();
 |  |  			musicGroupPaymentCalenderCourseSettingsList = new ArrayList<>();
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  | -		//查询默认课程费用
 |  | 
 | 
											
												
													
														|  | -		Integer musicGroupOrganizationCourseSettingId = musicGroupPaymentCalender.getMusicGroupOrganizationCourseSettingId();
 |  | 
 | 
											
												
													
														|  | -		Map<CourseScheduleType, BigDecimal> defaultCoursePrice = musicGroupOrganizationCourseSettingsDetailDao.queryByMusicGroupOrganizationCourseSettingsId(musicGroupOrganizationCourseSettingId).stream().collect(Collectors.toMap(MusicGroupOrganizationCourseSettingsDetail :: getCourseType, MusicGroupOrganizationCourseSettingsDetail :: getCourseCurrentPrice));
 |  | 
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  |  		//当前缴费的课程费用
 |  |  		//当前缴费的课程费用
 | 
											
												
													
														|  |  		Map<CourseScheduleType,BigDecimal> currentCoursePrice = musicGroupPaymentCalenderCourseSettingsList.stream().
 |  |  		Map<CourseScheduleType,BigDecimal> currentCoursePrice = musicGroupPaymentCalenderCourseSettingsList.stream().
 | 
											
												
													
														|  |  				collect(Collectors.toMap(MusicGroupPaymentCalenderCourseSettings :: getCourseType, MusicGroupPaymentCalenderCourseSettings :: getCourseCurrentPrice));
 |  |  				collect(Collectors.toMap(MusicGroupPaymentCalenderCourseSettings :: getCourseType, MusicGroupPaymentCalenderCourseSettings :: getCourseCurrentPrice));
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  | -		BigDecimal totalPrice = new BigDecimal(0);
 |  | 
 | 
											
												
													
														|  | -		//相同类型的课程如果修改了课程费用,需要走审批
 |  | 
 | 
											
												
													
														|  | -		for(Entry<CourseScheduleType, BigDecimal> entry : currentCoursePrice.entrySet()){
 |  | 
 | 
											
												
													
														|  | -			if(defaultCoursePrice.get(entry.getKey()).compareTo(entry.getValue()) != 0){
 |  | 
 | 
											
												
													
														|  | -				musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.AUDITING);
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		if(musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY || musicGroupPaymentCalender.getPaymentType() == MUSIC_RENEW){
 | 
											
												
													
														|  | 
 |  | +			//查询默认课程费用
 | 
											
												
													
														|  | 
 |  | +			Integer musicGroupOrganizationCourseSettingId = musicGroupPaymentCalender.getMusicGroupOrganizationCourseSettingId();
 | 
											
												
													
														|  | 
 |  | +			Map<CourseScheduleType, BigDecimal> defaultCoursePrice = musicGroupOrganizationCourseSettingsDetailDao.queryByMusicGroupOrganizationCourseSettingsId(musicGroupOrganizationCourseSettingId).stream().
 | 
											
												
													
														|  | 
 |  | +					collect(Collectors.toMap(MusicGroupOrganizationCourseSettingsDetail :: getCourseType, MusicGroupOrganizationCourseSettingsDetail :: getCourseCurrentPrice));
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			//相同类型的课程如果修改了课程费用,需要走审批
 | 
											
												
													
														|  | 
 |  | +			for(Entry<CourseScheduleType, BigDecimal> entry : currentCoursePrice.entrySet()){
 | 
											
												
													
														|  | 
 |  | +				if(defaultCoursePrice.get(entry.getKey()).compareTo(entry.getValue()) != 0){
 | 
											
												
													
														|  | 
 |  | +					musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.AUDITING);
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			totalPrice.add(entry.getValue());
 |  | 
 | 
											
												
													
														|  | 
 |  | +			for(MusicGroupPaymentCalenderCourseSettings musicGroupPaymentCalenderCourseSettings : musicGroupPaymentCalenderCourseSettingsList){
 | 
											
												
													
														|  | 
 |  | +				musicGroupPaymentCalenderCourseSettings.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 | 
											
												
													
														|  | 
 |  | +				musicGroupPaymentCalenderCourseSettings.setCreateTime(date);
 | 
											
												
													
														|  | 
 |  | +				musicGroupPaymentCalenderCourseSettings.setUpdateTime(date);
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			if(musicGroupPaymentCalenderCourseSettingsList.size() > 0){
 | 
											
												
													
														|  | 
 |  | +				musicGroupPaymentCalenderCourseSettingsDao.batchInsert(musicGroupPaymentCalenderCourseSettingsList);
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		}else {
 | 
											
												
													
														|  | 
 |  | +			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.AUDITING);
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  		if (musicGroupPaymentCalender.getStatus() != PaymentCalenderStatusEnum.AUDITING) {
 |  |  		if (musicGroupPaymentCalender.getStatus() != PaymentCalenderStatusEnum.AUDITING) {
 | 
											
												
													
														|  |  			if (date.after(musicGroupPaymentCalender.getDeadlinePaymentDate())) {
 |  |  			if (date.after(musicGroupPaymentCalender.getDeadlinePaymentDate())) {
 | 
											
												
													
														|  |  				musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OVER);
 |  |  				musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.OVER);
 | 
											
										
											
												
													
														|  | @@ -138,7 +152,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  			
 |  |  			
 | 
											
												
													
														|  |  			//如果是报名,需要修改乐团状态
 |  |  			//如果是报名,需要修改乐团状态
 | 
											
												
													
														|  | -			if (musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			if (musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY) {
 | 
											
												
													
														|  |  				if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT){
 |  |  				if(musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT){
 | 
											
												
													
														|  |  					throw new BizException("创建失败:缴费项目类型不匹配");
 |  |  					throw new BizException("创建失败:缴费项目类型不匹配");
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
										
											
												
													
														|  | @@ -160,7 +174,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  					pushUserMap.put(Integer.parseInt(studentId), studentId);
 |  |  					pushUserMap.put(Integer.parseInt(studentId), studentId);
 | 
											
												
													
														|  |  				}
 |  |  				}
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			BigDecimal totalPrice = new BigDecimal(0);
 | 
											
												
													
														|  | 
 |  | +			//相同类型的课程如果修改了课程费用,需要走审批
 | 
											
												
													
														|  | 
 |  | +			for(Entry<CourseScheduleType, BigDecimal> entry : currentCoursePrice.entrySet()){
 | 
											
												
													
														|  | 
 |  | +				totalPrice.add(entry.getValue());
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  |  			//创建缴费明细
 |  |  			//创建缴费明细
 | 
											
												
													
														|  |  			for(String studentId : sutdentIdList){
 |  |  			for(String studentId : sutdentIdList){
 | 
											
												
													
														|  |  				musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 |  |  				musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 | 
											
										
											
												
													
														|  | @@ -179,16 +198,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  		//设置批次号
 |  |  		//设置批次号
 | 
											
												
													
														|  |  		musicGroupPaymentCalender.setBatchNo(idGeneratorService.generatorId()+"");
 |  |  		musicGroupPaymentCalender.setBatchNo(idGeneratorService.generatorId()+"");
 | 
											
												
													
														|  |  		musicGroupPaymentCalenderDao.insert(musicGroupPaymentCalender);
 |  |  		musicGroupPaymentCalenderDao.insert(musicGroupPaymentCalender);
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  | -		for(MusicGroupPaymentCalenderCourseSettings musicGroupPaymentCalenderCourseSettings : musicGroupPaymentCalenderCourseSettingsList){
 |  | 
 | 
											
												
													
														|  | -			musicGroupPaymentCalenderCourseSettings.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 |  | 
 | 
											
												
													
														|  | -			musicGroupPaymentCalenderCourseSettings.setCreateTime(date);
 |  | 
 | 
											
												
													
														|  | -			musicGroupPaymentCalenderCourseSettings.setUpdateTime(date);
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		
 |  | 
 | 
											
												
													
														|  | -		if(musicGroupPaymentCalenderCourseSettingsList.size() > 0){
 |  | 
 | 
											
												
													
														|  | -			musicGroupPaymentCalenderCourseSettingsDao.batchInsert(musicGroupPaymentCalenderCourseSettingsList);
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  		if (musicGroupPaymentCalenderDetailList.size() > 0) {
 |  |  		if (musicGroupPaymentCalenderDetailList.size() > 0) {
 | 
											
												
													
														|  |  			musicGroupPaymentCalenderDetailDao.batchInsert(musicGroupPaymentCalenderDetailList);
 |  |  			musicGroupPaymentCalenderDetailDao.batchInsert(musicGroupPaymentCalenderDetailList);
 | 
											
										
											
												
													
														|  | @@ -286,7 +295,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  			
 |  |  			
 | 
											
												
													
														|  |  			//如果是报名,需要修改乐团状态
 |  |  			//如果是报名,需要修改乐团状态
 | 
											
												
													
														|  | -			if (musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			if (musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY) {
 | 
											
												
													
														|  |  				musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
 |  |  				musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
 | 
											
												
													
														|  |  				musicGroup.setUpdateTime(date);
 |  |  				musicGroup.setUpdateTime(date);
 | 
											
												
													
														|  |  				musicGroupDao.update(musicGroup);
 |  |  				musicGroupDao.update(musicGroup);
 | 
											
										
											
												
													
														|  | @@ -451,7 +460,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 | 
											
												
													
														|  |  			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.NO);
 |  |  			musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.NO);
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  		//如果是报名,需要修改乐团状态
 |  |  		//如果是报名,需要修改乐团状态
 | 
											
												
													
														|  | -		if (musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +		if (musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY) {
 | 
											
												
													
														|  |  			MusicGroup musicGroup = musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId());
 |  |  			MusicGroup musicGroup = musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId());
 | 
											
												
													
														|  |  			musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
 |  |  			musicGroup.setStatus(MusicGroupStatusEnum.AUDIT);
 | 
											
												
													
														|  |  			musicGroup.setUpdateTime(date);
 |  |  			musicGroup.setUpdateTime(date);
 |