|  | @@ -15,7 +15,6 @@ import java.util.HashMap;
 | 
	
		
			
				|  |  |  import java.util.HashSet;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
		
			
				|  |  | -import java.util.Objects;
 | 
	
		
			
				|  |  |  import java.util.Set;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1875,6 +1874,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              //删除续费周期
 | 
	
		
			
				|  |  |              musicGroupStudentFeeDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 | 
	
		
			
				|  |  |              // 退团
 | 
	
		
			
				|  |  | +            BigDecimal surplusCourseFee = studentRegistration.getSurplusCourseFee();
 | 
	
		
			
				|  |  |              studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.QUIT);
 | 
	
		
			
				|  |  |              studentRegistration.setSurplusCourseFee(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |              studentRegistration.setUpdateTime(date);
 | 
	
	
		
			
				|  | @@ -1921,19 +1921,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              //删除用户购买的课程记录
 | 
	
		
			
				|  |  |              musicGroupPaymentStudentCourseDetailDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            //操作人
 | 
	
		
			
				|  |  | -            SysUser operator = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            BigDecimal price = courseScheduleStudentPaymentDao.countFinishCoursePriceWithMusicGroup(musicGroupId, GroupType.MUSIC, userId);
 | 
	
		
			
				|  |  | -            BigDecimal subtractAmount = studentRegistration.getSurplusCourseFee();
 | 
	
		
			
				|  |  | -            if (Objects.isNull(price)) {
 | 
	
		
			
				|  |  | -                price = new BigDecimal(0);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            subtractAmount = subtractAmount.subtract(price);
 | 
	
		
			
				|  |  | -            if (BigDecimal.ZERO.compareTo(subtractAmount) < 0) {
 | 
	
		
			
				|  |  | -                studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, subtractAmount.negate(), reason, operator.getId());
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |              BigDecimal amount = new BigDecimal(0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // 判断乐器是否是租赁
 | 
	
	
		
			
				|  | @@ -1946,7 +1933,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  |              if (isRefundCourseFee) {
 | 
	
		
			
				|  |  |                  // 退课程费用
 | 
	
		
			
				|  |  | -                amount = amount.add(studentRegistration.getSurplusCourseFee());
 | 
	
		
			
				|  |  | +                amount = amount.add(surplusCourseFee);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
 | 
	
	
		
			
				|  | @@ -2015,12 +2002,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              throw new BizException("退团失败,乐团状态[已取消]或[已暂停]");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        // 判断乐器是否是租赁
 | 
	
		
			
				|  |  | -        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
 | 
	
		
			
				|  |  | -        if (studentRegistration == null) {
 | 
	
		
			
				|  |  | -            throw new BizException("用户注册信息不存在");
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		// 有进行中的课程不能退团
 | 
	
		
			
				|  |  |  		List<CourseSchedule> courseScheduleList = courseScheduleDao.findMusicGroupCourseSchedulesWithStudent(musicGroupId, GroupType.MUSIC.getCode(),
 | 
	
		
			
				|  |  |  				"UNDERWAY", userId);
 | 
	
	
		
			
				|  | @@ -2030,6 +2011,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(musicGroupId), Arrays.asList(userId), GroupType.MUSIC);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        // 判断乐器是否是租赁
 | 
	
		
			
				|  |  | +        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
 | 
	
		
			
				|  |  | +        if (studentRegistration == null) {
 | 
	
		
			
				|  |  | +            throw new BizException("用户注册信息不存在");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          Date date = new Date();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
 | 
	
	
		
			
				|  | @@ -2056,6 +2043,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          //删除续费周期
 | 
	
		
			
				|  |  |          musicGroupStudentFeeDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        BigDecimal surplusCourseFee = studentRegistration.getSurplusCourseFee();
 | 
	
		
			
				|  |  |          // 退团
 | 
	
		
			
				|  |  |          studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.QUIT);
 | 
	
		
			
				|  |  |          studentRegistration.setSurplusCourseFee(BigDecimal.ZERO);
 | 
	
	
		
			
				|  | @@ -2103,20 +2091,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          //删除用户购买的课程记录
 | 
	
		
			
				|  |  |          musicGroupPaymentStudentCourseDetailDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        //操作人
 | 
	
		
			
				|  |  | -        SysUser operator = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        BigDecimal price = courseScheduleStudentPaymentDao.countFinishCoursePriceWithMusicGroup(musicGroupId, GroupType.MUSIC, userId);
 | 
	
		
			
				|  |  | -        BigDecimal subtractAmount = studentRegistration.getSurplusCourseFee();
 | 
	
		
			
				|  |  | -        if (Objects.isNull(price)) {
 | 
	
		
			
				|  |  | -            price = new BigDecimal(0);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        subtractAmount = subtractAmount.subtract(price);
 | 
	
		
			
				|  |  | -        if (BigDecimal.ZERO.compareTo(subtractAmount) < 0) {
 | 
	
		
			
				|  |  | -            studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, subtractAmount.negate(), reason, operator.getId());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          BigDecimal amount = new BigDecimal(0);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // 判断乐器是否是租赁
 | 
	
	
		
			
				|  | @@ -2129,7 +2103,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  |          if (isRefundCourseFee) {
 | 
	
		
			
				|  |  |              // 退课程费用
 | 
	
		
			
				|  |  | -            amount = amount.add(studentRegistration.getSurplusCourseFee());
 | 
	
		
			
				|  |  | +            amount = amount.add(surplusCourseFee);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, SUCCESS);
 |