|  | @@ -1936,7 +1936,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              if (hasPaid && musicGroupSubjectPlan != null) {
 | 
	
		
			
				|  |  |                  musicGroupSubjectPlan.setUpdateTime(date);
 | 
	
		
			
				|  |  |                  //减去缴费人数(器乐收费,0元时不减缴费人数)
 | 
	
		
			
				|  |  | -                if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) || musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE)) {
 | 
	
		
			
				|  |  | +                if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
 | 
	
		
			
				|  |  |                      if (studentPaymentOrder != null && studentPaymentOrder.getPaymentAccountNo() != null && studentPaymentOrder.getPaymentAccountNo().equals("200")) {
 | 
	
		
			
				|  |  |                          musicGroupSubjectPlan.setPaidZeroNum(musicGroupSubjectPlan.getPaidZeroNum() - 1);
 | 
	
		
			
				|  |  |                          musicGroupSubjectPlan.setPaidStudentNum(musicGroupSubjectPlan.getPaidStudentNum() - 1);
 | 
	
	
		
			
				|  | @@ -1954,6 +1954,32 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                  groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if(isRefundMemberFee){
 | 
	
		
			
				|  |  | +                //退云教练费用
 | 
	
		
			
				|  |  | +                if (cloudTeacherAmount != null) {
 | 
	
		
			
				|  |  | +                    Date nowDate = new Date();
 | 
	
		
			
				|  |  | +                    List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
 | 
	
		
			
				|  |  | +                    BigDecimal orderAmount = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +                    if(cloudTeacherOrders.size() > 0){
 | 
	
		
			
				|  |  | +                        List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
 | 
	
		
			
				|  |  | +                        for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
 | 
	
		
			
				|  |  | +                            if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
 | 
	
		
			
				|  |  | +                                    DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
 | 
	
		
			
				|  |  | +                                quitCloudTeacherOrders.add(cloudTeacherOrder);
 | 
	
		
			
				|  |  | +                                orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
 | 
	
		
			
				|  |  | +                        throw new BizException("云教练退费金额不能大于原始订单金额");
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    amount = amount.add(cloudTeacherAmount);
 | 
	
		
			
				|  |  | +                    //清除学员云教练
 | 
	
		
			
				|  |  | +                    studentService.cleanMember(userId);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              if (currentStudentMusicGroupStatus != StudentMusicGroupStatusEnum.NORMAL) {
 | 
	
		
			
				|  |  |                  return true;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -2015,32 +2041,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            if(isRefundMemberFee){
 | 
	
		
			
				|  |  | -                //退云教练费用
 | 
	
		
			
				|  |  | -                if (cloudTeacherAmount != null) {
 | 
	
		
			
				|  |  | -                    Date nowDate = new Date();
 | 
	
		
			
				|  |  | -                    List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
 | 
	
		
			
				|  |  | -                    BigDecimal orderAmount = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -                    if(cloudTeacherOrders.size() > 0){
 | 
	
		
			
				|  |  | -                        List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
 | 
	
		
			
				|  |  | -                        for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
 | 
	
		
			
				|  |  | -                            if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
 | 
	
		
			
				|  |  | -                                    DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
 | 
	
		
			
				|  |  | -                                quitCloudTeacherOrders.add(cloudTeacherOrder);
 | 
	
		
			
				|  |  | -                                orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
 | 
	
		
			
				|  |  | -                            }
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                        cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
 | 
	
		
			
				|  |  | -                        throw new BizException("云教练退费金额不能大于原始订单金额");
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    amount = amount.add(cloudTeacherAmount);
 | 
	
		
			
				|  |  | -                    //清除学员云教练
 | 
	
		
			
				|  |  | -                    studentService.cleanMember(userId);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              if (amount.doubleValue() > 0) {
 | 
	
		
			
				|  |  |                  // 增加交易流水
 | 
	
		
			
				|  |  |                  sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
 | 
	
	
		
			
				|  | @@ -2189,7 +2189,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          if (hasPaid && musicGroupSubjectPlan != null) {
 | 
	
		
			
				|  |  |              musicGroupSubjectPlan.setUpdateTime(date);
 | 
	
		
			
				|  |  |              //减去缴费人数(器乐收费,0元时不减缴费人数)
 | 
	
		
			
				|  |  | -            if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) || musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE)) {
 | 
	
		
			
				|  |  | +            if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
 | 
	
		
			
				|  |  |                  if (studentPaymentOrder != null && studentPaymentOrder.getPaymentAccountNo() != null && studentPaymentOrder.getPaymentAccountNo().equals("200")) {
 | 
	
		
			
				|  |  |                      musicGroupSubjectPlan.setPaidZeroNum(musicGroupSubjectPlan.getPaidZeroNum() - 1);
 | 
	
		
			
				|  |  |                      musicGroupSubjectPlan.setPaidStudentNum(musicGroupSubjectPlan.getPaidStudentNum() - 1);
 | 
	
	
		
			
				|  | @@ -2206,6 +2206,31 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              //统计变更学员数
 | 
	
		
			
				|  |  |              groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if (isRefundMemberFee){
 | 
	
		
			
				|  |  | +            //退云教练费用
 | 
	
		
			
				|  |  | +            if (cloudTeacherAmount != null) {
 | 
	
		
			
				|  |  | +                Date nowDate = new Date();
 | 
	
		
			
				|  |  | +                List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
 | 
	
		
			
				|  |  | +                BigDecimal orderAmount = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +                if(cloudTeacherOrders.size() > 0){
 | 
	
		
			
				|  |  | +                    List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
 | 
	
		
			
				|  |  | +                    for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
 | 
	
		
			
				|  |  | +                        if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
 | 
	
		
			
				|  |  | +                                DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
 | 
	
		
			
				|  |  | +                            quitCloudTeacherOrders.add(cloudTeacherOrder);
 | 
	
		
			
				|  |  | +                            orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
 | 
	
		
			
				|  |  | +                    throw new BizException("云教练退费金额不能大于原始订单金额");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                amount = amount.add(cloudTeacherAmount);
 | 
	
		
			
				|  |  | +                //清除学员云教练
 | 
	
		
			
				|  |  | +                studentService.cleanMember(userId);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (currentStudentMusicGroupStatus != StudentMusicGroupStatusEnum.NORMAL) {
 | 
	
		
			
				|  |  |              return true;
 | 
	
	
		
			
				|  | @@ -2268,32 +2293,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (isRefundMemberFee){
 | 
	
		
			
				|  |  | -            //退云教练费用
 | 
	
		
			
				|  |  | -            if (cloudTeacherAmount != null) {
 | 
	
		
			
				|  |  | -                Date nowDate = new Date();
 | 
	
		
			
				|  |  | -                List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
 | 
	
		
			
				|  |  | -                BigDecimal orderAmount = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -                if(cloudTeacherOrders.size() > 0){
 | 
	
		
			
				|  |  | -                    List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
 | 
	
		
			
				|  |  | -                    for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
 | 
	
		
			
				|  |  | -                        if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
 | 
	
		
			
				|  |  | -                                DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
 | 
	
		
			
				|  |  | -                            quitCloudTeacherOrders.add(cloudTeacherOrder);
 | 
	
		
			
				|  |  | -                            orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
 | 
	
		
			
				|  |  | -                        }
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  | -                    cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
 | 
	
		
			
				|  |  | -                    throw new BizException("云教练退费金额不能大于原始订单金额");
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -                amount = amount.add(cloudTeacherAmount);
 | 
	
		
			
				|  |  | -                //清除学员云教练
 | 
	
		
			
				|  |  | -                studentService.cleanMember(userId);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          if (amount.doubleValue() > 0) {
 | 
	
		
			
				|  |  |              // 增加交易流水
 | 
	
		
			
				|  |  |              sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
 | 
	
	
		
			
				|  | @@ -2950,6 +2949,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                  musicGroupPaymentCalenderCourseSettingsDao.deleteByMusicGroupPaymentCalenderId(calenderIds);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        //课程团和amr可以互相修改,但不可以改为会员团
 | 
	
		
			
				|  |  | +        if(group.getCourseViewType() != musicGroup.getCourseViewType()){
 | 
	
		
			
				|  |  | +            if(group.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
 | 
	
		
			
				|  |  | +                throw new BizException("会员收费乐团不可更改收费模式");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
 | 
	
		
			
				|  |  | +                throw new BizException("当前乐团收费模式不可更改为会员收费");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          musicGroup.setUpdateTime(date);
 | 
	
		
			
				|  |  |          musicGroupDao.update(musicGroup);
 | 
	
		
			
				|  |  |          // 删除乐团付费主体列表
 |