From ed47e1e1e04a70fbae4cb816e2db1c5cfacd9d52 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Thu, 11 Jan 2024 17:28:45 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=AE=A1=E7=AE=97=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E6=8A=98=E6=89=A3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/java/SpringBootTestController.java | 9 +++ .../impl/OrderBasicInfoServiceImpl.java | 4 +- .../DelayMerchantProgramLogic.java | 12 +++- .../mapper/pile/OrderBasicInfoMapper.xml | 66 ++++++------------- 4 files changed, 38 insertions(+), 53 deletions(-) diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 602b8eeb3..2e3c7ae6d 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -572,6 +572,15 @@ public class SpringBootTestController { System.out.println(drawCashDetailVO); } + @Test + public void refundOrderTest() { + String orderCode = "C80410085692"; + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId()); + AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode); + orderLogic.refundOrder(orderBasicInfo); + } + @Test public void queryPaymentConfirmListTest() { QueryPaymentConfirmDTO dto = new QueryPaymentConfirmDTO(); 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 1206fcced..13326946f 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 @@ -2360,8 +2360,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { @Override public Map generateOrderByCard(GenerateOrderDTO dto) throws Exception { logger.info("充电桩主动申请启动充电生成订单 param:{}", JSON.toJSONString(dto)); - // BigDecimal totalAccountAmount = BigDecimal.ZERO; - BigDecimal accountBalance = BigDecimal.ZERO; + BigDecimal accountBalance; String payMode; // 判断当前用户是否为平台测试员 PlatformTesterVO platformTesterVO = memberBasicInfoService.selectPlatformTesterStatus(dto.getMemberId()); @@ -2375,7 +2374,6 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 是平台测试员 accountBalance = Constants.whitelistDefaultAmount; payMode = OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue(); - } else if (pileStationWhitelist != null) { // 站点白名单 accountBalance = Constants.whitelistDefaultAmount; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java index 42c851cad..639b8a310 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/DelayMerchantProgramLogic.java @@ -584,13 +584,19 @@ public class DelayMerchantProgramLogic extends AbstractProgramLogic { Map> payRecordMap = payRecordList.stream().collect(Collectors.groupingBy(OrderPayRecord::getPayMode)); // 获取本金支付的记录 List principalPayRecordList = payRecordMap.get(OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue()); - BigDecimal principalPay = principalPayRecordList.stream().map(OrderPayRecord::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal principalPay = null; + if (CollectionUtils.isNotEmpty(principalPayRecordList)) { + principalPay = principalPayRecordList.stream().map(OrderPayRecord::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + } // 获取赠送金支付的记录 List giftPayRecordList = payRecordMap.get(OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue()); - BigDecimal giftPay = giftPayRecordList.stream().map(OrderPayRecord::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal giftPay = null; + if (CollectionUtils.isNotEmpty(giftPayRecordList)) { + giftPay = giftPayRecordList.stream().map(OrderPayRecord::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + } // 计算需要退回的金额 - Map returnAmountMap = calculateReturnAmount(principalPay, giftPay, orderAmount); + Map returnAmountMap = calculateReturnAmount(principalPay, giftPay, orderAmount, orderBasicInfo.getDiscountAmount()); logger.info("结算订单:{}, 剩余金额退回余额, 订单消费金额:{}, 本金支付金额:{}, 赠送支付金额:{}, 退回金额map:{}", orderCode, orderAmount, principalPay, null, JSONObject.toJSONString(returnAmountMap)); diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 5e4628e0e..ac943c168 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -1425,45 +1425,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -2014,6 +1977,9 @@ virtual_amount = #{virtualAmount}, + + discount_amount = #{discountAmount}, + settle_amount = #{settleAmount}, @@ -2128,9 +2094,15 @@ total_electricity_amount = #{totalElectricityAmount}, + + discount_electricity_amount = #{discountElectricityAmount}, + total_service_amount = #{totalServiceAmount}, + + discount_service_amount = #{discountServiceAmount}, + sharp_price = #{sharpPrice}, @@ -2205,7 +2177,7 @@ - select from order_basic_info @@ -2215,7 +2187,7 @@ and del_flag = '0' - select from order_basic_info @@ -2223,7 +2195,7 @@ and transaction_code = #{transactionCode,jdbcType=VARCHAR} - select from order_basic_info @@ -2316,7 +2288,7 @@ group by DATE_FORMAT(t1.create_time, '%Y-%m-%d') - select from order_basic_info @@ -2326,7 +2298,7 @@ and create_time #{createTime,jdbcType=VARCHAR} - select from order_basic_info @@ -2376,7 +2348,7 @@ and t1.order_code = #{orderCode,jdbcType=VARCHAR} - select from order_basic_info @@ -2415,7 +2387,7 @@ AND t1.del_flag = '0' - select from order_basic_info @@ -2511,7 +2483,7 @@ #{item,jdbcType=VARCHAR} - select from order_basic_info @@ -2559,7 +2531,7 @@ - select from order_basic_info