From 462462a79d95d7e475fa885ea91a6d8f9db659d4 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Mon, 28 Aug 2023 19:21:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A4=E6=98=93=E5=88=86=E8=B4=A6=20?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OrderBasicInfoServiceImpl.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) 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 c49a71383..de986cde6 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 @@ -1143,6 +1143,56 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { } } + private void balancePaymentOrderRefundV2(OrderBasicInfo orderBasicInfo) { + // 订单编号 + String orderCode = orderBasicInfo.getOrderCode(); + // 订单消费金额 + BigDecimal orderAmount = orderBasicInfo.getOrderAmount(); + // 查支付记录 + List payRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); + + Map payRecordMap = payRecordList.stream() + .collect(Collectors.toMap(OrderPayRecord::getPayMode, Function.identity(), (k1, k2) -> k1)); + // 取出本金支付金额 + BigDecimal principalPay = null; + + // 获取本金支付的记录 + OrderPayRecord principalPayRecord = payRecordMap.get(Constants.ONE); + if (principalPayRecord != null) { + principalPay = principalPayRecord.getPayAmount(); + } + + Map returnAmountMap = calculateReturnAmount(principalPay, null, orderAmount); + logger.info("结算订单:{}, 剩余金额退回余额, 订单消费金额:{}, 本金支付金额:{}, 赠送支付金额:{}, 退回金额map:{}", + orderCode, orderAmount, principalPay, null, JSONObject.toJSONString(returnAmountMap)); + + // 需要退回本金的金额 + BigDecimal returnPrincipal = returnAmountMap.get("returnPrincipal"); + + // 更新会员钱包 + UpdateMemberBalanceDTO updateMemberBalanceDTO = UpdateMemberBalanceDTO.builder() + .memberId(orderBasicInfo.getMemberId()) + .type(MemberWalletEnum.TYPE_IN.getValue()) // 进账 + .subType(MemberWalletEnum.SUBTYPE_ORDER_SETTLEMENT_REFUND.getValue()) // 订单结算退款 + .updatePrincipalBalance(returnPrincipal) + .relatedOrderCode(orderCode) + .build(); + memberBasicInfoService.updateMemberBalance(updateMemberBalanceDTO); + + // 更新order_pay_record + // 更新订单支付记录 + // List updatePayRecordList = Lists.newArrayList(); + // if (returnPrincipal != null && principalPayRecord != null) { + // principalPayRecord.setRefundAmount(returnPrincipal); + // updatePayRecordList.add(principalPayRecord); + // } + // if (CollectionUtils.isNotEmpty(updatePayRecordList)) { + // orderPayRecordService.updateBatch(updatePayRecordList); + // } + } + + + /** * 订单分账逻辑 * orderSplittingOperations