From 06cac74a1817b68e98b4d788a2cececce557988f Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 26 Mar 2025 13:49:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E7=AE=97=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/uniapp/customer/TempController.java | 29 +++++++++++++++++++ .../java/com/jsowell/service/TempService.java | 16 ++++++++++ .../programlogic/AbstractProgramLogic.java | 6 ++-- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java index a07dcf5bd..1ed25f3da 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java @@ -7,6 +7,7 @@ import com.jsowell.adapay.service.AdapayService; import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.domain.AjaxResult; +import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.response.RestApiResponse; @@ -745,6 +746,34 @@ public class TempController extends BaseController { return response; } + /** + * 调试结算订单逻辑 + */ + @PostMapping("/testSettleOrderLogic") + public RestApiResponse testSettleOrderLogic(@RequestBody ApplyRefundDTO dto) { + RestApiResponse response; + try { + TransactionRecordsData data = TransactionRecordsData.builder() + .transactionCode(dto.getTransactionCode()) + .pileSn(dto.getPileSn()) + .connectorCode(dto.getConnectorCode()) + .startTime(dto.getStartTime()) + .endTime(dto.getEndTime()) + .sharpPrice(dto.getSharpPrice()) + .sharpUsedElectricity(dto.getSharpUsedElectricity()) + .sharpPlanLossElectricity() + .build(); + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(dto.getOrderCode()); + // 调试结算订单逻辑 + tempService.testSettleOrderLogic(data, orderBasicInfo); + response = new RestApiResponse<>(); + } catch (Exception e) { + logger.error("调试结算订单逻辑error,", e); + response = new RestApiResponse<>(); + } + return response; + } + /** * 重试订单退款接口/重试退款按钮 (批量) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java index e9cc89247..2515bc432 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/TempService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/TempService.java @@ -16,6 +16,7 @@ import com.jsowell.adapay.service.AdapayService; import com.jsowell.adapay.vo.OrderSplitResult; import com.jsowell.adapay.vo.PaymentInfo; import com.jsowell.common.annotation.CostTime; +import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.adapay.AdapayStatusEnum; import com.jsowell.common.enums.ykc.*; @@ -29,6 +30,8 @@ import com.jsowell.pile.dto.SettleOrderReportDTO; import com.jsowell.pile.mapper.OrderBasicInfoMapper; import com.jsowell.pile.mapper.PileMsgRecordMapper; import com.jsowell.pile.service.*; +import com.jsowell.pile.service.programlogic.AbstractProgramLogic; +import com.jsowell.pile.service.programlogic.DelayMerchantProgramLogic; import com.jsowell.pile.vo.web.*; import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; @@ -877,5 +880,18 @@ public class TempService { logger.info("计算订单折扣, orderCode:{}, memberId:{}, 订单折扣金额:{}, 电费折扣金额:{}, 服务费折扣金额:{}, 优惠后总消费金额:{}", orderCode, memberId, discountAmount, electricityAmountDiscount, serviceAmountDiscount, totalConsumeAmount); } + + public void testSettleOrderLogic(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) { + AbstractProgramLogic programLogic = new DelayMerchantProgramLogic(); + + // 获取更新数据后的orderBasicInfo对象 + programLogic.returnUpdateOrderBasicInfo(orderBasicInfo, data); + + // 获取更新数据后的orderDetail对象/更新订单详情 查询订单详情 修改订单数据 + OrderDetail orderDetail = programLogic.returnUpdateOrderDetail(orderBasicInfo, data); + + // 计算订单折扣 + programLogic.calculateOrderDiscountsV2(orderBasicInfo, orderDetail); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java index 1f5c94d99..addd2b834 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/programlogic/AbstractProgramLogic.java @@ -207,7 +207,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { * 专用方法,其他地方如果要用请仔细检查 * 【公共方法】 */ - protected void returnUpdateOrderBasicInfo(OrderBasicInfo orderBasicInfo, TransactionRecordsData data) { + public void returnUpdateOrderBasicInfo(OrderBasicInfo orderBasicInfo, TransactionRecordsData data) { // 订单编号 String orderCode = orderBasicInfo.getOrderCode(); // 消费金额就是订单总金额/交易记录传过来的消费金额, 四舍五入保留两位小数 @@ -276,7 +276,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { * * @return 查询并更新过数据的orderDetail */ - protected OrderDetail returnUpdateOrderDetail(OrderBasicInfo orderBasicInfo, TransactionRecordsData data) { + public OrderDetail returnUpdateOrderDetail(OrderBasicInfo orderBasicInfo, TransactionRecordsData data) { String orderCode = orderBasicInfo.getOrderCode(); BigDecimal orderAmount = orderBasicInfo.getOrderAmount(); // 更新订单详情 查询订单详情 修改订单数据 @@ -719,7 +719,7 @@ public abstract class AbstractProgramLogic implements InitializingBean { * @param orderBasicInfo 订单主表 * @param orderDetail 订单详情 */ - protected void calculateOrderDiscountsV2(OrderBasicInfo orderBasicInfo, OrderDetail orderDetail) { + public void calculateOrderDiscountsV2(OrderBasicInfo orderBasicInfo, OrderDetail orderDetail) { String memberId = orderBasicInfo.getMemberId(); // 会员id String stationId = orderBasicInfo.getStationId(); // 站点id String merchantId = orderBasicInfo.getMerchantId(); // 运营商id