子订单追加分账

This commit is contained in:
Hawking 2023-05-24 11:27:49 +08:00
parent 352a4323d0
commit 09a0b0696c
2 changed files with 21 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package com.ghy.common.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* 处理金额工具类
@ -74,4 +75,7 @@ public class MoneyUtil {
return lte(a, BigDecimal.ZERO);
}
public static String toS(BigDecimal money) {
return money.setScale(2, RoundingMode.UNNECESSARY).toString();
}
}

View File

@ -1,5 +1,6 @@
package com.ghy.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ghy.common.adapay.AdapayErrorCode;
import com.ghy.common.adapay.model.AdapayStatusEnum;
@ -454,6 +455,22 @@ public class OrderDetailServiceImpl implements OrderDetailService {
// 子单收款人的memberId
String memberId = AdapayUtils.getWorkerMemberId(financialDetail.getPayeeId(), financialDetail.getDeptId());
List<OrderAddSubtract> oasList = orderAddSubtractMapper.select(new OrderAddSubtract()
.setOrderDetailId(orderDetailId).setPayStatus(PayStatus.PAID.getCode()));
// --------------------- 追加分账部分 start ---------------------
List<OrderAddSubtract> adds = oasList.stream().filter(oas -> MoneyUtil.gt0(oas.getMoney())).collect(Collectors.toList());
for (OrderAddSubtract oas : adds) {
String orderNo = payment.getOrderNo() + "_" + oas.getPaymentId() + "_" + System.currentTimeMillis();
ArrayList<DivMember> divMembers = new ArrayList<>();
divMembers.add(new DivMember(memberId, MoneyUtil.toS(oas.getMoney()), true));
//调用分账
logger.info("子订单[{}]的追加单[{}]发起分账: {}", orderDetailId, oas.getId(), JSON.toJSONString(divMembers));
JSONObject response = adapayService.paymentConfirm(financialDetail.getDeptId(), oas.getPaymentId(),
orderNo, MoneyUtil.toS(oas.getMoney()), divMembers, null, null);
logger.info("子订单[{}]的追加单[{}]分账结果: {}", orderDetailId, oas.getId(), response.toString());
}
// --------------------- 追加分账部分 end ---------------------
// --------------------- 改价单分账部分 start ---------------------
// 查询子订单的加价记录
List<FinancialChangeRecord> financialChangeRecords = financialChangeRecordService.selectByDetailIds(String.valueOf(orderDetailId));