update 分账逻辑

This commit is contained in:
2023-09-20 14:57:59 +08:00
parent 5953973437
commit ed9e316e53
2 changed files with 1027 additions and 233 deletions

View File

@@ -1317,6 +1317,32 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
return;
}
String merchantId = adapayMemberAccount.getMerchantId();
String appId = pileMerchantInfoService.queryAppIdByMerchantId(merchantId);
// 清分账单信息
ClearingBillInfo clearingBillInfo = new ClearingBillInfo();
clearingBillInfo.setBillStatus("1");
String clearingBillCode = "CLE" + IdUtils.getOrderCode();
clearingBillInfo.setClearingBillCode(clearingBillCode);
clearingBillInfo.setClearingTime(DateUtils.getNowDate());
clearingBillInfo.setMerchantId(merchantId);
clearingBillInfo.setOrderSource("1");
// 应收金额
BigDecimal receivableAmount = BigDecimal.ZERO;
// 应清分金额
BigDecimal shouldClearingAmount = BigDecimal.ZERO;
// 实际清分金额
BigDecimal actualClearingAmount = BigDecimal.ZERO;
// 手续费金额
BigDecimal feeAmount = BigDecimal.ZERO;
// 可提现金额
BigDecimal withdrawableAmount = BigDecimal.ZERO;
// 清分账单详情列表
List<ClearingBillDetail> billDetailList = Lists.newArrayList();
for (SettleOrderReport orderReport : stationReportList) {
String orderCodes = orderReport.getOrderCodes();
if (StringUtils.isBlank(orderCodes)) {
@@ -1329,30 +1355,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
continue;
}
// 清分账单信息
ClearingBillInfo clearingBillInfo = new ClearingBillInfo();
clearingBillInfo.setBillStatus("1");
String clearingBillCode = "CLE" + IdUtils.getOrderCode();
clearingBillInfo.setClearingBillCode(clearingBillCode);
clearingBillInfo.setClearingTime(DateUtils.getNowDate());
clearingBillInfo.setMerchantId(orderReport.getMerchantId());
clearingBillInfo.setOrderSource("1");
String appId = pileMerchantInfoService.queryAppIdByMerchantId(orderReport.getMerchantId());
// 应收金额
BigDecimal receivableAmount = BigDecimal.ZERO;
// 应清分金额
BigDecimal shouldClearingAmount = BigDecimal.ZERO;
// 实际清分金额
BigDecimal actualClearingAmount = BigDecimal.ZERO;
// 手续费金额
BigDecimal feeAmount = BigDecimal.ZERO;
// 可提现金额
BigDecimal withdrawableAmount = BigDecimal.ZERO;
// 清分账单详情列表
List<ClearingBillDetail> billDetailList = Lists.newArrayList();
// 执行分账
for (OrderBasicInfo orderBasicInfo : orderBasicInfos) {
try {
@@ -1391,23 +1393,23 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
logger.error("订单交易确认失败:{}", orderBasicInfo.getOrderCode(), e);
}
}
clearingBillInfo.setReceivableAmount(receivableAmount);
clearingBillInfo.setShouldClearingAmount(shouldClearingAmount);
clearingBillInfo.setFeeAmount(feeAmount);
clearingBillInfo.setWithdrawableAmount(withdrawableAmount);
clearingBillInfo.setActualClearingAmount(actualClearingAmount);
clearingBillInfo.setCreateTime(DateUtils.getNowDate());
clearingBillInfo.setDelFlag(DelFlagEnum.NORMAL.getValue());
clearingBillInfo.setBillStatus("2");
clearingBillInfo.setTradeDate(orderReport.getTradeDate());
// 保存清分账单
ClearingBillTransactionDTO dto = new ClearingBillTransactionDTO();
dto.setClearingBillInfo(clearingBillInfo);
dto.setBillDetailList(billDetailList);
transactionService.createClearingBill(dto);
}
clearingBillInfo.setReceivableAmount(receivableAmount);
clearingBillInfo.setShouldClearingAmount(shouldClearingAmount);
clearingBillInfo.setFeeAmount(feeAmount);
clearingBillInfo.setWithdrawableAmount(withdrawableAmount);
clearingBillInfo.setActualClearingAmount(actualClearingAmount);
clearingBillInfo.setCreateTime(DateUtils.getNowDate());
clearingBillInfo.setDelFlag(DelFlagEnum.NORMAL.getValue());
clearingBillInfo.setBillStatus("2");
clearingBillInfo.setTradeDate(stationReportList.get(0).getTradeDate());
// 保存清分账单
ClearingBillTransactionDTO dto = new ClearingBillTransactionDTO();
dto.setClearingBillInfo(clearingBillInfo);
dto.setBillDetailList(billDetailList);
transactionService.createClearingBill(dto);
}
@Override
@@ -1471,15 +1473,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId,
adapayMemberAccount, deductionAmount, orderCode, wechatAppId);
// 换新的方法,逻辑不变,参数封装了
// PaymentConfirmOperation operation = new PaymentConfirmOperation();
// operation.setPaymentId(paymentId);
// operation.setConfirmAmt(deductionAmount);
// operation.setOrderCode(orderCode);
// operation.setAdapayMemberId(adapayMemberAccount.getAdapayMemberId());
// operation.setMerchantKey(wechatAppId);
// PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(operation);
if (paymentConfirmResponse != null && paymentConfirmResponse.isNotFailed()) {
confirmAmt = confirmAmt.add(new BigDecimal(paymentConfirmResponse.getConfirm_amt()));
feeAmt = feeAmt.add(new BigDecimal(paymentConfirmResponse.getFee_amt()));
@@ -1604,15 +1597,6 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(paymentId,
adapayMemberAccount, settleAmount, orderCode, wechatAppId);
// PaymentConfirmOperation operation = new PaymentConfirmOperation();
// operation.setPaymentId(paymentId);
// operation.setConfirmAmt(settleAmount);
// operation.setOrderCode(orderCode);
// operation.setAdapayMemberId(adapayMemberAccount.getAdapayMemberId());
// operation.setMerchantKey(wechatAppId);
// PaymentConfirmResponse paymentConfirmResponse = adapayService.createPaymentConfirmRequest(operation);
// 分账接口返回的信息
OrderSettleResult result = new OrderSettleResult();
result.setConfirmAmt(paymentConfirmResponse.getConfirm_amt());