|
@@ -147,4 +147,40 @@ public class RemoteCallServiceImpl implements RemoteCallService {
|
|
|
});
|
|
|
return resultData.get();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 智能获取物流信息
|
|
|
+ *
|
|
|
+ * @param number 快递单号
|
|
|
+ * @param companyCode 快递公司的编码
|
|
|
+ * @param mobile 收/寄件人的电话号码(顺丰必填)
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public String getLogisticsByNumber(String number, String companyCode, String mobile) {
|
|
|
+ AtomicReference<String> resultData = new AtomicReference<>("");
|
|
|
+ // 请求参数
|
|
|
+ String params = "?number=" + number;
|
|
|
+ if (StringUtils.isNotEmpty(companyCode) && StringUtils.isNotEmpty(mobile)) {
|
|
|
+ params = params + ("&companyCode=" + companyCode + "&mobile=" + mobile);
|
|
|
+ } else if (StringUtils.isNotEmpty(companyCode)) {
|
|
|
+ params = params + ("&companyCode=" + companyCode);
|
|
|
+ } else if (StringUtils.isNotEmpty(mobile)) {
|
|
|
+ params = params + ("&mobile=" + mobile);
|
|
|
+ }
|
|
|
+ // 发送服务间调用GET请求
|
|
|
+ Mono<String> result = webClientBuilder.build()
|
|
|
+ .get()
|
|
|
+ .uri("http://CAIMEI365-CLOUD-TOOLS/tools/query/logistics" + params)
|
|
|
+ .retrieve()
|
|
|
+ .bodyToMono(String.class);
|
|
|
+ result.subscribe(log::info);
|
|
|
+ result.subscribe(jsonStr -> {
|
|
|
+ JSONObject parseObject = JSONObject.parseObject(jsonStr);
|
|
|
+ if (0 == parseObject.getInteger("code")){
|
|
|
+ // 获取物流信息成功
|
|
|
+ resultData.set(parseObject.getString("data"));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return resultData.get();
|
|
|
+ }
|
|
|
}
|