diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java index 8ec7963..d2042f1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/JDOrderController.java @@ -715,19 +715,29 @@ public class JDOrderController extends BaseController { logger.info("手动获取物流信息 - 订单ID: {}, 订单号: {}, 分销标识: {}, 物流链接: {}", orderId, order.getOrderId(), distributionMark, logisticsLink); - // 调用外部接口 + // 构建外部接口URL String externalUrl = "http://192.168.8.88:5001/fetch_logistics?tracking_url=" + java.net.URLEncoder.encode(logisticsLink, "UTF-8"); - logger.info("调用外部接口 - URL: {}", externalUrl); + logger.info("准备调用外部接口 - URL: {}", externalUrl); - String result = ""; + // 在服务端执行HTTP请求 + String result = null; try { + // 使用HttpUtils在服务端发起GET请求 result = HttpUtils.sendGet(externalUrl); - logger.info("外部接口返回 - 订单ID: {}, 订单号: {}, 返回数据: {}", - orderId, order.getOrderId(), result); + + // 检查返回结果是否为空 + if (result == null || result.trim().isEmpty()) { + logger.warn("外部接口返回空结果 - 订单ID: {}, 订单号: {}", orderId, order.getOrderId()); + return AjaxResult.error("外部接口返回空结果,请检查接口是否正常"); + } + + logger.info("外部接口调用成功 - 订单ID: {}, 订单号: {}, 返回数据长度: {}", + orderId, order.getOrderId(), result.length()); + logger.debug("外部接口返回数据: {}", result); } catch (Exception e) { - logger.error("调用外部接口失败 - 订单ID: {}, 订单号: {}, 错误: {}", + logger.error("调用外部接口异常 - 订单ID: {}, 订单号: {}, 错误: {}", orderId, order.getOrderId(), e.getMessage(), e); return AjaxResult.error("调用外部接口失败: " + e.getMessage()); } @@ -742,25 +752,26 @@ public class JDOrderController extends BaseController { logger.info("返回数据: {}", result); logger.info("====================================="); - // 解析返回结果 + // 解析返回结果并构建响应 JSONObject responseData = new JSONObject(); responseData.put("orderId", orderId); responseData.put("orderNo", order.getOrderId()); responseData.put("distributionMark", distributionMark); responseData.put("logisticsLink", logisticsLink); responseData.put("requestUrl", externalUrl); + responseData.put("responseRaw", result); // 原始返回数据 try { // 尝试解析为JSON Object parsed = JSON.parse(result); responseData.put("responseData", parsed); - responseData.put("responseRaw", result); + logger.info("返回数据已解析为JSON对象"); } catch (Exception e) { - // 如果不是JSON,直接保存原始字符串 - responseData.put("responseRaw", result); - logger.warn("返回数据不是有效的JSON格式: {}", result); + // 如果不是JSON,只保存原始字符串 + logger.warn("返回数据不是有效的JSON格式,将作为原始字符串返回: {}", e.getMessage()); } + logger.info("返回响应数据给前端 - 订单ID: {}", orderId); return AjaxResult.success(responseData); } catch (Exception e) { logger.error("手动获取物流信息异常", e);