|
|
@@ -329,13 +329,16 @@ public class JstErpHttpServiceImpl implements JstErpHttpService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public TlCreateOrderResponse syncOrderToJst(TlCreateOrderRequest request) {
|
|
|
+ public CommonResponse<TlCreateOrderResponse> syncOrderToJst(TlCreateOrderRequest request) {
|
|
|
try {
|
|
|
String corpId = request.getCorpId();
|
|
|
List<?> rawData = request.getData();
|
|
|
|
|
|
if (rawData == null || rawData.isEmpty()) {
|
|
|
- throw new IllegalArgumentException("订单数据不能为空");
|
|
|
+ return new CommonResponse<TlCreateOrderResponse>()
|
|
|
+ .setCode(-1)
|
|
|
+ .setMsg("订单数据不能为空")
|
|
|
+ .setData(null);
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> dataAsMaps = new ArrayList<>();
|
|
|
@@ -350,19 +353,14 @@ public class JstErpHttpServiceImpl implements JstErpHttpService {
|
|
|
String signSource = secretKey + corpId + sortedDataJson + timestamp;
|
|
|
String sign = DigestUtils.md5Hex(signSource).toLowerCase();
|
|
|
|
|
|
- // 构建 URL
|
|
|
String url = jstApiBaseUrl + "/v1/mp/sync/order/jst/create?sign=" + sign + "&t=" + timestamp;
|
|
|
-
|
|
|
- // 请求体
|
|
|
String requestBody = objectMapper.writeValueAsString(request);
|
|
|
|
|
|
- //打印关键调试信息
|
|
|
- log.info("【聚水潭】请求URL: {}", url);
|
|
|
- log.info("【聚水潭】请求Body: {}", requestBody);
|
|
|
- log.info("【聚水潭】sign = MD5({})", signSource);
|
|
|
- log.info("【聚水潭】最终 sign: {}, t: {}", sign, timestamp);
|
|
|
+ log.info("【兔灵】请求URL: {}", url);
|
|
|
+ log.info("【兔灵】请求Body: {}", requestBody);
|
|
|
+ log.info("【兔灵】sign = MD5({})", signSource);
|
|
|
+ log.info("【兔灵】最终 sign: {}, t: {}", sign, timestamp);
|
|
|
|
|
|
- // 发起请求
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
HttpEntity<String> entity = new HttpEntity<>(requestBody, headers);
|
|
|
@@ -374,21 +372,34 @@ public class JstErpHttpServiceImpl implements JstErpHttpService {
|
|
|
TlCreateOrderResponse.class
|
|
|
);
|
|
|
|
|
|
- log.info("【聚水潭】响应状态: {}, body: {}", response.getStatusCode(), response.getBody());
|
|
|
- if (response.getStatusCode() == HttpStatus.OK) {
|
|
|
- log.info("订单同步成功");
|
|
|
- }else {
|
|
|
- log.error("订单同步失败:{}", response);
|
|
|
- throw new RuntimeException("订单同步失败");
|
|
|
+ log.info("【兔灵】响应状态: {}, body: {}", response.getStatusCode(), response.getBody());
|
|
|
+
|
|
|
+ if (response.getStatusCode() == HttpStatus.OK && response.getBody() != null) {
|
|
|
+ return new CommonResponse<TlCreateOrderResponse>()
|
|
|
+ .setCode(0)
|
|
|
+ .setMsg("success")
|
|
|
+ .setData(response.getBody());
|
|
|
+ } else {
|
|
|
+ String errorMsg = "HTTP状态码非200或响应体为空";
|
|
|
+ log.error("订单同步失败: {}", errorMsg);
|
|
|
+ return new CommonResponse<TlCreateOrderResponse>()
|
|
|
+ .setCode(-1)
|
|
|
+ .setMsg(errorMsg)
|
|
|
+ .setData(null);
|
|
|
}
|
|
|
- return response.getBody();
|
|
|
|
|
|
} catch (JsonProcessingException e) {
|
|
|
log.error("JSON 序列化失败", e);
|
|
|
- throw new RuntimeException("订单数据格式异常", e);
|
|
|
+ return new CommonResponse<TlCreateOrderResponse>()
|
|
|
+ .setCode(-2)
|
|
|
+ .setMsg("订单数据格式异常: " + e.getMessage())
|
|
|
+ .setData(null);
|
|
|
} catch (Exception e) {
|
|
|
- log.error("调用同步聚水潭订单接口失败", e);
|
|
|
- throw new RuntimeException("同步订单到聚水潭失败: " + e.getMessage(), e);
|
|
|
+ log.error("调用同步兔灵(聚水潭)订单接口失败", e);
|
|
|
+ return new CommonResponse<TlCreateOrderResponse>()
|
|
|
+ .setCode(-3)
|
|
|
+ .setMsg("同步订单到兔灵(聚水潭)失败: " + e.getMessage())
|
|
|
+ .setData(null);
|
|
|
}
|
|
|
}
|
|
|
|