|  | @@ -1,6 +1,8 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
 | 
	
		
			
				|  |  | +import static com.ym.mec.biz.dal.enums.GroupType.SUBJECT_CHANGE;
 | 
	
		
			
				|  |  | +import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dao.*;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.dto.SubjectChangeParamDto;
 | 
	
	
		
			
				|  | @@ -82,6 +84,8 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 | 
	
		
			
				|  |  |      private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private SysCouponCodeService sysCouponCodeService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private SysUserCashAccountLogDao sysUserCashAccountLogDao;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      private final Logger logger = LoggerFactory.getLogger(this.getClass());
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -175,7 +179,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 | 
	
		
			
				|  |  |          StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(subjectChangeParamDto.getCouponIdList(),amount,true);
 | 
	
		
			
				|  |  |          amount = studentPaymentOrder.getActualAmount();
 | 
	
		
			
				|  |  |          studentPaymentOrder.setUserId(subjectChange.getStudentId());
 | 
	
		
			
				|  |  | -        studentPaymentOrder.setGroupType(GroupType.SUBJECT_CHANGE);
 | 
	
		
			
				|  |  | +        studentPaymentOrder.setGroupType(SUBJECT_CHANGE);
 | 
	
		
			
				|  |  |          studentPaymentOrder.setOrderNo(orderNo);
 | 
	
		
			
				|  |  |          studentPaymentOrder.setType(OrderTypeEnum.SUBJECT_CHANGE);
 | 
	
		
			
				|  |  |          studentPaymentOrder.setStatus(DealStatusEnum.ING);
 | 
	
	
		
			
				|  | @@ -337,21 +341,30 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 | 
	
		
			
				|  |  |              subjectChange.setSellAmount(BigDecimal.ZERO);
 | 
	
		
			
				|  |  |              subjectChange.setSellTime(nowDate);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        //差价小于0退到余额
 | 
	
		
			
				|  |  | -        if (amountMargin.compareTo(BigDecimal.ZERO) <= 0) {
 | 
	
		
			
				|  |  | -            sysUserCashAccountService.updateBalance(subjectChange.getStudentId(), amountMargin.negate(), PlatformCashAccountDetailTypeEnum.REFUNDS, "声部更换退还");
 | 
	
		
			
				|  |  | -            studentRegistrationService.changeStudentSubject(subjectChange.getStudentId(), subjectChange.getMusicGroupId(), subjectChange.getOriginalSubjectId(), subjectChange.getChangeSubjectId());
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |          subjectChange.setCreateTime(nowDate);
 | 
	
		
			
				|  |  |          subjectChange.setUpdateTime(nowDate);
 | 
	
		
			
				|  |  |          subjectChange.setVersion(0);
 | 
	
		
			
				|  |  |          subjectChangeDao.insert(subjectChange);
 | 
	
		
			
				|  |  | +        //差价小于0退到余额
 | 
	
		
			
				|  |  | +        if (amountMargin.compareTo(BigDecimal.ZERO) <= 0) {
 | 
	
		
			
				|  |  | +//            sysUserCashAccountService.updateBalance(subjectChange.getStudentId(), amountMargin.negate(), PlatformCashAccountDetailTypeEnum.REFUNDS, "声部更换退还");
 | 
	
		
			
				|  |  | +            SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setUserId(subjectChange.getStudentId());
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setGroupType(SUBJECT_CHANGE);
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setOrganId(subjectChange.getOrganId());
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setGroupId(subjectChange.getId().toString());
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setAmount(amountMargin);
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.SUBJECT_CHANGE);
 | 
	
		
			
				|  |  | +            sysUserCashAccountLog.setComment("声部更换退还");
 | 
	
		
			
				|  |  | +            sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
 | 
	
		
			
				|  |  | +            studentRegistrationService.changeStudentSubject(subjectChange.getStudentId(), subjectChange.getMusicGroupId(), subjectChange.getOriginalSubjectId(), subjectChange.getChangeSubjectId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (amountMargin.compareTo(BigDecimal.ZERO) <= 0) {
 | 
	
		
			
				|  |  |              String orderNo = idGeneratorService.generatorId("payment") + "";
 | 
	
		
			
				|  |  |              StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
 | 
	
		
			
				|  |  |              studentPaymentOrder.setUserId(subjectChange.getStudentId());
 | 
	
		
			
				|  |  | -            studentPaymentOrder.setGroupType(GroupType.SUBJECT_CHANGE);
 | 
	
		
			
				|  |  | +            studentPaymentOrder.setGroupType(SUBJECT_CHANGE);
 | 
	
		
			
				|  |  |              studentPaymentOrder.setOrderNo(orderNo);
 | 
	
		
			
				|  |  |              studentPaymentOrder.setType(OrderTypeEnum.SUBJECT_CHANGE);
 | 
	
		
			
				|  |  |              studentPaymentOrder.setExpectAmount(BigDecimal.ZERO);
 |