|  | @@ -1433,22 +1433,26 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 |  |      @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 | 
											
												
													
														|  | -    public boolean updateUserSurplusCourseFee(Integer userId, String musicGroupId, BigDecimal amount, String memo, Integer operatorId) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    public BigDecimal updateUserSurplusCourseFee(Integer userId, String musicGroupId, BigDecimal amount, String memo, Integer operatorId) {
 | 
											
												
													
														|  |          StudentRegistration studentRegistration = studentRegistrationDao.lockWithUserAndMusic(userId, musicGroupId);
 |  |          StudentRegistration studentRegistration = studentRegistrationDao.lockWithUserAndMusic(userId, musicGroupId);
 | 
											
												
													
														|  |          if(Objects.isNull(studentRegistration)){
 |  |          if(Objects.isNull(studentRegistration)){
 | 
											
												
													
														|  |              throw new BizException("学员注册信息不存在");
 |  |              throw new BizException("学员注册信息不存在");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          if(BigDecimal.ZERO.compareTo(amount)==0){
 |  |          if(BigDecimal.ZERO.compareTo(amount)==0){
 | 
											
												
													
														|  | -            return true;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            return BigDecimal.ZERO;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -        studentRegistration.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(amount));
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -        if(BigDecimal.ZERO.compareTo(studentRegistration.getSurplusCourseFee())>0){
 |  | 
 | 
											
												
													
														|  | -            return false;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if(amount.abs().compareTo(studentRegistration.getSurplusCourseFee())>0){
 | 
											
												
													
														|  | 
 |  | +            if(BigDecimal.ZERO.compareTo(amount)>0){
 | 
											
												
													
														|  | 
 |  | +                amount = studentRegistration.getSurplusCourseFee().negate();
 | 
											
												
													
														|  | 
 |  | +            }else{
 | 
											
												
													
														|  | 
 |  | +                amount = studentRegistration.getSurplusCourseFee();
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +        studentRegistration.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().add(amount));
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |          StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
 |  |          StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
 | 
											
												
													
														|  |          studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
 |  |          studentCourseFeeDetail.setStudentRegistrationId(studentRegistration.getId());
 | 
											
												
													
														|  |          studentCourseFeeDetail.setAmount(amount);
 |  |          studentCourseFeeDetail.setAmount(amount);
 | 
											
										
											
												
													
														|  | @@ -1458,6 +1462,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 | 
											
												
													
														|  |          studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
 |  |          studentCourseFeeDetailDao.insert(studentCourseFeeDetail);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          studentRegistrationDao.update(studentRegistration);
 |  |          studentRegistrationDao.update(studentRegistration);
 | 
											
												
													
														|  | -        return true;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        return amount;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  }
 |  |  }
 |