diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 817398ed7..ec691efd1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -697,12 +697,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { dto.setOrderDetail(orderDetail); transactionService.doUpdateOrder(dto); - // 订单支付结算and退款 + // 订单支付结算and退款, delay商户部分解冻并退款, 非delay商户全部解冻并退款 orderPaymentSettlementAndRefund(orderBasicInfo); - // 记账 - // doUpdateClearingBill(orderSettleResult); - // 将卡/vin状态解锁 if (!StringUtils.equals("0000000000000000", data.getLogicCard())) { cardStatusUnlocked(orderBasicInfo.getLogicCard()); @@ -790,20 +787,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { return orderSettleResult; } - /** - * 不延迟商家订单处理逻辑 - * 例如:希晓 - * 相当于已经分账完成了 - * - * @param orderBasicInfo 订单信息 - * @param adapayMemberAccount 汇付用户信息 - * @param wechatAppId 小程序appId - * @return - */ - private OrderSettleResult notDelayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) { - return null; - } /** * 冻结订单金额 @@ -852,16 +836,23 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * @return */ private OrderSettleResult delayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) { - OrderSettleResult orderSettleResult; - // 延时分账的处理逻辑 - if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) { - // 余额支付的订单 - orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, wechatAppId); - } else { - // 在线支付,进行支付确认分账 - orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, wechatAppId); - } - return orderSettleResult; + + return null; + } + + /** + * 不延迟商家订单处理逻辑 + * 例如:希晓 + * 相当于已经分账完成了 + * + * @param orderBasicInfo 订单信息 + * @param adapayMemberAccount 汇付用户信息 + * @param wechatAppId 小程序appId + * @return + */ + private OrderSettleResult notDelayMerchantOrderProcessingLogic(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount, String wechatAppId) { + + return null; } /** @@ -1157,6 +1148,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { principalPay = principalPayRecord.getPayAmount(); } + // 计算需要退回的金额 Map returnAmountMap = calculateReturnAmount(principalPay, null, orderAmount); logger.info("结算订单:{}, 剩余金额退回余额, 订单消费金额:{}, 本金支付金额:{}, 赠送支付金额:{}, 退回金额map:{}", orderCode, orderAmount, principalPay, null, JSONObject.toJSONString(returnAmountMap)); @@ -1174,6 +1166,11 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { .build(); memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO); + // TODO 更新member_adapay_record + for (OrderPayRecord record : payRecordList) { + + } + // 更新order_pay_record // 更新订单支付记录 // List updatePayRecordList = Lists.newArrayList(); @@ -1248,15 +1245,15 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { for (OrderBasicInfo orderBasicInfo : orderBasicInfos) { try { OrderSettleResult orderSettleResult; - // if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) { - // // 余额支付的订单 - // orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, appId); - // } else { - // // 在线支付,进行支付确认分账 - // orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, appId); - // } + if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) { + // 余额支付的订单 + orderSettleResult = doBalancePaymentWithDelay(orderBasicInfo, adapayMemberAccount, appId); + } else { + // 在线支付,进行支付确认分账 + orderSettleResult = doPaymentConfirmWithDelay(orderBasicInfo, adapayMemberAccount, appId); + } - orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId); + // orderSettleResult = delayMerchantOrderProcessingLogic(orderBasicInfo, adapayMemberAccount, appId); if (orderSettleResult != null && AdapayStatusEnum.SUCCEEDED.getValue().equals(orderSettleResult.getStatus())) { // 应收金额 = 订单结算金额汇总