提交 ada7c661 authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v10.7_borrowing_and_repayment_20240118' into test

...@@ -306,7 +306,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -306,7 +306,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
* @param ownerLoanRecord * @param ownerLoanRecord
*/ */
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();
ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord); ownerLoanRecordDao.updateEntityByKey(ownerLoanRecord);
OwnerLoanAccountRunningWaterRecord record = new OwnerLoanAccountRunningWaterRecord() OwnerLoanAccountRunningWaterRecord record = new OwnerLoanAccountRunningWaterRecord()
.setOwnerUserNo(ownerLoanRecord.getOwnerUserNo()) .setOwnerUserNo(ownerLoanRecord.getOwnerUserNo())
...@@ -469,9 +469,11 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -469,9 +469,11 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
List<OwnerLoanRecord> ownerLoanRecords = ownerLoanRecordDao.selectLoanBalance(userNo); List<OwnerLoanRecord> ownerLoanRecords = ownerLoanRecordDao.selectLoanBalance(userNo);
BigDecimal orderChildPriceTemp = orderChildPrice; BigDecimal orderChildPriceTemp = orderChildPrice;
log.info("查询ownerLoanRecords:{}", JSONUtil.parse(ownerLoanRecords)); log.info("查询ownerLoanRecords:{}", JSONUtil.parse(ownerLoanRecords));
for (OwnerLoanRecord ownerLoanRecord : ownerLoanRecords) { Map<Integer, List<OwnerLoanRecord>> listMap = ownerLoanRecords.stream().collect(Collectors.groupingBy(OwnerLoanRecord::getLoanType));
for (OwnerLoanRecord ownerLoanRecord : listMap.get(OwnerLoanRecordEnum.LoanType.VIRTUAL_CURRENCY.getCode())) {
BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance(); BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance();
log.info("当前借款金额:{},借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance); log.info("当前借款金额:{},虚拟币借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance);
if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) { if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) {
log.info("当前借款单的剩余金额足够借款金额"); log.info("当前借款单的剩余金额足够借款金额");
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp); generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp);
...@@ -484,9 +486,28 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -484,9 +486,28 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO)); updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO));
orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance); orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance);
} }
log.info("当前orderChildPriceTemp:{}", orderChildPriceTemp); log.info("当前虚拟币orderChildPriceTemp:{}", orderChildPriceTemp);
} }
for (OwnerLoanRecord ownerLoanRecord : listMap.get(OwnerLoanRecordEnum.LoanType.FUND.getCode())) {
BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance();
log.info("当前借款金额:{},资金借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance);
if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) {
log.info("当前借款单的剩余金额足够借款金额");
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp);
updateList.add(ownerLoanRecord.setLoanResidueBalance(loanResidueBalance.subtract(orderChildPriceTemp)));
orderChildPriceTemp = BigDecimal.ZERO;
break;
} else {
log.info("当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余");
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, loanResidueBalance);
updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO));
orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance);
}
log.info("当前资金orderChildPriceTemp:{}", orderChildPriceTemp);
}
if (orderChildPriceTemp.compareTo(BigDecimal.ZERO) != 0) { if (orderChildPriceTemp.compareTo(BigDecimal.ZERO) != 0) {
//当前钱不够,需要记录,流程卡死,不往下走 //当前钱不够,需要记录,流程卡死,不往下走
...@@ -709,6 +730,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -709,6 +730,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
log.info("13.生成借款冻结流水"); log.info("13.生成借款冻结流水");
OwnerLoanAccount update = new OwnerLoanAccount(); OwnerLoanAccount update = new OwnerLoanAccount();
while (true) { while (true) {
//赋值
ownerLoanAccountUpdate(ownerLoanRecord, orderChildPrice, update); ownerLoanAccountUpdate(ownerLoanRecord, orderChildPrice, update);
Integer i = ownerLoanAccountDao.updateAccountCAS(update, LocalDateTime.now(), false); Integer i = ownerLoanAccountDao.updateAccountCAS(update, LocalDateTime.now(), false);
log.info("CAS更新结果:{}", i); log.info("CAS更新结果:{}", i);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论