|
|
@@ -87,6 +87,7 @@ import com.sckw.system.api.model.dto.res.*;
|
|
|
import com.sckw.transport.api.dubbo.ParkingWalletFeeRemoteService;
|
|
|
import com.sckw.transport.api.dubbo.TransportRemoteStatisticsService;
|
|
|
import com.sckw.transport.api.dubbo.TransportRemoteService;
|
|
|
+import com.sckw.transport.api.feign.ParkingWalletFeeFeignService;
|
|
|
import com.sckw.transport.api.model.dto.RawOreOrderExecutionDto;
|
|
|
import com.sckw.transport.api.model.dto.TradeOrderWaybillAggDto;
|
|
|
import com.sckw.transport.api.model.param.AddLogisticOrderParam;
|
|
|
@@ -176,6 +177,10 @@ public class KwoTradeOrderService {
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
|
|
|
private ParkingWalletFeeRemoteService parkingWalletFeeRemoteService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ParkingWalletFeeFeignService parkingWalletFeeFeignService;
|
|
|
+
|
|
|
+
|
|
|
@Autowired
|
|
|
private PaymentFeignService paymentFeignService;
|
|
|
|
|
|
@@ -2252,7 +2257,8 @@ public class KwoTradeOrderService {
|
|
|
feeFreezeParam.setPurchaseQuantity(tradeOrderParam.getAmount());
|
|
|
feeFreezeParam.setOperatorId(LoginUserHolder.getUserId());
|
|
|
log.info("贸易订单下单应用收费策略,orderNo:{}, feeFreezeParam:{}", order.getTOrderNo(), JSON.toJSONString(feeFreezeParam));
|
|
|
- ParkingWalletFeeFreezeResult feeFreezeResult = parkingWalletFeeRemoteService.applyChargeStrategyFreeze(feeFreezeParam);
|
|
|
+ ParkingWalletFeeFreezeResult feeFreezeResult = resolveParkingWalletFeeFeignResult(
|
|
|
+ parkingWalletFeeFeignService.applyChargeStrategyFreeze(feeFreezeParam), "服务费冻结");
|
|
|
fillChargeStrategyInfo(order, feeFreezeResult);
|
|
|
log.info("贸易订单收费策略处理完成,orderNo:{}, feeFreezeResult:{}", order.getTOrderNo(), JSON.toJSONString(feeFreezeResult));
|
|
|
|
|
|
@@ -2651,8 +2657,8 @@ public class KwoTradeOrderService {
|
|
|
serviceFeeUnfreezeParam.setOperatorId(LoginUserHolder.getUserId());
|
|
|
log.info("贸易订单审核拒绝解冻服务费,orderNo:{}, param:{}",
|
|
|
kwoTradeOrder.getTOrderNo(), JSON.toJSONString(serviceFeeUnfreezeParam));
|
|
|
- ParkingWalletFeeFreezeResult unfreezeResult =
|
|
|
- parkingWalletFeeRemoteService.unfreezeChargeStrategy(serviceFeeUnfreezeParam);
|
|
|
+ ParkingWalletFeeFreezeResult unfreezeResult = resolveParkingWalletFeeFeignResult(
|
|
|
+ parkingWalletFeeFeignService.unfreezeChargeStrategy(serviceFeeUnfreezeParam), "服务费解冻");
|
|
|
serviceFeeBalance = unfreezeResult.getServiceFeeBalance();
|
|
|
}
|
|
|
|
|
|
@@ -2961,10 +2967,37 @@ public class KwoTradeOrderService {
|
|
|
}
|
|
|
Long proEntId = unitMap.get(String.valueOf(1)).getEntId();
|
|
|
Long supEntId = unitMap.get(String.valueOf(2)).getEntId();
|
|
|
- resp.setServiceFeeBalance(parkingWalletFeeRemoteService.queryServiceFeeBalance(proEntId, supEntId));
|
|
|
+ resp.setServiceFeeBalance(resolveParkingWalletFeeFeignResult(
|
|
|
+ parkingWalletFeeFeignService.queryServiceFeeBalance(proEntId, supEntId), "服务费余额查询"));
|
|
|
return resp;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 统一解析服务费 Feign 调用结果,避免调用点遗漏空响应、失败码和空数据判断。
|
|
|
+ *
|
|
|
+ * @param result Feign 返回结果
|
|
|
+ * @param operationName 业务操作名称
|
|
|
+ * @param <T> 返回数据类型
|
|
|
+ * @return Feign 响应数据
|
|
|
+ */
|
|
|
+ static <T> T resolveParkingWalletFeeFeignResult(BaseResult<T> result, String operationName) {
|
|
|
+ if (result == null) {
|
|
|
+ log.error("{}失败,服务费Feign响应为空", operationName);
|
|
|
+ throw new BusinessException(operationName + "失败,服务费响应为空");
|
|
|
+ }
|
|
|
+ if (result.getCode() != HttpStatus.SUCCESS_CODE) {
|
|
|
+ log.error("{}失败,服务费Feign返回失败,code:{},message:{}",
|
|
|
+ operationName, result.getCode(), result.getMessage());
|
|
|
+ throw new BusinessException(operationName + "失败:" + result.getMessage());
|
|
|
+ }
|
|
|
+ if (result.getData() == null) {
|
|
|
+ log.error("{}失败,服务费Feign返回数据为空,code:{},message:{}",
|
|
|
+ operationName, result.getCode(), result.getMessage());
|
|
|
+ throw new BusinessException(operationName + "失败,服务费返回数据为空");
|
|
|
+ }
|
|
|
+ return result.getData();
|
|
|
+ }
|
|
|
+
|
|
|
@NotNull
|
|
|
private List<LogisticsEntDtoVO> checkAutoContractLogOrder(Map<String, KwoTradeOrderUnit> unitMap, KwoTradeOrderGoods byOrderId, TradeContractResDto tradeContractResDto) {
|
|
|
KwoTradeOrderUnit tradeOrderUnit = unitMap.get(String.valueOf(Global.NUMERICAL_TWO));
|
|
|
@@ -3121,7 +3154,8 @@ public class KwoTradeOrderService {
|
|
|
order.getTOrderNo(), proEntId, supEntId, transportNetWeight, order.getChargeStrategyId(),
|
|
|
order.getChargeStrategyAmount(), settleParam.getOperatorId());
|
|
|
|
|
|
- ParkingWalletFeeFreezeResult settleResult = parkingWalletFeeRemoteService.settleChargeStrategy(settleParam);
|
|
|
+ ParkingWalletFeeFreezeResult settleResult = resolveParkingWalletFeeFeignResult(
|
|
|
+ parkingWalletFeeFeignService.settleChargeStrategy(settleParam), "服务费完结结算");
|
|
|
log.info("服务费完结结算完成,订单号:{}, 扣减金额:{}, 收费策略ID:{}, 收费策略描述:{}, 扣减后服务费余额:{}",
|
|
|
order.getTOrderNo(), settleResult.getFreezeAmount(), settleResult.getChargeStrategyId(),
|
|
|
settleResult.getChargeStrategyDesc(), settleResult.getServiceFeeBalance());
|