提交 0958587d authored 作者: huyufan's avatar huyufan

确认收货后,冻结的钱也要是否

上级 3d1627a3
...@@ -21,8 +21,8 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum; ...@@ -21,8 +21,8 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum; import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.enums.settle.SettlementWayEnum; import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.event.OwnerLoanThawEvent;
import com.clx.performance.event.OwnerRepaymentUpdateEvent; import com.clx.performance.event.OwnerRepaymentUpdateEvent;
import com.clx.performance.event.SettlementUpdateEvent;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.model.OwnerRunningWaterRecord; import com.clx.performance.model.OwnerRunningWaterRecord;
...@@ -33,7 +33,6 @@ import com.clx.performance.model.settle.SettlementDriverDetail; ...@@ -33,7 +33,6 @@ import com.clx.performance.model.settle.SettlementDriverDetail;
import com.clx.performance.model.settle.SettlementOwnerDetail; import com.clx.performance.model.settle.SettlementOwnerDetail;
import com.clx.performance.service.loan.OwnerLoanRecordService; import com.clx.performance.service.loan.OwnerLoanRecordService;
import com.clx.user.vo.feign.OwnerInfoFeignVO; import com.clx.user.vo.feign.OwnerInfoFeignVO;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -41,17 +40,16 @@ import org.redisson.api.RLock; ...@@ -41,17 +40,16 @@ import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Component @Component
@AllArgsConstructor @AllArgsConstructor
...@@ -198,7 +196,8 @@ public class OrderChildLoanComponent { ...@@ -198,7 +196,8 @@ public class OrderChildLoanComponent {
return; return;
} }
if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(settlementDriverDetail.getInvoiceType())) { if (SettlementOwnerEnum.InvoiceType.ORDINARY.getCode().equals(settlementDriverDetail.getInvoiceType())) {
log.info("2.当前不是网运单,不需要处理借款标识"); log.info("2.当前不是网运单,不需要处理借款标识,是否接单冻结的借款金额");
applicationEventPublisher.publishEvent(new OwnerLoanThawEvent(this, orderChild.getChildNo()));
return; return;
} }
...@@ -209,25 +208,30 @@ public class OrderChildLoanComponent { ...@@ -209,25 +208,30 @@ public class OrderChildLoanComponent {
String childNo = settlementDriverDetail.getChildNo(); String childNo = settlementDriverDetail.getChildNo();
List<OwnerLoanAccountRunningWaterRecord> runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByOrderNoAndRunningWaterType List<OwnerLoanAccountRunningWaterRecord> runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType(childNo);
(childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode()); Map<Integer, List<OwnerLoanAccountRunningWaterRecord>> listMap = runningWaterRecordList.stream().collect(Collectors.groupingBy(OwnerLoanAccountRunningWaterRecord::getRunningWaterType));
List<OwnerLoanAccountRunningWaterRecord> thawRecord = listMap.get(OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_THAW.getCode());
if (CollectionUtil.isNotEmpty(thawRecord)) {
log.info("3.1 有借款解冻记录,说明是货主还款触发任务,将runningWaterRecordList置空");
runningWaterRecordList = null;
}
log.info("4.查询当前运单号:{}, 当前货主,{}, 此运单借款冻结记录:{}", childNo, settlementOwnerDetail.getOwnerUserNo(), JSONUtil.parse(runningWaterRecordList)); log.info("4.查询当前运单号:{}, 当前货主,{}, 此运单借款冻结记录:{}", childNo, settlementOwnerDetail.getOwnerUserNo(), JSONUtil.parse(runningWaterRecordList));
if (CollectionUtil.isEmpty(runningWaterRecordList)) { if (CollectionUtil.isEmpty(runningWaterRecordList)) {
//说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑 //说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑
log.info("4.1 说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑"); log.info("4.1 说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑 或者是第一次不够够释放了接单冻结的借款");
LoanBalanceDTO param = new LoanBalanceDTO(); LoanBalanceDTO param = new LoanBalanceDTO();
param.setOrderChildPrice(settlementOwnerDetail.getSettlementFreight()); param.setOrderChildPrice(settlementOwnerDetail.getSettlementFreight());
param.setOwnerUserNo(settlementOwnerDetail.getOwnerUserNo()); param.setOwnerUserNo(settlementOwnerDetail.getOwnerUserNo());
param.setChildNo(childNo); param.setChildNo(childNo);
param.setEventFlag(true);
param.setSettlementDriverDetail(settlementDriverDetail); param.setSettlementDriverDetail(settlementDriverDetail);
param.setSettlementOwnerDetail(settlementOwnerDetail); param.setSettlementOwnerDetail(settlementOwnerDetail);
//扣钱,获取锁,此处有可能钱不够,抛异常, //扣钱,获取锁,此处有可能钱不够,抛异常,
getLoanBalanceLock(param); getLoanBalanceLock(param);
runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByOrderNoAndRunningWaterType runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType
(childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode()); (childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode());
childWriteOffOwnerLoanAccount(runningWaterRecordList); childWriteOffOwnerLoanAccount(runningWaterRecordList);
...@@ -263,12 +267,13 @@ public class OrderChildLoanComponent { ...@@ -263,12 +267,13 @@ public class OrderChildLoanComponent {
param.setOrderChildPrice(subtract.negate()); param.setOrderChildPrice(subtract.negate());
param.setOwnerUserNo(settlementOwnerDetail.getOwnerUserNo()); param.setOwnerUserNo(settlementOwnerDetail.getOwnerUserNo());
param.setChildNo(childNo); param.setChildNo(childNo);
param.setEventFlag(true);
param.setSettlementDriverDetail(settlementDriverDetail); param.setSettlementDriverDetail(settlementDriverDetail);
param.setSettlementOwnerDetail(settlementOwnerDetail); param.setSettlementOwnerDetail(settlementOwnerDetail);
//扣钱,获取锁,此处有可能钱不够,抛异常, //扣钱,获取锁,此处有可能钱不够,抛异常,
getLoanBalanceLock(param); getLoanBalanceLock(param);
runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByOrderNoAndRunningWaterType runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType
(childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode()); (childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode());
log.info("4.5新查询出冻结借款记录:{}", JSONUtil.parse(runningWaterRecordList)); log.info("4.5新查询出冻结借款记录:{}", JSONUtil.parse(runningWaterRecordList));
childWriteOffOwnerLoanAccount(runningWaterRecordList); childWriteOffOwnerLoanAccount(runningWaterRecordList);
...@@ -285,13 +290,14 @@ public class OrderChildLoanComponent { ...@@ -285,13 +290,14 @@ public class OrderChildLoanComponent {
//归还借款单的剩余金额+解冻流水 //归还借款单的剩余金额+解冻流水
public void thawOwnerLoanAccount(Long loanNo, Integer loanType, Long userNo, String userName, String mobile, String childNo, BigDecimal balance) { public void thawOwnerLoanAccount(Long loanNo, Integer loanType, Long userNo, String userName, String mobile, String childNo, BigDecimal balance) {
log.info("归还借款单的剩余金额+解冻流水,loanNo:{},loanType:{},userNo:{},childNo:{}, balance:{}", loanNo, loanType, userNo, childNo, balance);
while (true) { while (true) {
OwnerLoanAccount update = new OwnerLoanAccount(); OwnerLoanAccount update = new OwnerLoanAccount();
OwnerLoanAccount account = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, OwnerLoanAccount account = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo,
userNo).get(); userNo).get();
update.setId(account.getId());
update.setModifiedTime(account.getModifiedTime());
if (OwnerLoanRecordEnum.LoanType.VIRTUAL_CURRENCY.getCode().equals(loanType)) { if (OwnerLoanRecordEnum.LoanType.VIRTUAL_CURRENCY.getCode().equals(loanType)) {
update.setId(account.getId());
update.setModifiedTime(account.getModifiedTime());
update.setVirtuallyAccountBalance(balance); update.setVirtuallyAccountBalance(balance);
update.setVirtuallyFrozenBalance(balance); update.setVirtuallyFrozenBalance(balance);
update.setVirtuallyUsableBalance(balance); update.setVirtuallyUsableBalance(balance);
...@@ -299,8 +305,6 @@ public class OrderChildLoanComponent { ...@@ -299,8 +305,6 @@ public class OrderChildLoanComponent {
update.setFundingAccountBalance(BigDecimal.ZERO); update.setFundingAccountBalance(BigDecimal.ZERO);
update.setFundingFrozenBalance(BigDecimal.ZERO); update.setFundingFrozenBalance(BigDecimal.ZERO);
} else { } else {
update.setId(account.getId());
update.setModifiedTime(account.getModifiedTime());
update.setFundingAccountBalance(balance); update.setFundingAccountBalance(balance);
update.setFundingFrozenBalance(balance); update.setFundingFrozenBalance(balance);
update.setFundingUsableBalance(balance); update.setFundingUsableBalance(balance);
......
...@@ -80,24 +80,42 @@ public class OwnerLoanAccountRunningWaterRecordDaoImpl extends BaseDaoImpl<Owner ...@@ -80,24 +80,42 @@ public class OwnerLoanAccountRunningWaterRecordDaoImpl extends BaseDaoImpl<Owner
} }
@Override @Override
public OwnerLoanAccountRunningWaterRecord getOneByChildNoAndStatus(String childNo, Integer type) { public List<OwnerLoanAccountRunningWaterRecord> getOneByChildNoAndStatus(String childNo, Integer type) {
return baseMapper.selectOne(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getChildNo, childNo) return baseMapper.selectList(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getChildNo, childNo)
.eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType, type) .eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType, type)
); );
} }
@Override @Override
public List<OwnerLoanAccountRunningWaterRecord> getListByOrderNoAndRunningWaterType(String childNo, Integer runningWaterType) { public List<OwnerLoanAccountRunningWaterRecord> getListByChildNoAndRunningWaterType(String childNo, Integer runningWaterType) {
return baseMapper.selectList(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getChildNo, childNo) return baseMapper.selectList(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getChildNo, childNo)
.eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType, runningWaterType) .eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType, runningWaterType)
.orderByAsc(OwnerLoanAccountRunningWaterRecord::getId) .orderByAsc(OwnerLoanAccountRunningWaterRecord::getId)
); );
} }
@Override
public List<OwnerLoanAccountRunningWaterRecord> getListByChildNoAndRunningWaterType(String childNo) {
return baseMapper.selectList(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getChildNo, childNo)
.in(OwnerLoanAccountRunningWaterRecord::getRunningWaterType,
OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN
,OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_THAW
)
.orderByAsc(OwnerLoanAccountRunningWaterRecord::getId)
);
}
@Override @Override
public List<OwnerLoanAccountRunningWaterRecord> selectLoanRunningWatterRecord(Long loanNo) { public List<OwnerLoanAccountRunningWaterRecord> selectLoanRunningWatterRecord(Long loanNo) {
return baseMapper.selectList(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getLoanNo, loanNo) return baseMapper.selectList(lQrWrapper().eq(OwnerLoanAccountRunningWaterRecord::getLoanNo, loanNo)
.eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType, .eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType,
OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode()) OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode())
); } ); }
@Override
public List<OwnerLoanAccountRunningWaterRecord> getListByChildNoAndRunningWaterType(List<String> childNoList, Integer runningWaterType) {
return baseMapper.selectList(lQrWrapper().in(OwnerLoanAccountRunningWaterRecord::getChildNo, childNoList)
.eq(OwnerLoanAccountRunningWaterRecord::getRunningWaterType, runningWaterType)
);
}
} }
...@@ -23,9 +23,14 @@ public interface OwnerLoanAccountRunningWaterRecordDao extends BaseDao<OwnerLoan ...@@ -23,9 +23,14 @@ public interface OwnerLoanAccountRunningWaterRecordDao extends BaseDao<OwnerLoan
List<OwnerLoanAccountRunningWaterRecord> listOwnerLoanRunWaterRecord(Long userNo, PageOwnerLoanRunWaterRecordParam param); List<OwnerLoanAccountRunningWaterRecord> listOwnerLoanRunWaterRecord(Long userNo, PageOwnerLoanRunWaterRecordParam param);
OwnerLoanAccountRunningWaterRecord getOneByChildNoAndStatus(String childNo, Integer type); List<OwnerLoanAccountRunningWaterRecord> getOneByChildNoAndStatus(String childNo, Integer type);
List<OwnerLoanAccountRunningWaterRecord> getListByOrderNoAndRunningWaterType(String childNo, Integer runningWaterType); List<OwnerLoanAccountRunningWaterRecord> getListByChildNoAndRunningWaterType(String childNo, Integer runningWaterType);
List<OwnerLoanAccountRunningWaterRecord> getListByChildNoAndRunningWaterType(String childNo);
List<OwnerLoanAccountRunningWaterRecord> selectLoanRunningWatterRecord(Long loanNo); List<OwnerLoanAccountRunningWaterRecord> selectLoanRunningWatterRecord(Long loanNo);
List<OwnerLoanAccountRunningWaterRecord> getListByChildNoAndRunningWaterType(List<String> childNoList, Integer runningWaterType);
} }
...@@ -15,6 +15,9 @@ public class LoanBalanceDTO { ...@@ -15,6 +15,9 @@ public class LoanBalanceDTO {
private String childNo; private String childNo;
//如果是true则需要发送借款冻结解冻事件
private Boolean eventFlag;
private SettlementDriverDetail settlementDriverDetail; private SettlementDriverDetail settlementDriverDetail;
private SettlementOwnerDetail settlementOwnerDetail; private SettlementOwnerDetail settlementOwnerDetail;
......
...@@ -11,10 +11,12 @@ import com.clx.performance.dao.settle.SettlementDriverDao; ...@@ -11,10 +11,12 @@ import com.clx.performance.dao.settle.SettlementDriverDao;
import com.clx.performance.dao.settle.SettlementDriverDetailDao; import com.clx.performance.dao.settle.SettlementDriverDetailDao;
import com.clx.performance.dao.settle.SettlementOwnerDetailDao; import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.OwnerLoanMqDTO; import com.clx.performance.dto.OwnerLoanMqDTO;
import com.clx.performance.enums.loan.OwnerLoanAccountRunningWaterRecordEnum;
import com.clx.performance.enums.loan.OwnerLoanRecordEnum; import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.loan.OrderChildLoanRetryRecord; import com.clx.performance.model.loan.OrderChildLoanRetryRecord;
import com.clx.performance.model.loan.OwnerLoanAccount;
import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord; import com.clx.performance.model.loan.OwnerLoanAccountRunningWaterRecord;
import com.clx.performance.model.loan.OwnerRepayment; import com.clx.performance.model.loan.OwnerRepayment;
import com.clx.performance.model.settle.SettlementDriverDetail; import com.clx.performance.model.settle.SettlementDriverDetail;
...@@ -27,6 +29,7 @@ import org.springframework.context.event.EventListener; ...@@ -27,6 +29,7 @@ import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.PlatformTransactionManager;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
...@@ -131,4 +134,65 @@ public class EventListenerComponent { ...@@ -131,4 +134,65 @@ public class EventListenerComponent {
settlementDriverDetailDao.updateLoanFlagByChildNoList(listMap.keySet()); settlementDriverDetailDao.updateLoanFlagByChildNoList(listMap.keySet());
settlementDriverDao.updateLoanFlagByChildNoList(listMap.keySet()); settlementDriverDao.updateLoanFlagByChildNoList(listMap.keySet());
} }
@EventListener(classes = {OrderChildCancelEvent.class})
public void listen(OrderChildCancelEvent event) {
log.info("OrderChildCancelEvent事件执行");
List<String> childNoList = event.getChildNoList();
log.info("需要解冻借款的的运单号:{}", JSONUtil.parse(childNoList));
List<OwnerLoanAccountRunningWaterRecord> runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType(childNoList, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode());
if (CollectionUtil.isEmpty(runningWaterRecordList)) {
return;
}
Long ownerUserNo = runningWaterRecordList.get(0).getOwnerUserNo();
log.info("当前解冻货主:{},流水记录长度{},流水记录{}", ownerUserNo, runningWaterRecordList.size(), JSONUtil.parse(runningWaterRecordList));
for (OwnerLoanAccountRunningWaterRecord record : runningWaterRecordList) {
Long loanNo = record.getLoanNo();
Integer loanType = record.getLoanType();
String ownerUserName = record.getOwnerUserName();
String childNo = record.getChildNo();
BigDecimal balance = record.getAlterationBalance();
//解冻借款
orderChildLoanComponent.thawOwnerLoanAccount(loanNo, loanType, ownerUserNo, record.getMobile(), ownerUserName, childNo, balance);
}
}
@EventListener(classes = {OwnerLoanThawEvent.class})
public void listen(OwnerLoanThawEvent event) {
log.info("OwnerLoanThawEvent事件执行");
log.info("需要解冻借款的的运单号:{}", event.getChildNo());
List<OwnerLoanAccountRunningWaterRecord> runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByChildNoAndRunningWaterType(event.getChildNo());
if (CollectionUtil.isEmpty(runningWaterRecordList)) {
return;
}
Map<Integer, List<OwnerLoanAccountRunningWaterRecord>> listMap = runningWaterRecordList.stream().collect(Collectors.groupingBy(OwnerLoanAccountRunningWaterRecord::getRunningWaterType));
List<OwnerLoanAccountRunningWaterRecord> thawRecord = listMap.get(OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_THAW.getCode());
if (CollectionUtil.isNotEmpty(thawRecord)) {
log.info("3.1 有借款解冻记录,说明是是重复记录,直接返回");
return;
} else {
runningWaterRecordList = listMap.get(OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode());
}
Long ownerUserNo = runningWaterRecordList.get(0).getOwnerUserNo();
log.info("当前解冻货主:{},流水记录长度{},流水记录{}", ownerUserNo, runningWaterRecordList.size(), JSONUtil.parse(runningWaterRecordList));
for (OwnerLoanAccountRunningWaterRecord record : runningWaterRecordList) {
Long loanNo = record.getLoanNo();
Integer loanType = record.getLoanType();
String ownerUserName = record.getOwnerUserName();
String childNo = record.getChildNo();
BigDecimal balance = record.getAlterationBalance();
//解冻借款
orderChildLoanComponent.thawOwnerLoanAccount(loanNo, loanType, ownerUserNo, record.getMobile(), ownerUserName, childNo, balance);
}
}
} }
package com.clx.performance.event;
import lombok.Getter;
import lombok.Setter;
import org.springframework.context.ApplicationEvent;
import java.util.List;
@Getter
@Setter
public class OrderChildCancelEvent extends ApplicationEvent {
private List<String> childNoList;
/**
* Create a new {@code ApplicationEvent}.
*
* @param source the object on which the event initially occurred or with
* which the event is associated (never {@code null})
*/
public OrderChildCancelEvent(Object source) {
super(source);
}
public OrderChildCancelEvent(Object source, List<String> childNoList) {
super(source);
this.childNoList = childNoList;
}
}
package com.clx.performance.event;
import com.clx.performance.model.OrderChild;
import lombok.Getter;
import lombok.Setter;
import org.springframework.context.ApplicationEvent;
@Getter
@Setter
public class OwnerLoanThawEvent extends ApplicationEvent {
private String childNo;
/**
* Create a new {@code ApplicationEvent}.
*
* @param source the object on which the event initially occurred or with
* which the event is associated (never {@code null})
*/
public OwnerLoanThawEvent(Object source) {
super(source);
}
public OwnerLoanThawEvent(Object source, String childNo) {
super(source);
this.childNo = childNo;
}
}
...@@ -36,6 +36,7 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum; ...@@ -36,6 +36,7 @@ import com.clx.performance.enums.loan.OwnerLoanRecordEnum;
import com.clx.performance.enums.loan.OwnerRePaymentEnum; import com.clx.performance.enums.loan.OwnerRePaymentEnum;
import com.clx.performance.enums.nbbank.NbBankStatusEnum; import com.clx.performance.enums.nbbank.NbBankStatusEnum;
import com.clx.performance.event.OwnerLoanEvent; import com.clx.performance.event.OwnerLoanEvent;
import com.clx.performance.event.OwnerLoanThawEvent;
import com.clx.performance.extranal.user.impl.OwnerInfoServiceImpl; import com.clx.performance.extranal.user.impl.OwnerInfoServiceImpl;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OwnerBindCardRecord; import com.clx.performance.model.OwnerBindCardRecord;
...@@ -311,6 +312,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -311,6 +312,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
*/ */
private void initOwnerLoanRunningWaterRecord(OwnerLoanRecord ownerLoanRecord) { private void initOwnerLoanRunningWaterRecord(OwnerLoanRecord ownerLoanRecord) {
OwnerLoanAccount ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, ownerLoanRecord.getOwnerUserNo()).get(); OwnerLoanAccount ownerLoanAccount = ownerLoanAccountDao.getOneByField(OwnerLoanAccount::getOwnerUserNo, ownerLoanRecord.getOwnerUserNo()).get();
log.info("当前ownerLoanAccount{}", JSONUtil.parse(ownerLoanAccount));
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord); ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
OwnerLoanAccountRunningWaterRecord record = new OwnerLoanAccountRunningWaterRecord() OwnerLoanAccountRunningWaterRecord record = new OwnerLoanAccountRunningWaterRecord()
.setOwnerUserNo(ownerLoanRecord.getOwnerUserNo()) .setOwnerUserNo(ownerLoanRecord.getOwnerUserNo())
...@@ -521,7 +523,10 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -521,7 +523,10 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
if (orderChildPriceTemp.compareTo(BigDecimal.ZERO) != 0) { if (orderChildPriceTemp.compareTo(BigDecimal.ZERO) != 0) {
//当前钱不够,需要记录,流程卡死,不往下走 //当前钱不够,需要记录,流程卡死,不往下走
if (param.getEventFlag()) {
//此刻说明是确认收货后触发的逻辑,需要是否之前冻结的借款
applicationEventPublisher.publishEvent(new OwnerLoanThawEvent(this, param.getChildNo()));
}
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "执行借款发现:货主货款不足"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "执行借款发现:货主货款不足");
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论