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

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

package com.clx.performance.service.impl.loan; package com.clx.performance.service.impl.loan;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -471,43 +472,50 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -471,43 +472,50 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
log.info("查询ownerLoanRecords:{}", JSONUtil.parse(ownerLoanRecords)); log.info("查询ownerLoanRecords:{}", JSONUtil.parse(ownerLoanRecords));
Map<Integer, List<OwnerLoanRecord>> listMap = ownerLoanRecords.stream().collect(Collectors.groupingBy(OwnerLoanRecord::getLoanType)); Map<Integer, List<OwnerLoanRecord>> listMap = ownerLoanRecords.stream().collect(Collectors.groupingBy(OwnerLoanRecord::getLoanType));
for (OwnerLoanRecord ownerLoanRecord : listMap.get(OwnerLoanRecordEnum.LoanType.VIRTUAL_CURRENCY.getCode())) { List<OwnerLoanRecord> verList = listMap.get(OwnerLoanRecordEnum.LoanType.VIRTUAL_CURRENCY.getCode());
BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance(); if (CollectionUtil.isNotEmpty(verList)) {
log.info("当前借款金额:{},虚拟币借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance); for (OwnerLoanRecord ownerLoanRecord : verList) {
if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) { BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance();
log.info("当前借款单的剩余金额足够借款金额"); log.info("当前借款金额:{},虚拟币借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance);
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp); if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) {
updateList.add(ownerLoanRecord.setLoanResidueBalance(loanResidueBalance.subtract(orderChildPriceTemp))); log.info("当前借款单的剩余金额足够借款金额");
orderChildPriceTemp = BigDecimal.ZERO; generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp);
break; updateList.add(ownerLoanRecord.setLoanResidueBalance(loanResidueBalance.subtract(orderChildPriceTemp)));
} else { orderChildPriceTemp = BigDecimal.ZERO;
log.info("当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余"); break;
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, loanResidueBalance); } else {
updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO)); log.info("当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余");
orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance); generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, loanResidueBalance);
updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO));
orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance);
}
log.info("当前虚拟币orderChildPriceTemp:{}", orderChildPriceTemp);
} }
log.info("当前虚拟币orderChildPriceTemp:{}", orderChildPriceTemp);
} }
for (OwnerLoanRecord ownerLoanRecord : listMap.get(OwnerLoanRecordEnum.LoanType.FUND.getCode())) { List<OwnerLoanRecord> fundList = listMap.get(OwnerLoanRecordEnum.LoanType.FUND.getCode());
BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance(); if (CollectionUtil.isNotEmpty(fundList)) {
log.info("当前借款金额:{},资金借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance); for (OwnerLoanRecord ownerLoanRecord : fundList) {
if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) { BigDecimal loanResidueBalance = ownerLoanRecord.getLoanResidueBalance();
log.info("当前借款单的剩余金额足够借款金额"); log.info("当前借款金额:{},资金借款单号{},借款剩余金额{}", orderChildPriceTemp, ownerLoanRecord.getLoanNo(), loanResidueBalance);
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp); if (loanResidueBalance.compareTo(orderChildPriceTemp) >= 0) {
updateList.add(ownerLoanRecord.setLoanResidueBalance(loanResidueBalance.subtract(orderChildPriceTemp))); log.info("当前借款单的剩余金额足够借款金额");
orderChildPriceTemp = BigDecimal.ZERO; generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, orderChildPriceTemp);
break; updateList.add(ownerLoanRecord.setLoanResidueBalance(loanResidueBalance.subtract(orderChildPriceTemp)));
} else { orderChildPriceTemp = BigDecimal.ZERO;
log.info("当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余"); break;
generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, loanResidueBalance); } else {
updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO)); log.info("当前借款单的剩余金额不够抵扣借款金额,先进行扣除当前借款所有剩余");
orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance); generateFrozenOwnerLoanRunningWater(ownerLoanRecord, childNo, loanResidueBalance);
updateList.add(ownerLoanRecord.setLoanResidueBalance(BigDecimal.ZERO));
orderChildPriceTemp = orderChildPriceTemp.subtract(loanResidueBalance);
}
log.info("当前资金orderChildPriceTemp:{}", orderChildPriceTemp);
} }
log.info("当前资金orderChildPriceTemp:{}", orderChildPriceTemp);
} }
if (orderChildPriceTemp.compareTo(BigDecimal.ZERO) != 0) { if (orderChildPriceTemp.compareTo(BigDecimal.ZERO) != 0) {
//当前钱不够,需要记录,流程卡死,不往下走 //当前钱不够,需要记录,流程卡死,不往下走
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论