|
@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
|
|
|
import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
|
|
|
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.dto.SubjectChangeParamDto;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.dal.page.SubjectChangeQueryInfo;
|
|
@@ -114,10 +115,10 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Map payChange(Integer id, BigDecimal viewAmount, Boolean isUseBalancePayment, Boolean isRepay) throws Exception {
|
|
|
+ public Map payChange(SubjectChangeParamDto subjectChangeParamDto) throws Exception {
|
|
|
Date date = new Date();
|
|
|
- SubjectChange subjectChange = subjectChangeDao.get(id);
|
|
|
- if (isRepay) {
|
|
|
+ SubjectChange subjectChange = subjectChangeDao.get(subjectChangeParamDto.getId());
|
|
|
+ if (subjectChangeParamDto.getRepay()) {
|
|
|
StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.get(subjectChange.getOrderId().longValue());
|
|
|
|
|
|
if(studentPaymentOrder != null && studentPaymentOrder.getStatus() == DealStatusEnum.ING){
|
|
@@ -160,13 +161,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
|
|
|
|
String channelType = "";
|
|
|
|
|
|
- StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
+ StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(subjectChangeParamDto.getCouponIdList(),amount,true);
|
|
|
+ amount = studentPaymentOrder.getActualAmount();
|
|
|
studentPaymentOrder.setUserId(subjectChange.getStudentId());
|
|
|
studentPaymentOrder.setGroupType(GroupType.SUBJECT_CHANGE);
|
|
|
studentPaymentOrder.setOrderNo(orderNo);
|
|
|
studentPaymentOrder.setType(OrderTypeEnum.SUBJECT_CHANGE);
|
|
|
- studentPaymentOrder.setExpectAmount(amount);
|
|
|
- studentPaymentOrder.setActualAmount(amount);
|
|
|
studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
studentPaymentOrder.setMusicGroupId(subjectChange.getId().toString());
|
|
|
studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
@@ -186,12 +186,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
|
}
|
|
|
|
|
|
studentPaymentOrder.setVersion(0);
|
|
|
- if (amount.compareTo(viewAmount) != 0) {
|
|
|
+ if (amount.compareTo(subjectChangeParamDto.getAmount()) != 0) {
|
|
|
throw new BizException("价格异常");
|
|
|
}
|
|
|
|
|
|
BigDecimal balance = BigDecimal.ZERO;
|
|
|
- if (isUseBalancePayment != null && isUseBalancePayment && amount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ if (subjectChangeParamDto.getUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(subjectChange.getStudentId());
|
|
|
if (userCashAccount == null) {
|
|
|
throw new BizException("用户账户找不到");
|
|
@@ -204,7 +204,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
|
sysUserCashAccountService.updateBalance(subjectChange.getStudentId(), balance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐器维修");
|
|
|
}
|
|
|
}
|
|
|
- if (amount.compareTo(viewAmount) != 0) {
|
|
|
+ if (amount.compareTo(subjectChangeParamDto.getAmount()) != 0) {
|
|
|
throw new BizException("价格异常");
|
|
|
}
|
|
|
studentPaymentOrderService.update(studentPaymentOrder);
|