update 订单逻辑改造工厂模式

This commit is contained in:
2023-09-01 15:45:04 +08:00
parent fbe05c8c6b
commit fbe64887f5
6 changed files with 39 additions and 12 deletions

View File

@@ -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());

View File

@@ -1939,7 +1939,7 @@ public class SpringBootTestController {
.valleyUsedElectricity("0")
.build();
orderBasicInfoService.settleOrder(data, orderInfo);
// orderBasicInfoService.settleOrder(data, orderInfo);
}

View File

@@ -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);
}

View File

@@ -110,7 +110,9 @@ public interface IPileMerchantInfoService {
String getDelayModeByWechatAppId(String wechatAppId);
/**
String getDelayModeByMerchantId(String merchantId);
/**
* 通过merchantId获取一级运营商信息
*/
PileMerchantInfo getFirstLevelMerchantByMerchantId(String merchantId);

View File

@@ -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);
}
/**

View File

@@ -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)) {