diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/api/yd/YDRequest.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/api/yd/YDRequest.java index 481ac6ac8..65725fd4d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/api/yd/YDRequest.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/api/yd/YDRequest.java @@ -1,7 +1,6 @@ package org.jeecg.modules.business.domain.api.yd; -import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; @@ -23,18 +22,16 @@ import java.util.List; @Slf4j public class YDRequest { private final static String URL = "http://oms.ydhex.com/webservice/PublicService.asmx/ServiceInterfaceUTF8"; - private String appToken; - private String appKey; + private final String appToken; + private final String appKey; + private final YDRequestBody ydRequestBody; - private static final String SERVICE_METHOD = "gettrack"; private static final RequestConfig REQUEST_CONFIG = RequestConfig.custom().build(); - private final List billCodes; - - public YDRequest(String appToken, String appKey, List billCodes) { + public YDRequest(String appToken, String appKey, YDRequestBody ydRequestBody) { this.appToken = appToken; this.appKey = appKey; - this.billCodes = billCodes; + this.ydRequestBody = ydRequestBody; } /** @@ -53,7 +50,7 @@ public class YDRequest { request.setEntity(new UrlEncodedFormEntity(generateFormData(), "UTF-8")); return httpClient.execute(request); } catch (Exception e) { - log.error("Request failed on attempt n°" + attempts); + log.error("Request failed on attempt n°{}", attempts); } } return null; @@ -67,18 +64,11 @@ public class YDRequest { */ private List generateFormData() { List pairs = new ArrayList<>(); - String paramsJson = generateJsonString(billCodes); pairs.add(new BasicNameValuePair("appToken", appToken)); pairs.add(new BasicNameValuePair("appKey", appKey)); - pairs.add(new BasicNameValuePair("serviceMethod", SERVICE_METHOD)); - pairs.add(new BasicNameValuePair("paramsJson", paramsJson)); + pairs.add(new BasicNameValuePair("serviceMethod", ydRequestBody.getServiceMethod())); + pairs.add(new BasicNameValuePair("paramsJson", ydRequestBody.getParamsJson())); return pairs; } - private static String generateJsonString(List billCodes) { - JSONObject param = new JSONObject(); - String billCodesWithComas = String.join(",", billCodes); - param.put("tracking_number", billCodesWithComas); - return param.toJSONString(); - } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/CWJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/CWJob.java index ec3c1e002..deef88f08 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/CWJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/CWJob.java @@ -9,8 +9,9 @@ import org.apache.http.util.EntityUtils; import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; +import org.jeecg.modules.business.domain.api.yd.YDParcelTraceRequestBody; +import org.jeecg.modules.business.domain.api.yd.YDParcelTraceResponse; import org.jeecg.modules.business.domain.api.yd.YDRequest; -import org.jeecg.modules.business.domain.api.yd.YDResponse; import org.jeecg.modules.business.domain.api.yd.YDTraceData; import org.jeecg.modules.business.service.IParcelService; import org.jeecg.modules.business.service.IPlatformOrderService; @@ -42,7 +43,7 @@ public class CWJob implements Job { private static final Integer DEFAULT_NUMBER_OF_DAYS = 15; private static final Integer DEFAULT_NUMBER_OF_THREADS = 10; private static final Integer DEFAULT_MAXIMUM_NUMBER_OF_PARCELS_PER_TRANSACTION = 800; - private static final List DEFAULT_TRANSPORTERS = Arrays.asList("诚稳法邮普货" , "诚稳法邮膏体"); + private static final List DEFAULT_TRANSPORTERS = Arrays.asList("诚稳法邮普货", "诚稳法邮膏体"); private final static String APP_TOKEN = "y7j1p5o4obncsdhbk1zgasunb2erpyzvh"; private final static String APP_KEY = "ym27kj0wy5wgx69f58pgd7crm60w07p0l15flj1bacrf5n0e38vqjtrjkkvosd61p"; @@ -99,7 +100,8 @@ public class CWJob implements Job { List parcelTraces = new ArrayList<>(); List ydRequests = new ArrayList<>(); billCodeLists.forEach(billcodeList -> { - YDRequest ydRequest = new YDRequest(APP_TOKEN, APP_KEY, billcodeList); + YDParcelTraceRequestBody ydParcelTraceRequestBody = new YDParcelTraceRequestBody(billcodeList); + YDRequest ydRequest = new YDRequest(APP_TOKEN, APP_KEY, ydParcelTraceRequestBody); ydRequests.add(ydRequest); }); ExecutorService executor = Executors.newFixedThreadPool(DEFAULT_NUMBER_OF_THREADS); @@ -110,7 +112,7 @@ public class CWJob implements Job { try { // String of the response String responseString = EntityUtils.toString(entity, "UTF-8"); - YDResponse ydResponse = mapper.readValue(responseString, YDResponse.class); + YDParcelTraceResponse ydResponse = mapper.readValue(responseString, YDParcelTraceResponse.class); parcelTraces.addAll(ydResponse.getTraceDataList()); success = true; } catch (IOException e) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/YDJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/YDJob.java index 2f14c00fc..5bc500ff5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/YDJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/domain/job/YDJob.java @@ -9,8 +9,9 @@ import org.apache.http.util.EntityUtils; import org.codehaus.jettison.json.JSONArray; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; +import org.jeecg.modules.business.domain.api.yd.YDParcelTraceRequestBody; +import org.jeecg.modules.business.domain.api.yd.YDParcelTraceResponse; import org.jeecg.modules.business.domain.api.yd.YDRequest; -import org.jeecg.modules.business.domain.api.yd.YDResponse; import org.jeecg.modules.business.domain.api.yd.YDTraceData; import org.jeecg.modules.business.service.IParcelService; import org.jeecg.modules.business.service.IPlatformOrderService; @@ -99,7 +100,8 @@ public class YDJob implements Job { List parcelTraces = new ArrayList<>(); List ydRequests = new ArrayList<>(); billCodeLists.forEach(billcodeList -> { - YDRequest ydRequest = new YDRequest(APP_TOKEN, APP_KEY, billcodeList); + YDParcelTraceRequestBody ydParcelTraceRequestBody = new YDParcelTraceRequestBody(billcodeList); + YDRequest ydRequest = new YDRequest(APP_TOKEN, APP_KEY, ydParcelTraceRequestBody); ydRequests.add(ydRequest); }); ExecutorService executor = Executors.newFixedThreadPool(DEFAULT_NUMBER_OF_THREADS); @@ -110,7 +112,7 @@ public class YDJob implements Job { try { // String of the response String responseString = EntityUtils.toString(entity, "UTF-8"); - YDResponse ydResponse = mapper.readValue(responseString, YDResponse.class); + YDParcelTraceResponse ydResponse = mapper.readValue(responseString, YDParcelTraceResponse.class); parcelTraces.addAll(ydResponse.getTraceDataList()); success = true; } catch (IOException e) {