|
@@ -799,91 +799,15 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
log.info("延时分账异步回调验签失败------------------");
|
|
|
return "验签失败";
|
|
|
}
|
|
|
- //分账的时候防止相同订单号,前面加了FZ,切割掉2位还原
|
|
|
- String orderRequestNo = data.getRt7_orderId().substring(5);
|
|
|
- //切2位是splict account表orderRequestNo
|
|
|
- String substring = data.getRt7_orderId().substring(2);
|
|
|
+ // 子订单id
|
|
|
+ String shopOrderId = data.getRt7_orderId().substring(5);
|
|
|
String status = data.getRt10_orderStatus();
|
|
|
log.info("【延时分账回调】>>>>>>>>>>分账状态:" + status);
|
|
|
if (!"SUCCESS".equals(status)) {
|
|
|
return "分账失败";
|
|
|
}
|
|
|
// 修改收款分账状态为1
|
|
|
- payOrderMapper.updateBySplitStatusByNo(orderRequestNo);
|
|
|
-
|
|
|
- List<SplitAccountPo> splitAccountList = payOrderMapper.getSplitAccountList(substring);
|
|
|
- if (splitAccountList != null && splitAccountList.size() > 0) {
|
|
|
- Integer orderId = splitAccountList.get(0).getOrderId();
|
|
|
- List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderListByOrderId(orderId);
|
|
|
- Integer shopOrderId = null;
|
|
|
- String shopOrderNo = "";
|
|
|
- for (SplitAccountPo account : splitAccountList) {
|
|
|
- log.info("【延时分账回调】>>>>>>>>>>保存应付付供应商:" + account.getShopId());
|
|
|
- // 本次付供应商金额(分账金额)
|
|
|
- Double splitAmount = account.getSplitAccount();
|
|
|
- orderId = account.getOrderId();
|
|
|
- Integer shopId = account.getShopId();
|
|
|
- for (ShopOrderVo shopOrder : shopOrderList) {
|
|
|
- if (shopId.equals(shopOrder.getShopId())) {
|
|
|
- shopOrderId = shopOrder.getShopOrderId();
|
|
|
- shopOrderNo = shopOrder.getShopOrderNo();
|
|
|
- // 已付供应商金额
|
|
|
- Double paidAmount = payOrderMapper.getPaidShopAmount(shopOrderId);
|
|
|
- Double paidShop = MathUtil.add(paidAmount, splitAmount).doubleValue();
|
|
|
- shopOrder.setPayedShopAmount(paidShop);
|
|
|
-// if (MathUtil.compare(shopOrder.getShouldPayShopAmount(), paidShop) == 0) {
|
|
|
- shopOrder.setPayStatus(3);
|
|
|
-// } else {
|
|
|
-// shopOrder.setPayStatus(2);
|
|
|
-// }
|
|
|
- // 修改子订单付款状态及付款金额
|
|
|
- payOrderMapper.updateShopOrderByPayStatus(shopOrderId, paidShop, shopOrder.getPayStatus());
|
|
|
- }
|
|
|
- }
|
|
|
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- String currentTime = format.format(new Date());
|
|
|
- // 保存付款单表
|
|
|
- PayShopPo payShop = new PayShopPo();
|
|
|
- payShop.setShopId(shopId);
|
|
|
- payShop.setName("线上支付分账");
|
|
|
- payShop.setTotalAmount(splitAmount);
|
|
|
- payShop.setWipePayment(0d);
|
|
|
- payShop.setPayType(6);
|
|
|
- payShop.setStatus(1);
|
|
|
- payShop.setDelFlag(0);
|
|
|
- payShop.setApplyTime(currentTime);
|
|
|
- payShop.setReviewTime(currentTime);
|
|
|
- payShop.setPayTime(currentTime);
|
|
|
- payOrderMapper.insertPayShop(payShop);
|
|
|
- // 保存 付供应商记录
|
|
|
- PayShopRecordPo shopRecord = new PayShopRecordPo();
|
|
|
- shopRecord.setShopId(shopId);
|
|
|
- shopRecord.setShopOrderId(shopOrderId);
|
|
|
- shopRecord.setShopOrderNo(shopOrderNo);
|
|
|
- shopRecord.setPayAmount(splitAmount);
|
|
|
- shopRecord.setWipePayment(0d);
|
|
|
- shopRecord.setPayType(6);
|
|
|
- shopRecord.setPayTime(currentTime);
|
|
|
- shopRecord.setPayShopId(payShop.getId());
|
|
|
- shopRecord.setStatus(1);
|
|
|
- shopRecord.setDelFlag(0);
|
|
|
- payOrderMapper.insertPayShopRecord(shopRecord);
|
|
|
- }
|
|
|
- // 子订单是否全部付款
|
|
|
- boolean isPay = true;
|
|
|
- for (ShopOrderVo shopOrder : shopOrderList) {
|
|
|
- if (3 != shopOrder.getPayStatus()) {
|
|
|
- isPay = false;
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- // 修改主订单付款状态
|
|
|
- if (isPay) {
|
|
|
- payOrderMapper.updateOrderByPayStatus(orderId, 3);
|
|
|
- } else {
|
|
|
- payOrderMapper.updateOrderByPayStatus(orderId, 2);
|
|
|
- }
|
|
|
- }
|
|
|
+ payOrderMapper.updateBySplitStatusByNo(shopOrderId);
|
|
|
} catch (Exception e) {
|
|
|
log.error("【延时分账回调】>>>>>>>>>>分账异步通知异常", e);
|
|
|
return "分账失败";
|