diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java index fcb6ad43d..e2123f5d8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreOrderController.java @@ -370,28 +370,27 @@ public class StoreOrderController extends XktBaseController { //创建售后订单 AfterSaleApplyResultDTO afterSaleApplyResult = storeOrderService.createAfterSaleOrder(dto); //取消/拦截物流 - //TODO 调用失败如何补偿? - Set stopExpresses = afterSaleApplyResult.getNeedStopExpresses(); - for (ExpressSimpleDTO express : stopExpresses) { - boolean cancelSuccess = true; - ExpressManager expressManager = expressService.getExpressManager(express.getExpressId()); - if (EExpressStatus.PLACING.getValue().equals(express.getExpressStatus()) - || EExpressStatus.PLACED.getValue().equals(express.getExpressStatus())) { - cancelSuccess = expressManager.cancelShip(new ExpressCancelReqDTO( - express.getExpressReqNo(), - express.getExpressWaybillNo() - )); - logger.info("物流订单取消:waybillNo={},result={}", express.getExpressWaybillNo(), cancelSuccess); - } - if (!cancelSuccess || - EExpressStatus.PICKED_UP.getValue().equals(express.getExpressStatus())) { - boolean interceptSuccess = expressManager.interceptShip(new ExpressInterceptReqDTO( - express.getExpressReqNo(), - express.getExpressWaybillNo() - )); - logger.info("物流订单拦截:waybillNo={},result={}", express.getExpressWaybillNo(), interceptSuccess); - } - } +// Set stopExpresses = afterSaleApplyResult.getNeedStopExpresses(); +// for (ExpressSimpleDTO express : stopExpresses) { +// boolean cancelSuccess = true; +// ExpressManager expressManager = expressService.getExpressManager(express.getExpressId()); +// if (EExpressStatus.PLACING.getValue().equals(express.getExpressStatus()) +// || EExpressStatus.PLACED.getValue().equals(express.getExpressStatus())) { +// cancelSuccess = expressManager.cancelShip(new ExpressCancelReqDTO( +// express.getExpressReqNo(), +// express.getExpressWaybillNo() +// )); +// logger.info("物流订单取消:waybillNo={},result={}", express.getExpressWaybillNo(), cancelSuccess); +// } +// if (!cancelSuccess || +// EExpressStatus.PICKED_UP.getValue().equals(express.getExpressStatus())) { +// boolean interceptSuccess = expressManager.interceptShip(new ExpressInterceptReqDTO( +// express.getExpressReqNo(), +// express.getExpressWaybillNo() +// )); +// logger.info("物流订单拦截:waybillNo={},result={}", express.getExpressWaybillNo(), interceptSuccess); +// } +// } return success(afterSaleApplyResult.getStoreOrderId()); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/manager/impl/YtoExpressManagerImpl.java b/xkt/src/main/java/com/ruoyi/xkt/manager/impl/YtoExpressManagerImpl.java index 5250d3c43..4e639d830 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/manager/impl/YtoExpressManagerImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/manager/impl/YtoExpressManagerImpl.java @@ -99,64 +99,62 @@ public class YtoExpressManagerImpl implements ExpressManager { @Override public boolean cancelShip(ExpressCancelReqDTO cancelReqDTO) { - //取消订单,直接不发货不取件 -// Assert.notNull(cancelReqDTO); -// Assert.notEmpty(cancelReqDTO.getExpressReqNo()); -// YtoCancelOrderParam cancelOrderParam = new YtoCancelOrderParam(); -// cancelOrderParam.setLogisticsNo(cancelReqDTO.getExpressReqNo()); -// cancelOrderParam.setCancelDesc("订单取消"); -// try { -// String param = JSONUtil.toJsonStr(cancelOrderParam); -// String sign = YtoSignUtil.sign("korder_cancel_adapter", "v1", param, appSecret); -// YtoPublicRequest request = YtoPublicRequest.builder() -// .timestamp(System.currentTimeMillis()) -// .param(param) -// .format(YtoPublicRequest.EFormat.JSON) -// .sign(sign).build(); -// String rtnStr = HttpUtil.post(gatewayUrl + "open/korder_cancel_adapter/v1/av7bfQ/" + appKey, -// JSONUtil.toJsonStr(request)); -// log.info("圆通订单取消返回信息: {}", rtnStr); -// JSONObject rtnJson = JSONUtil.parseObj(rtnStr); -// String logisticsNo = rtnJson.getStr("logisticsNo"); -// if (StrUtil.isNotEmpty(logisticsNo) -// && logisticsNo.equals(cancelOrderParam.getLogisticsNo())) { -// return true; -// } -// } catch (Exception e) { -// log.error("圆通订单取消异常", e); -// } -// log.warn("圆通订单取消失败: {}", cancelReqDTO); + Assert.notNull(cancelReqDTO); + Assert.notEmpty(cancelReqDTO.getExpressReqNo()); + YtoCancelOrderParam cancelOrderParam = new YtoCancelOrderParam(); + cancelOrderParam.setLogisticsNo(cancelReqDTO.getExpressReqNo()); + cancelOrderParam.setCancelDesc("订单取消"); + try { + String param = JSONUtil.toJsonStr(cancelOrderParam); + String sign = YtoSignUtil.sign("korder_cancel_adapter", "v1", param, appSecret); + YtoPublicRequest request = YtoPublicRequest.builder() + .timestamp(System.currentTimeMillis()) + .param(param) + .format(YtoPublicRequest.EFormat.JSON) + .sign(sign).build(); + String rtnStr = HttpUtil.post(gatewayUrl + "open/korder_cancel_adapter/v1/av7bfQ/" + appKey, + JSONUtil.toJsonStr(request)); + log.info("圆通订单取消返回信息: {}", rtnStr); + JSONObject rtnJson = JSONUtil.parseObj(rtnStr); + String logisticsNo = rtnJson.getStr("logisticsNo"); + if (StrUtil.isNotEmpty(logisticsNo) + && logisticsNo.equals(cancelOrderParam.getLogisticsNo())) { + return true; + } + } catch (Exception e) { + log.error("圆通订单取消异常", e); + } + log.warn("圆通订单取消失败: {}", cancelReqDTO); return false; } @Override public boolean interceptShip(ExpressInterceptReqDTO interceptReqDTO) { - //TODO 未对接 -// Assert.notNull(interceptReqDTO); -// Assert.notEmpty(interceptReqDTO.getExpressWaybillNo()); -// YtoInterceptReturnParam interceptReturnParam = new YtoInterceptReturnParam(); -// interceptReturnParam.setWaybillNo(interceptReqDTO.getExpressWaybillNo()); -// interceptReturnParam.setWantedDesc("拦截退回"); -// try { -// String param = JSONUtil.toJsonStr(interceptReturnParam); -// String sign = YtoSignUtil.sign("wanted_report_adapter", "v1", param, appSecret); -// YtoPublicRequest request = YtoPublicRequest.builder() -// .timestamp(System.currentTimeMillis()) -// .param(param) -// .format(YtoPublicRequest.EFormat.JSON) -// .sign(sign).build(); -// String rtnStr = HttpUtil.post(gatewayUrl + "open/wanted_report_adapter/v1/av7bfQ/" + appKey, -// JSONUtil.toJsonStr(request)); -// log.info("圆通订单拦截返回信息: {}", rtnStr); -// JSONObject rtnJson = JSONUtil.parseObj(rtnStr); -// Integer statusCode = rtnJson.getInt("statusCode"); -// if (statusCode != null && statusCode == 0) { -// return true; -// } -// } catch (Exception e) { -// log.error("圆通订单拦截异常", e); -// } -// log.warn("圆通订单拦截失败: {}", interceptReqDTO); + Assert.notNull(interceptReqDTO); + Assert.notEmpty(interceptReqDTO.getExpressWaybillNo()); + YtoInterceptReturnParam interceptReturnParam = new YtoInterceptReturnParam(); + interceptReturnParam.setWaybillNo(interceptReqDTO.getExpressWaybillNo()); + interceptReturnParam.setWantedDesc("拦截退回"); + try { + String param = JSONUtil.toJsonStr(interceptReturnParam); + String sign = YtoSignUtil.sign("wanted_report_adapter", "v1", param, appSecret); + YtoPublicRequest request = YtoPublicRequest.builder() + .timestamp(System.currentTimeMillis()) + .param(param) + .format(YtoPublicRequest.EFormat.JSON) + .sign(sign).build(); + String rtnStr = HttpUtil.post(gatewayUrl + "open/wanted_report_adapter/v1/av7bfQ/" + appKey, + JSONUtil.toJsonStr(request)); + log.info("圆通订单拦截返回信息: {}", rtnStr); + JSONObject rtnJson = JSONUtil.parseObj(rtnStr); + Integer statusCode = rtnJson.getInt("statusCode"); + if (statusCode != null && statusCode == 0) { + return true; + } + } catch (Exception e) { + log.error("圆通订单拦截异常", e); + } + log.warn("圆通订单拦截失败: {}", interceptReqDTO); return false; }