diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index ee68ade9e..9ba590979 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -738,7 +738,11 @@ public class OrderService { data.setStopReasonMsg("人工结算订单,操作人:" + SecurityUtils.getUsername()); // 停止原因 // 结算订单 - orderBasicInfoService.settleOrder(data, orderBasicInfo); + // orderBasicInfoService.settleOrder(data, orderBasicInfo); + // 新逻辑 + String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId()); + AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); + orderLogic.settleOrder(data, orderBasicInfo); // 发送停止充电指令 pileRemoteService.remoteStopCharging(orderBasicInfo.getPileSn(), orderBasicInfo.getConnectorCode()); diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 05fcbc768..9f89e8b29 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -1939,7 +1939,7 @@ public class SpringBootTestController { .valleyUsedElectricity("0") .build(); - orderBasicInfoService.settleOrder(data, orderInfo); + // orderBasicInfoService.settleOrder(data, orderInfo); } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java index df0b5b189..cbbd9a2bb 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java @@ -23,6 +23,8 @@ import com.jsowell.pile.domain.ThirdPartyStationRelation; import com.jsowell.pile.domain.ThirdpartyParkingConfig; import com.jsowell.pile.dto.lutongyunting.BindCouponDTO; import com.jsowell.pile.service.*; +import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; +import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.thirdparty.lianlian.service.LianLianService; @@ -67,10 +69,7 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { private IOrderBasicInfoService orderBasicInfoService; @Autowired - private IPileAuthCardService pileAuthCardService; - - @Autowired - private IThirdPartySettingInfoService thirdPartySettingInfoService; + private IPileMerchantInfoService pileMerchantInfoService; @Autowired private LianLianService lianLianService; @@ -78,9 +77,6 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { @Autowired private IThirdPartyStationRelationService thirdPartyStationRelationService; - @Autowired - private IMemberPlateNumberRelationService memberPlateNumberRelationService; - @Autowired private IPileStationInfoService pileStationInfoService; @@ -625,7 +621,11 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { // 结算订单操作 try { - orderBasicInfoService.settleOrder(data, orderBasicInfo); + // orderBasicInfoService.settleOrder(data, orderBasicInfo); + // 新逻辑 + String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderBasicInfo.getMerchantId()); + AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); + orderLogic.settleOrder(data, orderBasicInfo); } catch (Exception e) { log.error("结算订单发生异常", e); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java index ace40cf95..c9c532749 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java @@ -110,7 +110,9 @@ public interface IPileMerchantInfoService { String getDelayModeByWechatAppId(String wechatAppId); - /** + String getDelayModeByMerchantId(String merchantId); + + /** * 通过merchantId获取一级运营商信息 */ PileMerchantInfo getFirstLevelMerchantByMerchantId(String merchantId); 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 06df5037c..d9c5a96e3 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 @@ -38,6 +38,8 @@ import com.jsowell.pile.domain.*; import com.jsowell.pile.dto.*; import com.jsowell.pile.mapper.OrderBasicInfoMapper; import com.jsowell.pile.service.*; +import com.jsowell.pile.service.orderlogic.AbstractOrderLogic; +import com.jsowell.pile.service.orderlogic.OrderLogicFactory; import com.jsowell.pile.transaction.dto.ClearingBillTransactionDTO; import com.jsowell.pile.transaction.dto.OrderTransactionDTO; import com.jsowell.pile.transaction.service.TransactionService; @@ -445,7 +447,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { .flatUsedElectricity(Constants.ZERO) .valleyUsedElectricity(Constants.ZERO) .build(); - settleOrder(data, orderInfo); + // settleOrder(data, orderInfo); + + // 新逻辑 + String mode = pileMerchantInfoService.getDelayModeByMerchantId(orderInfo.getMerchantId()); + AbstractOrderLogic orderLogic = OrderLogicFactory.getOrderLogic(mode); + orderLogic.settleOrder(data, orderInfo); } /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java index b445ce823..e8a2a856b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java @@ -422,6 +422,20 @@ public class PileMerchantInfoServiceImpl implements IPileMerchantInfoService { return merchant.getDelayMode(); } + /** + * 通过运营商id查询一级运营商配置的delayMode + * @param merchantId + * @return + */ + @Override + public String getDelayModeByMerchantId(String merchantId) { + PileMerchantInfo merchant = getFirstLevelMerchantByMerchantId(merchantId); + if (merchant == null) { + return null; + } + return merchant.getAppId(); + } + @Override public PileMerchantInfo getFirstLevelMerchantByMerchantId(String merchantId) { if (StringUtils.isBlank(merchantId)) {