From 200346ee71455968dc980ff330c3896e12ecb6e0 Mon Sep 17 00:00:00 2001 From: sj <1304317391@qq.com> Date: Tue, 18 Oct 2022 14:16:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=A9=E6=B5=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 + yudao-server/pom.xml | 6 +- .../src/main/resources/application-local.yaml | 11 +- .../src/main/resources/application.yaml | 7 + zsw-bxg/pom.xml | 6 +- .../order/rest/AppStoreOrderController.java | 38 ++-- .../order/rest/StoreOrderController.java | 22 +- .../service/impl/YxStoreOrderServiceImpl.java | 6 +- .../yixiang/tools/express/ExpressService.java | 205 ++++++++++-------- .../config/ExpressAutoConfiguration.java | 54 ----- .../express/config/ExpressProperties.java | 1 + .../express/config/Kuaidi100Properties.java | 19 ++ .../tools/express/dao/ExpressInfo.java | 8 + .../tools/service/impl/QiNiuServiceImpl.java | 10 +- .../utils/kuaidi100/sdk/api/AutoNum.java | 54 +++++ .../tools/utils/kuaidi100/sdk/api/BOrder.java | 63 ++++++ .../kuaidi100/sdk/api/BOrderOfficial.java | 19 ++ .../sdk/api/CloudPrintAttachment.java | 52 +++++ .../kuaidi100/sdk/api/CloudPrintCustom.java | 54 +++++ .../kuaidi100/sdk/api/CloudPrintOld.java | 52 +++++ .../utils/kuaidi100/sdk/api/PrintCloud.java | 39 ++++ .../utils/kuaidi100/sdk/api/PrintHtml.java | 39 ++++ .../utils/kuaidi100/sdk/api/PrintImg.java | 61 ++++++ .../utils/kuaidi100/sdk/api/QueryTrack.java | 33 +++ .../kuaidi100/sdk/api/QueryTrackMap.java | 19 ++ .../kuaidi100/sdk/api/SameCityOrder.java | 19 ++ .../utils/kuaidi100/sdk/api/SendSms.java | 59 +++++ .../utils/kuaidi100/sdk/api/Subscribe.java | 79 +++++++ .../kuaidi100/sdk/api/SubscribeWithMap.java | 79 +++++++ .../utils/kuaidi100/sdk/api/ThirdAuth.java | 19 ++ .../utils/kuaidi100/sdk/cloud/CloudBase.java | 31 +++ .../sdk/contant/ApiInfoConstant.java | 144 ++++++++++++ .../sdk/contant/CloudApiCodeConstant.java | 40 ++++ .../sdk/contant/CompanyConstant.java | 23 ++ .../utils/kuaidi100/sdk/core/BaseClient.java | 42 ++++ .../utils/kuaidi100/sdk/core/IBaseClient.java | 18 ++ .../utils/kuaidi100/sdk/pojo/HttpResult.java | 20 ++ .../kuaidi100/sdk/request/AutoNumReq.java | 15 ++ .../sdk/request/BOrderCancelReq.java | 23 ++ .../sdk/request/BOrderGetCodeReq.java | 19 ++ .../request/BOrderOfficialQueryPriceReq.java | 21 ++ .../kuaidi100/sdk/request/BOrderQueryReq.java | 13 ++ .../kuaidi100/sdk/request/BOrderReq.java | 64 ++++++ .../kuaidi100/sdk/request/BaseRequest.java | 13 ++ .../sdk/request/CloudAttachmentReq.java | 14 ++ .../request/CloudPrintAttachmentParam.java | 47 ++++ .../sdk/request/CloudPrintCustomParam.java | 39 ++++ .../sdk/request/CloudPrintCustomReq.java | 8 + .../sdk/request/CloudPrintOldParam.java | 13 ++ .../utils/kuaidi100/sdk/request/ManInfo.java | 27 +++ .../sdk/request/PrintCloudParam.java | 181 ++++++++++++++++ .../kuaidi100/sdk/request/PrintCloudReq.java | 32 +++ .../kuaidi100/sdk/request/PrintHtmlParam.java | 145 +++++++++++++ .../kuaidi100/sdk/request/PrintHtmlReq.java | 32 +++ .../kuaidi100/sdk/request/PrintImgParam.java | 179 +++++++++++++++ .../kuaidi100/sdk/request/PrintImgReq.java | 31 +++ .../utils/kuaidi100/sdk/request/PrintReq.java | 36 +++ .../sdk/request/QueryTrackParam.java | 43 ++++ .../kuaidi100/sdk/request/QueryTrackReq.java | 23 ++ .../kuaidi100/sdk/request/SendSmsReq.java | 44 ++++ .../kuaidi100/sdk/request/SubscribeParam.java | 36 +++ .../sdk/request/SubscribeParameters.java | 57 +++++ .../kuaidi100/sdk/request/SubscribeReq.java | 19 ++ .../kuaidi100/sdk/request/ThirdAuthReq.java | 25 +++ .../sdk/request/cloud/COrderCancelReq.java | 23 ++ .../sdk/request/cloud/COrderQueryReq.java | 19 ++ .../sdk/request/cloud/COrderReq.java | 75 +++++++ .../sdk/request/cloud/CloudBaseReq.java | 31 +++ .../sdk/request/samecity/AuthReq.java | 23 ++ .../sdk/request/samecity/CancelReq.java | 24 ++ .../sdk/request/samecity/OrderGoods.java | 27 +++ .../sdk/request/samecity/OrderReq.java | 115 ++++++++++ .../sdk/request/samecity/QueryReq.java | 20 ++ .../kuaidi100/sdk/response/AutoNumResp.java | 27 +++ .../sdk/response/BOrderQueryData.java | 27 +++ .../sdk/response/BOrderQueryDataInfo.java | 22 ++ .../kuaidi100/sdk/response/BOrderResp.java | 19 ++ .../kuaidi100/sdk/response/BaseResponse.java | 8 + .../kuaidi100/sdk/response/PrintBaseResp.java | 19 ++ .../sdk/response/PrintCloudData.java | 19 ++ .../kuaidi100/sdk/response/PrintHtmlData.java | 33 +++ .../kuaidi100/sdk/response/PrintHtmlResp.java | 23 ++ .../kuaidi100/sdk/response/PrintImgData.java | 21 ++ .../sdk/response/QueryTrackData.java | 35 +++ .../sdk/response/QueryTrackMapResp.java | 30 +++ .../sdk/response/QueryTrackPosition.java | 20 ++ .../sdk/response/QueryTrackResp.java | 55 +++++ .../sdk/response/QueryTrackRouteInfo.java | 23 ++ .../kuaidi100/sdk/response/SendSmsResp.java | 19 ++ .../sdk/response/SmsCallbackData.java | 27 +++ .../sdk/response/SmsCallbackResp.java | 34 +++ .../sdk/response/SubscribePushData.java | 35 +++ .../sdk/response/SubscribePushParamResp.java | 50 +++++ .../sdk/response/SubscribePushResult.java | 45 ++++ .../kuaidi100/sdk/response/SubscribeResp.java | 17 ++ .../SubscribeWithMapPushParamResp.java | 46 ++++ .../response/SubscribeWithMapPushResult.java | 65 ++++++ .../kuaidi100/sdk/response/ThirdAuthResp.java | 21 ++ .../sdk/response/cloud/COrderRespData.java | 20 ++ .../sdk/response/cloud/CloudBaseResp.java | 20 ++ .../sdk/response/samecity/AuthResp.java | 13 ++ .../sdk/response/samecity/OrderResp.java | 35 +++ .../sdk/response/samecity/QueryResp.java | 47 ++++ .../utils/kuaidi100/sdk/utils/HttpUtils.java | 125 +++++++++++ .../kuaidi100/sdk/utils/ObjectToMapUtils.java | 46 ++++ .../kuaidi100/sdk/utils/PropertiesReader.java | 73 +++++++ .../utils/kuaidi100/sdk/utils/SignUtils.java | 69 ++++++ 107 files changed, 4012 insertions(+), 189 deletions(-) delete mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressAutoConfiguration.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/express/config/Kuaidi100Properties.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/AutoNum.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrder.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrderOfficial.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintAttachment.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintCustom.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintOld.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintCloud.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintHtml.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintImg.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrack.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrackMap.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SameCityOrder.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SendSms.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/Subscribe.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SubscribeWithMap.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/ThirdAuth.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/cloud/CloudBase.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/ApiInfoConstant.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CloudApiCodeConstant.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CompanyConstant.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/BaseClient.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/IBaseClient.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/pojo/HttpResult.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/AutoNumReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderCancelReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderGetCodeReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderOfficialQueryPriceReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderQueryReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BaseRequest.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudAttachmentReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintAttachmentParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintOldParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ManInfo.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SendSmsReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParam.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParameters.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ThirdAuthReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderCancelReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderQueryReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/CloudBaseReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/AuthReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/CancelReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderGoods.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/QueryReq.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/AutoNumResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryDataInfo.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BaseResponse.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintBaseResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintCloudData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintImgData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackMapResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackPosition.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackRouteInfo.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SendSmsResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushParamResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushResult.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushParamResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushResult.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/ThirdAuthResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/COrderRespData.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/CloudBaseResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/AuthResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/OrderResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/QueryResp.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/HttpUtils.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/ObjectToMapUtils.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/PropertiesReader.java create mode 100644 zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/SignUtils.java diff --git a/pom.xml b/pom.xml index 76b3816d..b01c04fc 100644 --- a/pom.xml +++ b/pom.xml @@ -51,6 +51,12 @@ pom import + + org.springframework.boot + spring-boot-configuration-processor + 2.7.4 + true + diff --git a/yudao-server/pom.xml b/yudao-server/pom.xml index 1fd2bc7f..ffbb3c5f 100644 --- a/yudao-server/pom.xml +++ b/yudao-server/pom.xml @@ -33,7 +33,11 @@ zsw-erp ${revision} - + + org.springframework.boot + spring-boot-configuration-processor + true + cn.iocoder.boot zsw-farm-impl diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 4d32cf9c..90617b79 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -243,8 +243,15 @@ dubbo: bxg: shop: - API_URL: https://2598-27-19-79-216.jp.ngrok.io # API_URL: http://192.168.10.113:48080/bxgApp + API_URL: https://2b36-27-19-79-216.ap.ngrok.io SITE_URL: http://192.168.10.113:48080/bxgApp UNI_SITE_URL: http://192.168.10.113:48080/bxgApp - ADMIN_API_URL: http://192.168.10.113:48080/bxg \ No newline at end of file + ADMIN_API_URL: http://192.168.10.113:48080/bxg +# 快递100 参数 +kuaidi100: + enable: true + key: mmbOboEj7168 + customer: A6D46C8A03A4127C78DF0E377D721702 + secret: 13fcbe029263431293f5658cbf3259d3 + userid: 79978ee033e640dca101450508620182 \ No newline at end of file diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index 2fa7d2ef..e311bbc7 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -161,3 +161,10 @@ wxma: spring: jackson: time-zone: GMT+8 +# 快递100 参数 +kuaidi100: + enable: true + key: mmbOboEj7168 + customer: A6D46C8A03A4127C78DF0E377D721702 + secret: 13fcbe029263431293f5658cbf3259d3 + userid: 79978ee033e640dca101450508620182 diff --git a/zsw-bxg/pom.xml b/zsw-bxg/pom.xml index 2551f949..55862492 100644 --- a/zsw-bxg/pom.xml +++ b/zsw-bxg/pom.xml @@ -27,7 +27,11 @@ yudao-module-system-impl 1.6.2-snapshot - + + org.springframework.boot + spring-boot-configuration-processor + true + cn.iocoder.boot yudao-spring-boot-starter-biz-weixin diff --git a/zsw-bxg/src/main/java/co/yixiang/app/modules/order/rest/AppStoreOrderController.java b/zsw-bxg/src/main/java/co/yixiang/app/modules/order/rest/AppStoreOrderController.java index 4111c3c7..16f2753a 100644 --- a/zsw-bxg/src/main/java/co/yixiang/app/modules/order/rest/AppStoreOrderController.java +++ b/zsw-bxg/src/main/java/co/yixiang/app/modules/order/rest/AppStoreOrderController.java @@ -32,14 +32,12 @@ import co.yixiang.modules.order.param.*; import co.yixiang.modules.order.service.YxStoreOrderCartInfoService; import co.yixiang.modules.order.service.YxStoreOrderService; import co.yixiang.modules.order.service.YxStoreOrderStatusService; -import co.yixiang.modules.order.service.dto.YxStoreOrderDto; import co.yixiang.modules.order.vo.ComputeVo; import co.yixiang.modules.order.vo.ConfirmOrderVo; import co.yixiang.modules.order.vo.OrderCartInfoVo; import co.yixiang.modules.order.vo.YxStoreOrderQueryVo; import co.yixiang.modules.user.domain.YxUser; import co.yixiang.tools.express.ExpressService; -import co.yixiang.tools.express.config.ExpressAutoConfiguration; import co.yixiang.tools.express.dao.ExpressInfo; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.vdurmont.emoji.EmojiParser; @@ -74,7 +72,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor(onConstructor = @__(@Autowired)) @Api(value = "订单模块", tags = "商城:订单模块") public class AppStoreOrderController { - + private final ExpressService expressService; private final YxStoreOrderService storeOrderService; private final OrderSupplyService orderSupplyService; private final CreatShareProductService creatShareProductService; @@ -432,23 +430,25 @@ public class AppStoreOrderController { @ApiOperation(value = "获取物流信息", notes = "获取物流信息") public ApiResult express(@RequestBody ExpressParam expressInfoDo) { - //顺丰轨迹查询处理 - String lastFourNumber = ""; - if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) { - YxStoreOrderDto yxStoreOrderDto; - yxStoreOrderDto = storeOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode())); - lastFourNumber = yxStoreOrderDto.getUserPhone(); - if (lastFourNumber.length() == 11) { - lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4); - } - } - - ExpressService expressService = ExpressAutoConfiguration.expressService(); +// //顺丰轨迹查询处理 +// String lastFourNumber = ""; +// if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) { +// YxStoreOrderDto yxStoreOrderDto; +// yxStoreOrderDto = storeOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode())); +// lastFourNumber = yxStoreOrderDto.getUserPhone(); +// if (lastFourNumber.length() == 11) { +// lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4); +// } +// } +// +// ExpressService expressService = ExpressAutoConfiguration.expressService(); +// ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(), +// expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(), lastFourNumber); +// if (!expressInfo.isSuccess()) { +// throw new YshopException(expressInfo.getReason()); +// } ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(), - expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(), lastFourNumber); - if (!expressInfo.isSuccess()) { - throw new YshopException(expressInfo.getReason()); - } + expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode()); return ApiResult.ok(expressInfo); } diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java b/zsw-bxg/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java index eda4cc76..53a5ff1f 100644 --- a/zsw-bxg/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java +++ b/zsw-bxg/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java @@ -16,7 +16,6 @@ import co.yixiang.annotation.AnonymousAccess; import co.yixiang.dozer.service.IGenerator; import co.yixiang.enums.OrderInfoEnum; import co.yixiang.enums.OrderLogEnum; -import co.yixiang.enums.ShipperCodeEnum; import co.yixiang.enums.ShopCommonEnum; import co.yixiang.exception.BadRequestException; import co.yixiang.logging.aop.log.Log; @@ -28,7 +27,6 @@ import co.yixiang.modules.order.service.YxStoreOrderService; import co.yixiang.modules.order.service.YxStoreOrderStatusService; import co.yixiang.modules.order.service.dto.*; import co.yixiang.tools.express.ExpressService; -import co.yixiang.tools.express.config.ExpressAutoConfiguration; import co.yixiang.tools.express.dao.ExpressInfo; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -36,6 +34,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -74,7 +73,8 @@ public class StoreOrderController { private final IGenerator generator; private final YxStoreOrderService yxStoreOrderService; private final YxStoreOrderStatusService yxStoreOrderStatusService; - + @Autowired + private ExpressService expressService; public StoreOrderController(IGenerator generator, YxStoreOrderService yxStoreOrderService, YxStoreOrderStatusService yxStoreOrderStatusService) { @@ -316,21 +316,9 @@ public class StoreOrderController { @ApiOperation(value = "获取物流信息",notes = "获取物流信息",response = ExpressParam.class) public ResponseEntity express( @RequestBody ExpressParam expressInfoDo){ - //顺丰轨迹查询处理 - String lastFourNumber = ""; - if (expressInfoDo.getShipperCode().equals(ShipperCodeEnum.SF.getValue())) { - YxStoreOrderDto yxStoreOrderDto; - yxStoreOrderDto = yxStoreOrderService.getOrderDetail(Long.valueOf(expressInfoDo.getOrderCode())); - lastFourNumber = yxStoreOrderDto.getUserPhone(); - if (lastFourNumber.length()==11) { - lastFourNumber = StrUtil.sub(lastFourNumber,lastFourNumber.length(),-4); - } - } - - ExpressService expressService = ExpressAutoConfiguration.expressService(); ExpressInfo expressInfo = expressService.getExpressInfo(expressInfoDo.getOrderCode(), - expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode(),lastFourNumber); - if(!expressInfo.isSuccess()) { + expressInfoDo.getShipperCode(), expressInfoDo.getLogisticCode()); + if (!expressInfo.isSuccess()) { throw new BadRequestException(expressInfo.getReason()); } return new ResponseEntity<>(expressInfo, HttpStatus.OK); diff --git a/zsw-bxg/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/zsw-bxg/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 701d2eab..9a3a55cf 100644 --- a/zsw-bxg/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/zsw-bxg/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -83,6 +83,7 @@ import co.yixiang.utils.OrderUtil; import co.yixiang.utils.RedisUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -2386,7 +2387,10 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(YxStoreOrder::getOrderId, orderId); + YxStoreOrder yxStoreOrder=yxStoreOrderMapper.selectOne(wrapper); if (ObjectUtil.isEmpty(yxStoreOrder)) { throw new BadRequestException("订单详情不存在"); } diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/express/ExpressService.java b/zsw-bxg/src/main/java/co/yixiang/tools/express/ExpressService.java index cb062169..94191ce8 100644 --- a/zsw-bxg/src/main/java/co/yixiang/tools/express/ExpressService.java +++ b/zsw-bxg/src/main/java/co/yixiang/tools/express/ExpressService.java @@ -5,57 +5,42 @@ */ package co.yixiang.tools.express; -import cn.hutool.http.HttpUtil; -import co.yixiang.enums.ShipperCodeEnum; -import co.yixiang.tools.express.config.ExpressProperties; +import cn.hutool.json.JSONUtil; +import co.yixiang.tools.express.config.Kuaidi100Properties; import co.yixiang.tools.express.dao.ExpressInfo; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import co.yixiang.tools.express.dao.Traces; +import co.yixiang.tools.utils.kuaidi100.sdk.api.QueryTrack; +import co.yixiang.tools.utils.kuaidi100.sdk.core.IBaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.QueryTrackParam; +import co.yixiang.tools.utils.kuaidi100.sdk.request.QueryTrackReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.QueryTrackData; +import co.yixiang.tools.utils.kuaidi100.sdk.response.QueryTrackResp; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; +import com.google.common.collect.Lists; +import com.google.gson.Gson; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.stereotype.Component; import org.springframework.util.Base64Utils; import java.io.Serializable; -import java.net.URLEncoder; import java.security.MessageDigest; -import java.util.HashMap; -import java.util.Map; +import java.util.List; /** * 物流查询服务 *

* 快递鸟即时查询API http://www.kdniao.com/api-track */ +@Component +@Slf4j +@EnableConfigurationProperties(Kuaidi100Properties.class) public class ExpressService implements Serializable { - private final Log logger = LogFactory.getLog(ExpressService.class); - //请求url - private String ReqURL = "http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx"; - - private ExpressProperties properties; - - public ExpressProperties getProperties() { - return properties; - } - - public void setProperties(ExpressProperties properties) { - this.properties = properties; - } - - /** - * 获取物流供应商名 - * - * @param vendorCode - * @return - */ - public String getVendorName(String vendorCode) { - for (Map item : properties.getVendors()) { - if (item.get("code").equals(vendorCode)) { - return item.get("name"); - } - } - return null; - } - + @Autowired + private Kuaidi100Properties properties; /** * 获取物流信息 * @@ -63,53 +48,93 @@ public class ExpressService implements Serializable { * @param ShipperCode * @return */ - public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) { + public ExpressInfo getExpressInfo(String OrderCode,String ShipperCode, String LogisticCode) { try { - String result = getOrderTracesByJson(OrderCode,ShipperCode, LogisticCode,lastFourNumber); - ObjectMapper objMap = new ObjectMapper(); - ExpressInfo ei = objMap.readValue(result, ExpressInfo.class); - ei.setShipperName(getVendorName(ShipperCode)); - return ei; + QueryTrackResp result = getOrderTraceByJson(OrderCode,ShipperCode, LogisticCode); + ExpressInfo info = new ExpressInfo(); + assert result != null; + if (!result.getMessage().equals("ok")){ + info.setSuccess(false); + info.setReason(result.getMessage()); + return info; + } + info.setLogisticCode(LogisticCode); + info.setSuccess(result.getIscheck().equals("1")); + List tracesList = Lists.newArrayList(); + + for (QueryTrackData t: result.getData()){ + Traces traces = new Traces(); + traces.setAcceptStation(t.getContext()); + traces.setAcceptTime(t.getTime()); + tracesList.add(traces); + } + info.setSuccess(true); + info.setTraces(tracesList); + return info; } catch (Exception e) { - logger.error(e.getMessage(), e); + log.error(e.getMessage(), e); } - return null; } - /** - * Json方式 查询订单物流轨迹 + * Json方式 快递100查询订单物流轨迹 * * @throws Exception */ - private String getOrderTracesByJson(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) throws Exception { - if (!properties.isEnable()) { + private QueryTrackResp getOrderTraceByJson(String OrderCode,String ShipperCode, String LogisticCode) throws Exception { + if (!properties.getEnable()) { return null; } - //处理顺丰查询轨迹需手机号码后4位 - String requestData; - if (ShipperCode.equals(ShipperCodeEnum.SF.getValue())) { - requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "','CustomerName':'" + lastFourNumber + "'}"; - } else { - requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "'}"; - } - - Map params = new HashMap<>(); - params.put("RequestData", URLEncoder.encode(requestData, "UTF-8")); - params.put("EBusinessID", properties.getAppId()); - params.put("RequestType", "1002"); - String dataSign = encrypt(requestData, properties.getAppKey(), "UTF-8"); - params.put("DataSign", URLEncoder.encode(dataSign, "UTF-8")); - params.put("DataType", "2"); + QueryTrackReq queryTrackReq = new QueryTrackReq(); + QueryTrackParam queryTrackParam = new QueryTrackParam(); + queryTrackParam.setCom(ShipperCode); + queryTrackParam.setNum(LogisticCode); + String param = new Gson().toJson(queryTrackParam); - String result = HttpUtil.post(ReqURL, params); + queryTrackReq.setParam(param); + queryTrackReq.setCustomer(this.properties.getCustomer()); + queryTrackReq.setSign(SignUtils.querySign(param ,this.properties.getKey(),this.properties.getCustomer())); - //根据公司业务处理返回的信息...... + IBaseClient baseClient = new QueryTrack(); - return result; + HttpResult rsp = baseClient.execute(queryTrackReq); + return JSONUtil.toBean(rsp.getBody(),QueryTrackResp.class); } +// /** +// * Json方式 快递鸟查询订单物流轨迹 +// * +// * @throws Exception +// */ +// private String getOrderTracesByJson(String OrderCode,String ShipperCode, String LogisticCode,String lastFourNumber) throws Exception { +// if (!properties.isEnable()) { +// return null; +// } +// +// //处理顺丰查询轨迹需手机号码后4位(改为都需要手机号后四位) +// String requestData; +// if (ShipperCode.equals(ShipperCodeEnum.SF.getValue())) { +// requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "','CustomerName':'" + lastFourNumber + "'}"; +// } else { +// requestData = "{'OrderCode':'" + OrderCode + "','ShipperCode':'" + ShipperCode + "','LogisticCode':'" + LogisticCode + "'}"; +// } +// +// Map params = new HashMap<>(); +// params.put("RequestData", URLEncoder.encode(requestData, "UTF-8")); +// params.put("EBusinessID", properties.getAppId()); +// params.put("RequestType", "8001"); +// String dataSign = encrypt(requestData, properties.getAppKey(), "UTF-8"); +// params.put("DataSign", URLEncoder.encode(dataSign, "UTF-8")); +// params.put("DataType", "2"); +// +// String result = HttpUtil.post(ReqURL, params); +// +// //根据公司业务处理返回的信息...... +// +// return result; +// } + /** * MD5加密 * @@ -132,28 +157,28 @@ public class ExpressService implements Serializable { return sb.toString().toLowerCase(); } - /** - * Sign签名生成 - * - * @param content 内容 - * @param keyValue Appkey - * @param charset 编码方式 - * @return DataSign签名 - */ - private String encrypt(String content, String keyValue, String charset) { - if (keyValue != null) { - content = content + keyValue; - } - byte[] src; - try { - src = MD5(content, charset).getBytes(charset); - return Base64Utils.encodeToString(src); - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - - return null; - } +// /** +// * Sign签名生成 +// * +// * @param content 内容 +// * @param keyValue Appkey +// * @param charset 编码方式 +// * @return DataSign签名 +// */ +// private String encrypt(String content, String keyValue, String charset) { +// if (keyValue != null) { +// content = content + keyValue; +// } +// byte[] src; +// try { +// src = MD5(content, charset).getBytes(charset); +// return Base64Utils.encodeToString(src); +// } catch (Exception e) { +// logger.error(e.getMessage(), e); +// } +// +// return null; +// } } diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressAutoConfiguration.java b/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressAutoConfiguration.java deleted file mode 100644 index 25a1bc31..00000000 --- a/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressAutoConfiguration.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Copyright (C) 2018-2022 - * All rights reserved, Designed By www.yixiang.co - * 注意: - * 本软件为www.yixiang.co开发研制,未经购买不得使用 - * 购买后可获得全部源代码(禁止转卖、分享、上传到码云、github等开源平台) - * 一经发现盗用、分享等行为,将追究法律责任,后果自负 - */ -package co.yixiang.tools.express.config; - - -import co.yixiang.constant.ShopConstants; -import co.yixiang.enums.ShopCommonEnum; -import co.yixiang.tools.express.ExpressService; -import co.yixiang.utils.RedisUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; - -@Configuration(proxyBeanMethods = false) -public class ExpressAutoConfiguration { - - - private static RedisUtils redisUtil; - - @Autowired - public ExpressAutoConfiguration(RedisUtils redisUtil) { - ExpressAutoConfiguration.redisUtil = redisUtil; - } - - public static ExpressService expressService() { - ExpressService expressService = (ExpressService)redisUtil.get(ShopConstants.ZSW_EXPRESS_SERVICE); - if(expressService != null) { - return expressService; - } - - ExpressProperties properties = new ExpressProperties(); - String enable = redisUtil.getY("exp_enable"); - String appId = redisUtil.getY("exp_appId"); - String appKey = redisUtil.getY("exp_appKey"); - properties.setAppId(appId); - properties.setAppKey(appKey); - - if(ShopCommonEnum.ENABLE_2.getValue().toString().equals(enable)){ - properties.setEnable(false); - }else{ - properties.setEnable(true); - } - ExpressService service = new ExpressService(); - service.setProperties(properties); - redisUtil.set(ShopConstants.ZSW_EXPRESS_SERVICE,service); - return service; - } - -} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressProperties.java b/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressProperties.java index 877d8c83..6c232759 100644 --- a/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressProperties.java +++ b/zsw-bxg/src/main/java/co/yixiang/tools/express/config/ExpressProperties.java @@ -5,6 +5,7 @@ */ package co.yixiang.tools.express.config; + import java.util.ArrayList; import java.util.List; import java.util.Map; diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/express/config/Kuaidi100Properties.java b/zsw-bxg/src/main/java/co/yixiang/tools/express/config/Kuaidi100Properties.java new file mode 100644 index 00000000..9fbec698 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/express/config/Kuaidi100Properties.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.express.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties(prefix = "kuaidi100") +@Data +public class Kuaidi100Properties { + + private String key; + + private String customer; + + private String secret; + + private String userid; + + private Boolean enable; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/express/dao/ExpressInfo.java b/zsw-bxg/src/main/java/co/yixiang/tools/express/dao/ExpressInfo.java index b4f0e871..f14134c9 100644 --- a/zsw-bxg/src/main/java/co/yixiang/tools/express/dao/ExpressInfo.java +++ b/zsw-bxg/src/main/java/co/yixiang/tools/express/dao/ExpressInfo.java @@ -41,6 +41,14 @@ public class ExpressInfo { @ApiModelProperty(value = "物流状态:2-在途中,3-签收,4-问题件") private String State; +// @JsonProperty("Location") +// @ApiModelProperty(value = "不知道干啥的") +// private String Location; +// +// @JsonProperty("StateEx") +// @ApiModelProperty(value = "不知道干啥的") +// private String StateEx; + @JsonProperty("EBusinessID") @ApiModelProperty(value = "用户ID") private String EBusinessID; diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/service/impl/QiNiuServiceImpl.java b/zsw-bxg/src/main/java/co/yixiang/tools/service/impl/QiNiuServiceImpl.java index e1d49218..d4917a2e 100644 --- a/zsw-bxg/src/main/java/co/yixiang/tools/service/impl/QiNiuServiceImpl.java +++ b/zsw-bxg/src/main/java/co/yixiang/tools/service/impl/QiNiuServiceImpl.java @@ -103,10 +103,12 @@ public class QiNiuServiceImpl implements QiNiuService { Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey()); String upToken = auth.uploadToken(qiniuConfig.getBucket()); try { - String key = file.getOriginalFilename(); - if(qiniuContentService.getOne(new LambdaQueryWrapper().eq(QiniuContent::getName,key)) != null) { - key = QiNiuUtil.getKey(key); - } + String key = QiNiuUtil.getKey(file.getOriginalFilename());; +// String key = file.getOriginalFilename(); + //key不能重复 +// if(qiniuContentService.getOne(new LambdaQueryWrapper().eq(QiniuContent::getName,key)) != null) { +// key = QiNiuUtil.getKey(key); +// } Response response = uploadManager.put(file.getBytes(), key, upToken); //解析上传成功的结果 DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class); diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/AutoNum.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/AutoNum.java new file mode 100644 index 00000000..01927b18 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/AutoNum.java @@ -0,0 +1,54 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.AutoNumReq; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.response.AutoNumResp; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.util.List; + +/** + * 快递100智能判断接口(只提供给正式用户使用) + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 9:59 + */ +public class AutoNum extends BaseClient { + + public String getApiUrl(BaseRequest request) { + AutoNumReq autoNumReq = (AutoNumReq) request; + return String.format(ApiInfoConstant.AUTO_NUM_URL,autoNumReq.getNum(),autoNumReq.getKey()); + } + + /** + * 根据单号获取快递公司列表 + * + * @return + */ + public List getComByNumList(BaseRequest request) throws Exception{ + HttpResult httpResult = this.execute(request); + if ( httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>(){}.getType()); + } + return null; + } + + /** + * 根据单号获取第一个快递公司 + * + * @return + */ + public String getFirstComByNum(BaseRequest request) throws Exception{ + List comByNumList = this.getComByNumList(request); + if (comByNumList != null && comByNumList.size()>0){ + return comByNumList.get(0).getComCode(); + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrder.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrder.java new file mode 100644 index 00000000..aeedc1ca --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrder.java @@ -0,0 +1,63 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.BOrderQueryData; +import co.yixiang.tools.utils.kuaidi100.sdk.response.BOrderResp; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.util.Map; + +/** + * 商家寄件(优选寄件) + * + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 11:14 + */ +public class BOrder extends BaseClient { + + @Override + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.B_ORDER_URL; + } + + public PrintBaseResp transportCapacity(PrintReq param) throws Exception{ + HttpResult httpResult = execute(param); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>(){}.getType()); + } + return null; + } + + public PrintBaseResp order(PrintReq param) throws Exception{ + HttpResult httpResult = execute(param); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>(){}.getType()); + } + return null; + } + + public PrintBaseResp getCode(PrintReq param) throws Exception{ + HttpResult httpResult = execute(param); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>>(){}.getType()); + } + return null; + } + + public PrintBaseResp cancel(PrintReq param) throws Exception{ + HttpResult httpResult = execute(param); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken(){}.getType()); + } + return null; + } + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrderOfficial.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrderOfficial.java new file mode 100644 index 00000000..cb98582d --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/BOrderOfficial.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; + +/** + * 商家寄件(官方快递) + * + * @Author: api.kuaidi100.com + * @Date: 2021-01-21 15:55 + */ +public class BOrderOfficial extends BaseClient { + + @Override + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.B_ORDER_OFFICIAL_URL; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintAttachment.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintAttachment.java new file mode 100644 index 00000000..b92e1753 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintAttachment.java @@ -0,0 +1,52 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.CloudAttachmentReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.net.URLEncoder; +import java.util.Map; + +/** + * 附件云打印 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:26 + */ +public class CloudPrintAttachment extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return null; + } + + @Override + public HttpResult execute(BaseRequest request) throws Exception{ + if (request instanceof CloudAttachmentReq){ + CloudAttachmentReq cloudPrintAttachmentReq = (CloudAttachmentReq)request; + String url = String.format(ApiInfoConstant.CLOUD_PRINT_URL, + cloudPrintAttachmentReq.getMethod(), + cloudPrintAttachmentReq.getT(), + cloudPrintAttachmentReq.getKey(), + cloudPrintAttachmentReq.getSign(), + URLEncoder.encode(cloudPrintAttachmentReq.getParam(), "UTF-8")); + return HttpUtils.doPostFile(url,cloudPrintAttachmentReq.getFile(),super.getConnectTimeout(),super.getSocketTimeout()); + } + throw new ClassCastException(); + } + + public PrintBaseResp print(CloudAttachmentReq cloudPrintAttachmentReq) throws Exception{ + HttpResult httpResult = this.execute(cloudPrintAttachmentReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>>(){}.getType()); + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintCustom.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintCustom.java new file mode 100644 index 00000000..026257b9 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintCustom.java @@ -0,0 +1,54 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.net.URLEncoder; + +/** + * 自定义云打印 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:22 + */ +public class CloudPrintCustom extends BaseClient { + private int connectTimeout = 3000; + + private int socketTimeout = 3000; + + public String getApiUrl(BaseRequest request) { + return null; + } + + @Override + public HttpResult execute(BaseRequest request) throws Exception{ + if (request instanceof PrintReq){ + PrintReq printReq = (PrintReq)request; + String url = String.format(ApiInfoConstant.CLOUD_PRINT_URL, + printReq.getMethod(), + printReq.getT(), + printReq.getKey(), + printReq.getSign(), + URLEncoder.encode(printReq.getParam(), "UTF-8")); + return HttpUtils.doPost(url,printReq,super.getConnectTimeout(),super.getSocketTimeout()); + } + throw new ClassCastException(); + } + + public PrintBaseResp print(PrintReq printReq) throws Exception { + HttpResult httpResult = execute(printReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())) { + return new Gson().fromJson(httpResult.getBody(), PrintBaseResp.class); + } + return null; + } + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintOld.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintOld.java new file mode 100644 index 00000000..7645b336 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/CloudPrintOld.java @@ -0,0 +1,52 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.net.URLEncoder; + +/** + * 复打 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:26 + */ +public class CloudPrintOld extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return null; + } + + @Override + public HttpResult execute(BaseRequest request) throws Exception{ + if (request instanceof PrintReq){ + PrintReq printReq = (PrintReq)request; + String url = String.format(ApiInfoConstant.CLOUD_PRINT_URL, + printReq.getMethod(), + printReq.getT(), + printReq.getKey(), + printReq.getSign(), + URLEncoder.encode(printReq.getParam(), "UTF-8")); + return HttpUtils.doPost(url,printReq,super.getConnectTimeout(),super.getSocketTimeout()); + } + throw new ClassCastException(); + } + + public PrintBaseResp print(PrintReq request) throws Exception{ + HttpResult httpResult = this.execute(request); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + + return new Gson().fromJson(httpResult.getBody(),PrintBaseResp.class); + } + return null; + } + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintCloud.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintCloud.java new file mode 100644 index 00000000..e755fcf6 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintCloud.java @@ -0,0 +1,39 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintCloudData; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 15:46 + */ +public class PrintCloud extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.ELECTRONIC_ORDER_PRINT_URL; + } + + /** + * 电子面单打印 + * + * @param printReq + * @author: api.kuaidi100.com + * @time: 2020/7/17 17:15 + */ + public PrintBaseResp print(PrintReq printReq) throws Exception{ + HttpResult httpResult = execute(printReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>(){}.getType()); + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintHtml.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintHtml.java new file mode 100644 index 00000000..97721481 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintHtml.java @@ -0,0 +1,39 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintHtmlResp; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 17:20 + */ +public class PrintHtml extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.ELECTRONIC_ORDER_HTML_URL; + } + + /** + * 电子面单打印 + * + * @param printReq + * @return: java.lang.String + * @author: api.kuaidi100.com + * @time: 2020/7/17 17:15 + */ + public PrintHtmlResp print(PrintReq printReq) throws Exception{ + HttpResult httpResult = execute(printReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + + return new Gson().fromJson(httpResult.getBody(),PrintHtmlResp.class); + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintImg.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintImg.java new file mode 100644 index 00000000..d59dbe61 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/PrintImg.java @@ -0,0 +1,61 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.PrintReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintBaseResp; +import co.yixiang.tools.utils.kuaidi100.sdk.response.PrintImgData; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 15:46 + */ +public class PrintImg extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.ELECTRONIC_ORDER_PIC_URL; + } + + /** + * 获取电子面单图片(BASE64) + * + * @param printReq + * @return: java.lang.String + * @author: api.kuaidi100.com + * @time: 2020/7/17 17:15 + */ + public PrintBaseResp printImG(PrintReq printReq) throws Exception{ + HttpResult httpResult = execute(printReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>(){}.getType()); + } + return null; + } + + /** + * 处理返回的base64字符串(返回的是一个字符串json数组,多个子单时会有多个) + * + * @param imgBase64 base64 json字符串数组 + * @return + */ + public List getBase64Img(String imgBase64){ + List stringList= new Gson().fromJson(imgBase64, new TypeToken>() {}.getType()); + List base64Img = new ArrayList(); + if (stringList != null && stringList.size()>0){ + for (String s : stringList) { + s = "data:image/png;base64,"+s.replace("\\\\n",""); + base64Img.add(s); + } + } + return base64Img; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrack.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrack.java new file mode 100644 index 00000000..cbc1efbb --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrack.java @@ -0,0 +1,33 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.QueryTrackReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.QueryTrackResp; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +/** + * 实时查询 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:27 + */ +public class QueryTrack extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.QUERY_URL; + } + + public QueryTrackResp queryTrack(QueryTrackReq queryTrackReq) throws Exception{ + HttpResult httpResult = execute(queryTrackReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),QueryTrackResp.class); + } + return null; + } + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrackMap.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrackMap.java new file mode 100644 index 00000000..47abdea1 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/QueryTrackMap.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; + +/** + * 快递信息地图轨迹 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:27 + */ +public class QueryTrackMap extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.QUERY_MAP_VIEW_URL; + } + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SameCityOrder.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SameCityOrder.java new file mode 100644 index 00000000..8addef73 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SameCityOrder.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; + +/** + * 同城配送 + * + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 16:37 + */ +public class SameCityOrder extends BaseClient { + + @Override + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.SAME_CITY_ORDER_URL; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SendSms.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SendSms.java new file mode 100644 index 00000000..91bcf1e4 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SendSms.java @@ -0,0 +1,59 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.SendSmsReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.SendSmsResp; +import co.yixiang.tools.utils.kuaidi100.sdk.response.SmsCallbackResp; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 19:00 + */ +public class SendSms extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.SEND_SMS_URL; + } + + /** + * 发送短信 + * + * @param sendSmsReq + * @return + */ + public SendSmsResp sendSms(SendSmsReq sendSmsReq) throws Exception{ + HttpResult httpResult = execute(sendSmsReq); + if (StringUtils.isNotBlank(httpResult.getBody()) && httpResult.getStatus() == HttpStatus.SC_OK){ + return new Gson().fromJson(httpResult.getBody(),SendSmsResp.class); + } + return null; + } + + /** + * 短信回调接口 例子 + * @param + * @return: java.util.Map + * @author: api.kuaidi100.com + * @time: 2020/7/21 10:11 + */ + public Map callback(SmsCallbackResp smsCallbackResp){ + //建议记录一下这个回调的内容,方便出问题后双方排查问题 + //log.debug("快递100短信回调结果|{}",new Gson().toJson(smsCallbackResp)); + Map result = new HashMap(); + if (smsCallbackResp == null){ + return result; + } + + result.put("status",Boolean.TRUE); + return result; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/Subscribe.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/Subscribe.java new file mode 100644 index 00000000..7de32538 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/Subscribe.java @@ -0,0 +1,79 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.SubscribeReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribePushParamResp; +import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribeResp; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import javax.servlet.http.HttpServletRequest; + +/** + * 订阅 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-16 14:38 + */ +public class Subscribe extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.SUBSCRIBE_URL; + } + + /** + * 订阅接口 + * + * @param subscribeReq + * @return + */ + public SubscribeResp subscribe(SubscribeReq subscribeReq) throws Exception{ + HttpResult httpResult = execute(subscribeReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(), SubscribeResp.class); + } + return null; + } + + /** + * 订阅推送处理(参照) + * 订阅成功后,如果该快递单号有轨迹(包括已经签收的单),快递100将会在15分钟-4个小时推送;后面将会4个小时跟踪一次,跟踪到有轨迹变化则推送; + * 如果订阅成功后,3天查无结果(录错单/快递公司错了/揽收比较晚),快递100将会推送3天查无结果,可以继续重新订阅。 + * + * 回调接口支持自定义参数,比如订阅时回调地址填写的是 http://www.xxx.com?orderId=1233333 + * 可以通过下面这种方式获取到orderId: String orderId = request.getParameter("orderId"); + * + * 返回值必须是下面这样的格式,否则快递100将认为该推送失败,快递100将会重试3次该推送,时间间隔35分钟; + * 成功结果返回例子: {"result":true,"returnCode":"200","message":"提交成功"} + * + * @param request + * @return: com.zsw.tools.utils.kuaidi100.sdk.response.SubscribeResp + * @author: api.kuaidi100.com + * @time: 2020/7/16 19:48 + */ + public SubscribeResp callBackUrl(HttpServletRequest request){ + String param = request.getParameter("param"); + String sign = request.getParameter("sign"); + //建议记录一下这个回调的内容,方便出问题后双方排查问题 + //log.debug("快递100订阅推送回调结果|{}|{}",param,sign); + //订阅时传的salt,没有可以忽略 + String salt = ""; + String ourSign = SignUtils.sign(param + salt); + SubscribeResp subscribeResp = new SubscribeResp(); + subscribeResp.setResult(Boolean.TRUE); + subscribeResp.setReturnCode("200"); + subscribeResp.setMessage("成功"); + //加密如果相等,属于快递100推送;否则可以忽略掉当前请求 + if (ourSign.equals(sign)){ + //TODO 业务处理 + SubscribePushParamResp subscribePushParamResp = new Gson().fromJson(param, SubscribePushParamResp.class); + return subscribeResp; + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SubscribeWithMap.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SubscribeWithMap.java new file mode 100644 index 00000000..77313634 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/SubscribeWithMap.java @@ -0,0 +1,79 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.SubscribeReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribeResp; +import co.yixiang.tools.utils.kuaidi100.sdk.response.SubscribeWithMapPushParamResp; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; +import com.google.gson.Gson; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +import javax.servlet.http.HttpServletRequest; + +/** + * 订阅(地图) + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-16 14:38 + */ +public class SubscribeWithMap extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.SUBSCRIBE_WITH_MAP_URL; + } + + /** + * 订阅接口 + * + * @param subscribeReq + * @return + */ + public SubscribeResp subscribe(SubscribeReq subscribeReq) throws Exception{ + HttpResult httpResult = execute(subscribeReq); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(), SubscribeResp.class); + } + return null; + } + + /** + * 订阅推送处理(参照) + * 订阅成功后,如果该快递单号有轨迹(包括已经签收的单),快递100将会在15分钟-4个小时推送;后面将会4个小时跟踪一次,跟踪到有轨迹变化则推送; + * 如果订阅成功后,3天查无结果(录错单/快递公司错了/揽收比较晚),快递100将会推送3天查无结果,可以继续重新订阅。 + * + * 回调接口支持自定义参数,比如订阅时回调地址填写的是 http://www.xxx.com?orderId=1233333 + * 可以通过下面这种方式获取到orderId: String orderId = request.getParameter("orderId"); + * + * 返回值必须是下面这样的格式,否则快递100将认为该推送失败,快递100将会重试3次该推送,时间间隔35分钟; + * 成功结果返回例子: {"result":true,"returnCode":"200","message":"提交成功"} + * + * @param request + * @return: com.zsw.tools.utils.kuaidi100.sdk.response.SubscribeResp + * @author: api.kuaidi100.com + * @time: 2020/7/16 19:48 + */ + public SubscribeResp callBackUrl(HttpServletRequest request){ + String param = request.getParameter("param"); + String sign = request.getParameter("sign"); + //建议记录一下这个回调的内容,方便出问题后双方排查问题 + //log.debug("快递100订阅推送回调结果|{}|{}",param,sign); + //订阅时传的salt,没有可以忽略 + String salt = ""; + String ourSign = SignUtils.sign(param + salt); + SubscribeResp subscribeResp = new SubscribeResp(); + subscribeResp.setResult(Boolean.TRUE); + subscribeResp.setReturnCode("200"); + subscribeResp.setMessage("成功"); + //加密如果相等,属于快递100推送;否则可以忽略掉当前请求 + if (ourSign.equals(sign)){ + //TODO 业务处理 + SubscribeWithMapPushParamResp mapPushParamResp = new Gson().fromJson(param, SubscribeWithMapPushParamResp.class); + return subscribeResp; + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/ThirdAuth.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/ThirdAuth.java new file mode 100644 index 00000000..75743d5d --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/api/ThirdAuth.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.api; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; + +/** + * 第三方平台账号授权 + * + * @Author: api.kuaidi100.com + * @Date: 2021-01-06 14:12 + */ +public class ThirdAuth extends BaseClient { + + @Override + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.THIRD_AUTH_URL; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/cloud/CloudBase.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/cloud/CloudBase.java new file mode 100644 index 00000000..945f292d --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/cloud/CloudBase.java @@ -0,0 +1,31 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.cloud; + +import co.yixiang.tools.utils.kuaidi100.sdk.contant.ApiInfoConstant; +import co.yixiang.tools.utils.kuaidi100.sdk.core.BaseClient; +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.request.cloud.CloudBaseReq; +import co.yixiang.tools.utils.kuaidi100.sdk.response.cloud.CloudBaseResp; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpStatus; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-20 10:36 + */ +public class CloudBase extends BaseClient { + + public String getApiUrl(BaseRequest request) { + return ApiInfoConstant.CLOUD_NORMAL_URL; + } + + public CloudBaseResp executeToObject(CloudBaseReq param) throws Exception{ + HttpResult httpResult = execute(param); + if (httpResult.getStatus() == HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){ + return new Gson().fromJson(httpResult.getBody(),new TypeToken>(){}.getType()); + } + return null; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/ApiInfoConstant.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/ApiInfoConstant.java new file mode 100644 index 00000000..1f319972 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/ApiInfoConstant.java @@ -0,0 +1,144 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.contant; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-15 17:43 + */ +public class ApiInfoConstant { + /** + * 查询url + */ + public static final String QUERY_URL = "https://poll.kuaidi100.com/poll/query.do"; + /** + * 快递查询地图轨迹url + */ + public static final String QUERY_MAP_VIEW_URL = "https://poll.kuaidi100.com/poll/maptrack.do"; + /** + * 订阅url + */ + public static final String SUBSCRIBE_URL = "https://poll.kuaidi100.com/poll"; + /** + * 订阅带地图url + */ + public static final String SUBSCRIBE_WITH_MAP_URL = "http://poll.kuaidi100.com/pollmap"; + /** + * 订阅SCHEMA + */ + public static final String SUBSCRIBE_SCHEMA = "json"; + /** + * 智能单号识别url + */ + public static final String AUTO_NUM_URL = "http://www.kuaidi100.com/autonumber/auto?num=%s&key=%s"; + /** + * 电子面单html url + */ + public static final String ELECTRONIC_ORDER_HTML_URL = "http://poll.kuaidi100.com/eorderapi.do"; + /** + * 电子面单html方法 + */ + public static final String ELECTRONIC_ORDER_HTML_METHOD = "getElecOrder"; + /** + * 电子面单获取图片 url + */ + public static final String ELECTRONIC_ORDER_PIC_URL = "https://poll.kuaidi100.com/printapi/printtask.do"; + /** + * 电子面单获取图片 + */ + public static final String ELECTRONIC_ORDER_PIC_METHOD = "getPrintImg"; + /** + * 电子面单打印 url + */ + public static final String ELECTRONIC_ORDER_PRINT_URL = "https://poll.kuaidi100.com/printapi/printtask.do"; + /** + * 电子面单打印方法 + */ + public static final String ELECTRONIC_ORDER_PRINT_METHOD = "eOrder"; + /** + * 菜鸟淘宝账号授权 + */ + public static final String AUTH_THIRD_URL = "https://poll.kuaidi100.com/printapi/authThird.do"; + /** + * 云打印url + */ + public static final String CLOUD_PRINT_URL = "http://poll.kuaidi100.com/printapi/printtask.do?method=%s&t=%s&key=%s&sign=%s¶m=%s"; + /** + * 自定义打印方法 + */ + public static final String CLOUD_PRINT_CUSTOM_METHOD = "printOrder"; + /** + * 附件打印方法 + */ + public static final String CLOUD_PRINT_ATTACHMENT_METHOD = "imgOrder"; + /** + * 复打方法 + */ + public static final String CLOUD_PRINT_OLD_METHOD = "printOld"; + /** + * 复打方法 + */ + public static final String SEND_SMS_URL = "http://apisms.kuaidi100.com:9502/sms/send.do"; + /** + * 商家寄件 + */ + public static final String B_ORDER_URL = "https://order.kuaidi100.com/order/borderbestapi.do"; + /** + * 商家寄件查询运力 + */ + public static final String B_ORDER_QUERY_TRANSPORT_CAPACITY_METHOD = "querymkt"; + /** + * 商家寄件下单 + */ + public static final String B_ORDER_SEND_METHOD = "bOrderBest"; + /** + * 商家寄件获取验证码 + */ + public static final String B_ORDER_CODE_METHOD = "getCode"; + /** + * 商家寄件取消 + */ + public static final String B_ORDER_CANCEL_METHOD = "cancelBest"; + /** + * 云平台通用请求url + */ + public static final String CLOUD_NORMAL_URL = "http://cloud.kuaidi100.com/api"; + /** + * 第三方电商平台账号授权请求url + */ + public static final String THIRD_AUTH_URL = "https://poll.kuaidi100.com/printapi/authThird.do"; + /** + * 商家寄件(官方寄件)请求url + */ + public static final String B_ORDER_OFFICIAL_URL = "https://poll.kuaidi100.com/order/borderapi.do"; + /** + * 商家寄件(官方寄件)下单 + */ + public static final String B_ORDER_OFFICIAL_ORDER_METHOD = "bOrder"; + /** + * 商家寄件(官方寄件)取消 + */ + public static final String B_ORDER_OFFICIAL_CANCEL_METHOD = "cancel"; + /** + * 商家寄件(官方寄件)查询价格 + */ + public static final String B_ORDER_OFFICIAL_PRICE_METHOD = "queryPrice"; + /** + * 同城配送请求url + */ + public static final String SAME_CITY_ORDER_URL = "https://order.kuaidi100.com/sameCity/order"; + /** + * 同城配送授权方法 + */ + public static final String SAME_CITY_AUTH_METHOD = "auth"; + /** + * 同城配送下单方法 + */ + public static final String SAME_CITY_ORDER_METHOD = "order"; + /** + * 同城配送查询订单方法 + */ + public static final String SAME_CITY_QUERY_METHOD = "query"; + /** + * 同城配送取消订单方法 + */ + public static final String SAME_CITY_CANCEL_METHOD = "cancel"; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CloudApiCodeConstant.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CloudApiCodeConstant.java new file mode 100644 index 00000000..bc904f35 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CloudApiCodeConstant.java @@ -0,0 +1,40 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.contant; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-27 9:27 + */ +public class CloudApiCodeConstant { + /** + * 快递寄件查询运力 + */ + public final static String ORDER_QUERY_EXPRESS = "7c5c49c5e51a4b75bd960f4997d2846a"; + /** + * 快递寄件 + */ + public final static String ORDER = "ddffadd3df4b4c0d8d6f9942c7a8c990"; + /** + * 快递寄件取消寄件 + */ + public final static String ORDER_CANCEL = "bcb0428c1dd84aca9d6e19ea4dcf683d"; + /** + * 快递时效查询V1版 + */ + public final static String AGING_V1 = "8ffb952184224877a561b300dc57b935"; + /** + * 快递时效查询V2版 + */ + public final static String AGING_V2 = "4cdfccdf64ea4088a94eb2ea1ef40c97"; + /** + * 快递时效详情查询V1版 + */ + public final static String AGING_DETAILS_V1 = "60d6fa8809134c40879e5f0a7228183e"; + /** + * 快递时效详情查询V2版 + */ + public final static String AGING_DETAILS_V2 = "81bb0620fbaf460db4e6dab84a05ec00"; + /** + * 实时快递查询 + */ + public final static String SYNC_QUERY = "c3e50f627ff6452ba44688ba8883f2dc"; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CompanyConstant.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CompanyConstant.java new file mode 100644 index 00000000..ec77e452 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/contant/CompanyConstant.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.contant; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-15 17:24 + */ +public class CompanyConstant { + + public static final String SF = "shunfeng"; + public static final String ZT = "zhongtong"; + public static final String YT = "yuantong"; + public static final String HT = "huitongkuaidi"; + public static final String ST = "shentong"; + public static final String YD = "yunda"; + public static final String EMS = "ems"; + public static final String JD = "jd"; + public static final String ZJS = "zhaijisong"; + public static final String DB = "debangkuaidi"; + + + public static final String SS = "shansong"; + public static final String KFW = "kfw"; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/BaseClient.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/BaseClient.java new file mode 100644 index 00000000..b02f31de --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/BaseClient.java @@ -0,0 +1,42 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.core; + +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.response.BaseResponse; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.HttpUtils; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-25 16:02 + */ +public abstract class BaseClient implements IBaseClient{ + + private int connectTimeout = 3000; + + private int socketTimeout = 3000; + + public HttpResult execute(BaseRequest request) throws Exception{ + + return HttpUtils.doPost(getApiUrl(request),request,connectTimeout,socketTimeout); + } + + public BaseResponse executeToObject(BaseRequest request) throws Exception{ + + return null; + } + + public void setTimeOut(int connectTimeout, int socketTimeout) { + this.connectTimeout = connectTimeout; + this.socketTimeout = socketTimeout; + } + + public abstract String getApiUrl(BaseRequest request); + + public int getConnectTimeout() { + return connectTimeout; + } + + public int getSocketTimeout() { + return socketTimeout; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/IBaseClient.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/IBaseClient.java new file mode 100644 index 00000000..ae340997 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/core/IBaseClient.java @@ -0,0 +1,18 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.core; + +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.response.BaseResponse; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-25 16:09 + */ +public interface IBaseClient { + + HttpResult execute(BaseRequest request) throws Exception; + + BaseResponse executeToObject(BaseRequest request) throws Exception; + + void setTimeOut(int connectTimeout,int socketTimeout); +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/pojo/HttpResult.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/pojo/HttpResult.java new file mode 100644 index 00000000..f4e8a98b --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/pojo/HttpResult.java @@ -0,0 +1,20 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.pojo; + +import lombok.Data; + + +@Data +public class HttpResult { + private int status; + private String body; + private String error; + + public HttpResult() { + } + + public HttpResult(int status, String body, String error) { + this.status = status; + this.body = body; + this.error = error; + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/AutoNumReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/AutoNumReq.java new file mode 100644 index 00000000..38467c28 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/AutoNumReq.java @@ -0,0 +1,15 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-12-04 11:11 + */ +@Data +public class AutoNumReq extends BaseRequest { + + private String key; + + private String num; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderCancelReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderCancelReq.java new file mode 100644 index 00000000..621aa11d --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderCancelReq.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 14:37 + */ +@Data +public class BOrderCancelReq { + /** + * 任务ID + */ + private String taskId; + /** + * 订单ID + */ + private String orderId; + /** + * 取消原因,例:暂时不寄件了 + */ + private String cancelMsg; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderGetCodeReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderGetCodeReq.java new file mode 100644 index 00000000..641e7d7e --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderGetCodeReq.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 14:37 + */ +@Data +public class BOrderGetCodeReq { + /** + * 任务ID + */ + private String taskId; + /** + * 订单ID + */ + private String orderId; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderOfficialQueryPriceReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderOfficialQueryPriceReq.java new file mode 100644 index 00000000..8c0ffa74 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderOfficialQueryPriceReq.java @@ -0,0 +1,21 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * 商家寄件(官方快递) + * + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 15:29 + */ +@Data +public class BOrderOfficialQueryPriceReq { + /** + * 快递公司编码 + */ + private String kuaidiCom; + /** + * 出发地地址,最小颗粒到市级,例如:广东省深圳市 + */ + private String address; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderQueryReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderQueryReq.java new file mode 100644 index 00000000..e0c874d0 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderQueryReq.java @@ -0,0 +1,13 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 11:17 + */ +@Data +public class BOrderQueryReq { + + private String sendAddr; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderReq.java new file mode 100644 index 00000000..03a3ca56 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BOrderReq.java @@ -0,0 +1,64 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 14:33 + */ +@Data +public class BOrderReq { + + /** + * 快递公司的编码,一律用小写字母,见《快递公司编码》 + */ + private String kuaidicom; + /** + * 收件人姓名 + */ + private String recManName; + /** + * 收件人的手机号,手机号和电话号二者其一必填 + */ + private String recManMobile; + /** + * 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园 + */ + private String recManPrintAddr; + /** + * 寄件人姓名 + */ + private String sendManName; + /** + * 寄件人的手机号,手机号和电话号二者其一必填 + */ + private String sendManMobile; + /** + * 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 + */ + private String sendManPrintAddr; + /** + * 物品名称,例:文件 + */ + private String cargo; + /** + * 物品总重量KG,例:1.5,单位kg + */ + private String weight; + /** + * 备注 + */ + private String remark; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * callBackUrl订单信息回调 + */ + private String callBackUrl; + /** + * 快递业务服务类型,例:标准快递,默认为标准快递 + */ + private String serviceType; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BaseRequest.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BaseRequest.java new file mode 100644 index 00000000..25a21679 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/BaseRequest.java @@ -0,0 +1,13 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-25 16:12 + */ +@Data +public class BaseRequest { + + private String url; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudAttachmentReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudAttachmentReq.java new file mode 100644 index 00000000..abd163ea --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudAttachmentReq.java @@ -0,0 +1,14 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +import java.io.File; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:36 + */ +@Data +public class CloudAttachmentReq extends PrintReq { + private File file; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintAttachmentParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintAttachmentParam.java new file mode 100644 index 00000000..5aeca4d2 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintAttachmentParam.java @@ -0,0 +1,47 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:37 + */ +@Data +public class CloudPrintAttachmentParam { + /** + * 贵司内部自定义的订单编号,需要保证唯一性,非必填 + */ + private String orderId; + /** + * 打印纸的高度,以mm为单位 + */ + private String height; + /** + * 打印纸的宽度,以mm为单位 + */ + private String width; + /** + * 需要打印的份数,默认是一份 + */ + private String copyNum; + /** + * 打印范围,起始页,仅对多页文件支持,默认是打印整个文档 + */ + private String startPage; + /** + * 打印范围,结束页,仅对多页文件支持,默认是打印整个文档 + */ + private String endPage; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * 打印设备,通过打印机输出的设备码进行获取 + */ + private String siid; + /** + * 打印状态回调地址 + */ + private String callBackUrl; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomParam.java new file mode 100644 index 00000000..9af19719 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomParam.java @@ -0,0 +1,39 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:38 + */ +@Data +public class CloudPrintCustomParam { + /** + * 贵司内部自定义的订单编号,需要保证唯一性,非必填 + */ + private String orderId; + /** + * 通过管理后台的打印摸版配置信息获取 + */ + private String tempid; + /** + * 打印设备,通过打印机输出的设备码进行获取 + */ + private String siid; + /** + * 打印纸的高度 + */ + private String height; + /** + * 打印纸的宽度 + */ + private String width; + /** + * 打印状态回调地址 + */ + private String callBackUrl; + /** + * 签名用随机字符串 + */ + private String salt; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomReq.java new file mode 100644 index 00000000..5d6bc28a --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintCustomReq.java @@ -0,0 +1,8 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:37 + */ +public class CloudPrintCustomReq { +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintOldParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintOldParam.java new file mode 100644 index 00000000..8345b619 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/CloudPrintOldParam.java @@ -0,0 +1,13 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 10:43 + */ +@Data +public class CloudPrintOldParam { + + private String taskId; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ManInfo.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ManInfo.java new file mode 100644 index 00000000..da354348 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ManInfo.java @@ -0,0 +1,27 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 16:30 + */ +@Data +public class ManInfo { + /** + * 收件人姓名 (必填) + */ + private String name; + /** + * 收件人的手机号,手机号和电话号二者其一必填 (必填) + */ + private String mobile; + /** + * 收件人所在完整地址 (必填) + */ + private String printAddr; + /** + * 收件人所在公司名称(可选) + */ + private String company; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudParam.java new file mode 100644 index 00000000..2cc866e8 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudParam.java @@ -0,0 +1,181 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 17:05 + */ +@Data +public class PrintCloudParam { + + /** + * 业务类型,默认为10 + */ + private String type; + /** + * 电子面单客户账户或月结账号,需贵司向当地快递公司网点申请 + */ + private String partnerId; + /** + * 电子面单密码,需贵司向当地快递公司网点申请 + */ + private String partnerKey; + /** + * 收件网点名称,由快递公司当地网点分配, + * 若使用淘宝授权填入(taobao),使用菜鸟授权填入(cainiao) + */ + private String net; + /** + * 快递公司的编码,一律用小写字母 + */ + private String kuaidicom; + /** + * 收件人信息 + */ + private ManInfo recMan; + /** + * 收件人信息 + */ + private ManInfo sendMan; + /** + * 物品名称(部分快递公司必填) + */ + private String cargo; + /** + * 物品总数量。 + * 另外该属性与子单有关,如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号), + * needChild = 1、count 需要大于1,如count = 2 则一个主单 一个子单, + * count = 3则一个主单 二个子单;返回的子单号码见返回结果的childNum字段 + */ + private String count; + /** + * 物品总重量,单位:KG (例子:0.5) + */ + private String weight; + /** + * 支付方式: + * SHIPPER:寄方付(默认) + * CONSIGNEE:到付 + * MONTHLY:月结 + * THIRDPARTY:第三方支付 + */ + private String payType; + /** + * 快递类型: + * 标准快递(默认) + * 顺丰特惠 + * EMS经济 + */ + private String expType; + /** + * 备注 + */ + private String remark; + /** + * 电子面单模板编码 + */ + private String tempid; + /** + * 打印设备编码。通过打印机输出的设备码进行获取 + */ + private String siid; + /** + * 保价额度 + */ + private String valinsPay; + /** + * 代收货款额度 + */ + private String collection; + /** + * 是否需要子单(支持子单的快递公司才可以用,是否支持可以参考参数字典) + * 1:需要 + * 0:不需要(默认) + * 如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号); + * needChild = 1、count 需要大于1,如count = 2 一个主单 一个子单, + * count = 3 一个主单 二个子单,返回的子单号码见返回结果的childNum字段 + */ + private String needChild; + /** + * 是否需要回单(支持回单的快递公司才可以用,是否支持可以参考参数字典) + * 1:需要 + * 0:不需要(默认) + * 返回的回单号见返回结果的returnNum字段 + */ + private String needBack; + /** + * 贵司内部自定义的订单编号,需要保证唯一性 + */ + private String orderId; + /** + * 生成图片的高,以mm为单位(默认100) + */ + private String height; + /** + * 生成图片的宽,以mm为单位(默认180) + */ + private String width; + /** + * 打印状态回调地址 + */ + private String callBackUrl; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * 是否开启订阅功能: + * 0:不开启(默认) + * 1:开启 + * 说明开启订阅功能时:pollCallBackUrl必须填入 + * 此功能只针对有快递单号的单 + */ + private String op; + /** + * 如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调 + */ + private String pollCallBackUrl; + /** + * 添加此字段表示开通行政区域解析功能:0:关闭(默认);1:开通行政区域解析功能 + */ + private String resultv2; + /** + * 扩展字段,不同快递公司具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String code; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String partnerSecret; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String partnerName; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String checkMan; + + /** + * 打印方向(默认0) 0-正方向 1-反方向 + */ + private String direction; + + /** + * 打印时间 + */ + private String printTime; + /** + * 额外服务(类似部分物流公司的需定义派送方式,包装等) + */ + private String addService; + /* + * 到付金额(单位:元) + */ + private String freight; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudReq.java new file mode 100644 index 00000000..bdf0fd6a --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintCloudReq.java @@ -0,0 +1,32 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 16:21 + */ +@Data +public class PrintCloudReq extends PrintReq{ + + /** + * 业务类型(默认:getPrintImg) + */ + private String method; + /** + * 快递100分配给贵司的的授权key + */ + private String key; + /** + * 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 + */ + private String sign; + /** + * 当前请求时间戳 + */ + private String t; + /** + * 其他参数组合成的json对象 + */ + private String param; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlParam.java new file mode 100644 index 00000000..fcad18a0 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlParam.java @@ -0,0 +1,145 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 16:55 + */ +@Data +public class PrintHtmlParam { + /** + * 电子面单客户账户或月结账号,需贵司向当地快递公司网点申请 + */ + private String partnerId; + /** + * 电子面单密码,需贵司向当地快递公司网点申请 + */ + private String partnerKey; + /** + * 收件网点名称,由快递公司当地网点分配, + * 若使用淘宝授权填入(taobao),使用菜鸟授权填入(cainiao) + */ + private String net; + /** + * 快递公司的编码,一律用小写字母 + */ + private String kuaidicom; + /** + * 收件人信息 + */ + private ManInfo recMan; + /** + * 收件人信息 + */ + private ManInfo sendMan; + /** + * 物品名称(部分快递公司必填) + */ + private String cargo; + /** + * 物品总数量。 + * 另外该属性与子单有关,如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号), + * needChild = 1、count 需要大于1,如count = 2 则一个主单 一个子单, + * count = 3则一个主单 二个子单;返回的子单号码见返回结果的childNum字段 + */ + private int count; + /** + * 物品总重量,单位:KG (例子:0.5) + */ + private String weight; + /** + * 支付方式: + * SHIPPER:寄方付(默认) + * CONSIGNEE:到付 + * MONTHLY:月结 + * THIRDPARTY:第三方支付 + */ + private String payType; + /** + * 快递类型: + * 标准快递(默认) + * 顺丰特惠 + * EMS经济 + */ + private String expType; + /** + * 备注 + */ + private String remark; + /** + * 保价额度 + */ + private String valinsPay; + /** + * 代收货款额度 + */ + private String collection; + /** + * 是否需要子单(支持子单的快递公司才可以用,是否支持可以参考参数字典) + * 1:需要 + * 0:不需要(默认) + * 如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号); + * needChild = 1、count 需要大于1,如count = 2 一个主单 一个子单, + * count = 3 一个主单 二个子单,返回的子单号码见返回结果的childNum字段 + */ + private int needChild; + /** + * 是否需要回单(支持回单的快递公司才可以用,是否支持可以参考参数字典) + * 1:需要 + * 0:不需要(默认) + * 返回的回单号见返回结果的returnNum字段 + */ + private String needBack; + /** + * 贵司内部自定义的订单编号,需要保证唯一性 + */ + private String orderId; + /** + * 是否返回面单 + * 0:不需要(默认) + * 1:需要 + * 如果需要,则返回要打印的模版的HTML代码,贵司可以直接将之显示到IE等浏览器,然后通过浏览器进行打印 + */ + private String needTemplate; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * 是否开启订阅功能: + * 0:不开启(默认) + * 1:开启 + * 说明开启订阅功能时:pollCallBackUrl必须填入 + * 此功能只针对有快递单号的单 + */ + private String op; + /** + * 如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调 + */ + private String pollCallBackUrl; + /** + * 添加此字段表示开通行政区域解析功能:0:关闭(默认);1:开通行政区域解析功能 + */ + private String resultv2; + /** + * 扩展字段,不同快递公司具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String code; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String partnerSecret; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String partnerName; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String checkMan; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlReq.java new file mode 100644 index 00000000..c4160d1e --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintHtmlReq.java @@ -0,0 +1,32 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 16:14 + */ +@Data +public class PrintHtmlReq { + + /** + * 业务类型(默认:getPrintImg) + */ + private String method; + /** + * 快递100分配给贵司的的授权key + */ + private String key; + /** + * 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 + */ + private String sign; + /** + * 当前请求时间戳 + */ + private String t; + /** + * 其他参数组合成的json对象 + */ + private String param; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgParam.java new file mode 100644 index 00000000..94d080f1 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgParam.java @@ -0,0 +1,179 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 15:49 + */ +@Data +public class PrintImgParam { + /** + * 业务类型,默认为10 + */ + private String type; + /** + * 电子面单客户账户或月结账号,需贵司向当地快递公司网点申请 + */ + private String partnerId; + /** + * 电子面单密码,需贵司向当地快递公司网点申请 + */ + private String partnerKey; + /** + * 收件网点名称,由快递公司当地网点分配, + * 若使用淘宝授权填入(taobao),使用菜鸟授权填入(cainiao) + */ + private String net; + /** + * 快递公司的编码,一律用小写字母 + */ + private String kuaidicom; + /** + * 收件人姓名 + */ + private String recManName; + /** + * 收件人的手机号 + */ + private String recManMobile; + /** + * 收件人的手机号 + */ + private String recManTel; + /** + * 收件人所在完整地址 + */ + private String recManPrintAddr; + /** + * 寄件人姓名 + */ + private String sendManName; + /** + * 寄件人的手机号 + */ + private String sendManMobile; + /** + * 寄件人所在的完整地址 + */ + private String sendManPrintAddr; + /** + * 打印电子面单模板编码(登录快递100管理后台查看) + */ + private String tempid; + /** + * 物品名称(部分快递公司必填) + */ + private String cargo; + /** + * 物品总数量。 + * 另外该属性与子单有关,如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号), + * needChild = 1、count 需要大于1,如count = 2 则一个主单 一个子单, + * count = 3则一个主单 二个子单;返回的子单号码见返回结果的childNum字段 + */ + private String count; + /** + * 物品总重量,单位:KG (例子:0.5) + */ + private String weight; + /** + * 支付方式: + * SHIPPER:寄方付(默认) + * CONSIGNEE:到付 + * MONTHLY:月结 + * THIRDPARTY:第三方支付 + */ + private String payType; + /** + * 快递类型: + * 标准快递(默认) + * 顺丰特惠 + * EMS经济 + */ + private String expType; + /** + * 备注 + */ + private String remark; + /** + * 保价额度 + */ + private String valinsPay; + /** + * 代收货款额度 + */ + private String collection; + /** + * 是否需要子单(支持子单的快递公司才可以用,是否支持可以参考参数字典) + * 1:需要 + * 0:不需要(默认) + * 如果需要子单(指同一个订单打印出多张电子面单,即同一个订单返回多个面单号); + * needChild = 1、count 需要大于1,如count = 2 一个主单 一个子单, + * count = 3 一个主单 二个子单,返回的子单号码见返回结果的childNum字段 + */ + private String needChild; + /** + * 是否需要回单(支持回单的快递公司才可以用,是否支持可以参考参数字典) + * 1:需要 + * 0:不需要(默认) + * 返回的回单号见返回结果的returnNum字段 + */ + private String needBack; + /** + * 贵司内部自定义的订单编号,需要保证唯一性 + */ + private String orderId; + /** + * 生成图片的高,以mm为单位(默认100) + */ + private String height; + /** + * 生成图片的宽,以mm为单位(默认180) + */ + private String width; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * 是否开启订阅功能: + * 0:不开启(默认) + * 1:开启 + * 说明开启订阅功能时:pollCallBackUrl必须填入 + * 此功能只针对有快递单号的单 + */ + private String op; + /** + * 如果op设置为1时,pollCallBackUrl必须填入,用于跟踪回调 + */ + private String pollCallBackUrl; + /** + * 添加此字段表示开通行政区域解析功能:0:关闭(默认);1:开通行政区域解析功能 + */ + private String resultv2; + /** + * 打印时间 + */ + private String printTime; + + /** + * 扩展字段,不同快递公司具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String code; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String partnerSecret; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String partnerName; + /** + * 扩展字段,具体详情看参数字典 + * https://api.kuaidi100.com/help/doc/?code=5f0ff6e82977d50a94e10237&openKey=%E7%94%B5%E5%AD%90%E9%9D%A2%E5%8D%95 + */ + private String checkMan; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgReq.java new file mode 100644 index 00000000..4e5b8432 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintImgReq.java @@ -0,0 +1,31 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 15:49 + */ +@Data +public class PrintImgReq extends PrintReq{ + /** + * 业务类型(默认:getPrintImg) + */ + private String method; + /** + * 快递100分配给贵司的的授权key + */ + private String key; + /** + * 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 + */ + private String sign; + /** + * 当前请求时间戳 + */ + private String t; + /** + * 其他参数组合成的json对象 + */ + private String param; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintReq.java new file mode 100644 index 00000000..5aa94533 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/PrintReq.java @@ -0,0 +1,36 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-20 9:41 + */ +@Data +public class PrintReq extends BaseRequest { + + /** + * 业务类型(默认:getPrintImg) + */ + private String method; + /** + * 快递100分配给贵司的的授权key + */ + private String key; + /** + * 加密签名信息:MD5(param+t+key+secret);加密后字符串转大写 + */ + private String sign; + /** + * 当前请求时间戳 + */ + private String t; + /** + * 其他参数 + */ + private String param; + /** + * 快递100分配给贵司的的授权key + */ + private String secret; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackParam.java new file mode 100644 index 00000000..8c554744 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackParam.java @@ -0,0 +1,43 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 15:58 + */ +@Data +public class QueryTrackParam { + /** + * 查询的快递公司的编码,一律用小写字母 + */ + private String com; + /** + * 查询的快递单号, 单号的最大长度是32个字符 + */ + private String num; + /** + * 收件人或寄件人的手机号或固话 + */ + private String phone; + /** + * 出发地城市,省-市-区 + */ + private String from; + /** + * 目的地城市,省-市-区 + */ + private String to; + /** + * 添加此字段表示开通行政区域解析功能。0:关闭(默认),1:开通行政区域解析功能,2:开通行政解析功能并且返回出发、目的及当前城市信息 + */ + private String resultv2 = "0"; + /** + * 返回数据格式。0:json(默认),1:xml,2:html,3:text + */ + private String show = "0"; + /** + * 返回结果排序方式。desc:降序(默认),asc:升序 + */ + private String order = "desc"; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackReq.java new file mode 100644 index 00000000..95c58639 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/QueryTrackReq.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 15:56 + */ +@Data +public class QueryTrackReq extends BaseRequest { + /** + * 我方分配给贵司的的公司编号, 点击查看账号信息 + */ + private String customer; + /** + * 签名, 用于验证身份, 按param + key + customer 的顺序进行MD5加密(注意加密后字符串要转大写), 不需要“+”号 + */ + private String sign; + /** + * 其他参数组合成的json对象 + */ + private String param; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SendSmsReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SendSmsReq.java new file mode 100644 index 00000000..e6e5f259 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SendSmsReq.java @@ -0,0 +1,44 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-21 9:14 + */ +@Data +public class SendSmsReq extends BaseRequest { + /** + * 加密签名信息:MD5(key + userid);加密后字符串转大写 + */ + private String sign; + /** + * 我方分配给贵司的的短信接口用户ID,点击查看账号信息 + */ + private String userid; + /** + * 商户名称签名;最好用简称,该字段信息会在短信标签处显示。不要超过5个字符 + */ + private String seller; + /** + * 接收短信手机号 + */ + private String phone; + /** + * 短信模板ID + */ + private String tid; + /** + * 短信模板替换内容 + */ + private String content; + /** + * 外部订单号:当该短信发送模板有回调地址时,外部订单号会返回给调用者,方便用户更新数据 + */ + private String outorder; + /** + * 回调地址:如果客户在发送短信时填写该参数,将按照这个参数回调短信发送状态; + * 如果为空,将按照模板配置的地址回调短信发送状态;如果两个参数都不填写,将不会回调通知状态 + */ + private String callback; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParam.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParam.java new file mode 100644 index 00000000..36fab5d1 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParam.java @@ -0,0 +1,36 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-16 13:41 + */ +@Data +public class SubscribeParam { + + /** + * 订阅的快递公司的编码,一律用小写字母 + */ + private String company; + /** + * 订阅的快递单号,单号的最大长度是32个字符 + */ + private String number; + /** + * 出发地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,请尽量提供 + */ + private String from; + /** + * 目的地城市,省-市-区,非必填,填了有助于提升签收状态的判断的准确率,且到达目的地后会加大监控频率,请尽量提供 + */ + private String to; + /** + * 我方分配给贵司的的授权key + */ + private String key; + /** + * 附加参数信息 + */ + private SubscribeParameters parameters; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParameters.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParameters.java new file mode 100644 index 00000000..9822f041 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeParameters.java @@ -0,0 +1,57 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-16 13:42 + */ +@Data +public class SubscribeParameters { + /** + * 回调接口的地址。如果需要在推送信息回传自己业务参数,可以在回调地址URL后面拼接上去,如示例中的orderId + * http://www.xxxxx.com/callback?orderId=123 + */ + private String callbackurl; + /** + * 签名用随机字符串。32位自定义字符串。添加该参数,则推送的时候会增加sign给贵司校验消息的可靠性 + */ + private String salt; + /** + * 添加此字段表示开通行政区域解析功能。0:关闭(默认),1:开通行政区域解析功能 + */ + private String resultv2; + /** + * 添加此字段且将此值设为1,则表示开始智能判断单号所属公司的功能, + * 开启后,company字段可为空,即只传运单号(number字段),我方收到后会根据单号判断出其所属的快递公司(即company字段)。 + * 建议只有在无法知道单号对应的快递公司(即company的值)的情况下才开启此功能。 + */ + private String autoCom; + /** + * 添加此字段表示开启国际版 + * 开启后,若订阅的单号(即number字段)属于国际单号,会返回出发国与目的国两个国家的跟踪信息; + * 本功能暂时只支持邮政体系(国际类的邮政小包、EMS)内的快递公司; + * 若单号我方识别为非国际单,即使添加本字段,也不会返回destResult元素组. + */ + private String interCom; + /** + * 出发国家编码 + */ + private String departureCountry; + /** + * 出发国家快递公司的编码 + */ + private String departureCom; + /** + * 目的国家编码 + */ + private String destinationCountry; + /** + * 目的国家快递公司的编码 + */ + private String destinationCom; + /** + * 收件人或寄件人的手机号或固话(顺丰单号必填,也可以填写后四位,如果是固话,请不要上传分机号) + */ + private String phone; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeReq.java new file mode 100644 index 00000000..e59050cc --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/SubscribeReq.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-16 13:41 + */ +@Data +public class SubscribeReq extends BaseRequest { + /** + * 返回数据格式(json、xml、text) + */ + private String schema; + /** + * 其他参数 + */ + private String param; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ThirdAuthReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ThirdAuthReq.java new file mode 100644 index 00000000..bd31c06d --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/ThirdAuthReq.java @@ -0,0 +1,25 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-01-06 14:16 + */ +@Getter +@Setter +public class ThirdAuthReq { + /** + * 请求的第三方平台,淘宝:taobao,菜鸟:cainiao,京东:jdalpha,拼多多:pinduoduoWx + */ + private String net; + /** + * 授权完后的信息回调地址 + */ + private String callBackUrl; + /** + * 已经授权完需要重新获取授权信息 + */ + private String partnerId; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderCancelReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderCancelReq.java new file mode 100644 index 00000000..fd9ac5f7 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderCancelReq.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-25 15:47 + */ +@Data +public class COrderCancelReq extends CloudBaseReq{ + /** + * 任务ID + */ + private String taskId; + /** + * 订单ID + */ + private String orderId; + /** + * 取消原因,例:暂时不寄件了 + */ + private String cancelMsg; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderQueryReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderQueryReq.java new file mode 100644 index 00000000..b79f1820 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderQueryReq.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-20 11:09 + */ +@Data +public class COrderQueryReq extends CloudBaseReq{ + /** + * + */ + private String sendManPrintAddr; + + private String recManPrintAddr; + + private String address; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderReq.java new file mode 100644 index 00000000..227a314a --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/COrderReq.java @@ -0,0 +1,75 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-10-27 15:47 + */ +@Data +public class COrderReq extends CloudBaseReq{ + /** + * 快递公司的编码,一律用小写字母,见《快递公司编码》 + */ + private String com; + /** + * 收件人姓名 + */ + private String recManName; + /** + * 收件人的手机号,手机号和电话号二者其一必填 + */ + private String recManMobile; + /** + * 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园 + */ + private String recManPrintAddr; + /** + * 寄件人姓名 + */ + private String sendManName; + /** + * 寄件人的手机号,手机号和电话号二者其一必填 + */ + private String sendManMobile; + /** + * 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 + */ + private String sendManPrintAddr; + /** + * 物品名称,例:文件 + */ + private String cargo; + /** + * 物品总重量KG,例:1.5,单位kg + */ + private String weight; + /** + * 备注 + */ + private String remark; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * callBackUrl订单信息回调 + */ + private String callBackUrl; + /** + * 预约日期,例如:今天/明天/后天 + */ + private String dayType; + /** + * 预约起始时间(HH:mm),例如:09:00 + */ + private String pickupStartTime; + /** + * 预约截止时间(HH:mm),例如:10:00 + */ + private String pickupEndTime; + /** + * 支付方式,SHIPPER: 寄付(默认),CONSIGNEE: 到付 + */ + private String payment; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/CloudBaseReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/CloudBaseReq.java new file mode 100644 index 00000000..fbf04ad0 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/cloud/CloudBaseReq.java @@ -0,0 +1,31 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.cloud; + +import co.yixiang.tools.utils.kuaidi100.sdk.request.BaseRequest; +import co.yixiang.tools.utils.kuaidi100.sdk.utils.SignUtils; +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-10-27 15:45 + */ +@Data +public class CloudBaseReq extends BaseRequest { + /** + * 用户授权key + */ + private String secret_key; + /** + * 接口编号 + */ + private String secret_code; + /** + * 加密签名:md5(secret_key+secret_secret)转大写 + */ + private String secret_sign; + + private String secret_secret; + + public String getSecret_sign() { + return SignUtils.sign(secret_key+secret_secret); + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/AuthReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/AuthReq.java new file mode 100644 index 00000000..c5319662 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/AuthReq.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 16:57 + */ +@Data +public class AuthReq { + /** + * 快递公司,一律用小写字母,见参数字典 + */ + private String com; + /** + * 授权店铺id + */ + private String storeId; + /** + * 授权后信息的信息回调地址 + */ + private String callbackUrl; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/CancelReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/CancelReq.java new file mode 100644 index 00000000..d59e6ae3 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/CancelReq.java @@ -0,0 +1,24 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 17:24 + */ +@Data +public class CancelReq { + + /** + * 任务ID + */ + private String taskId; + /** + * 订单ID + */ + private String orderId; + /** + * 取消原因 + */ + private String cancelMsg; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderGoods.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderGoods.java new file mode 100644 index 00000000..88b34456 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderGoods.java @@ -0,0 +1,27 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-09 10:15 + */ +@Data +public class OrderGoods { + /** + * 商品名称 + */ + private String name; + /** + * 商品价格(分) + */ + private Integer price; + /** + * 商品数量 + */ + private Integer count; + /** + * 商品单位 + */ + private String unit; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderReq.java new file mode 100644 index 00000000..3d995f7b --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/OrderReq.java @@ -0,0 +1,115 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 17:25 + */ +@Data +public class OrderReq { + /** + * 快递公司的编码,一律用小写字母,见《快递公司编码》 + */ + private String com; + /** + * 收件人姓名 + */ + private String recManName; + /** + * 收件人的手机号,手机号和电话号二者其一必填 + */ + private String recManMobile; + /** + * 收件人所在完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园 + */ + private String recManPrintAddr; + /** + * 寄件人姓名 + */ + private String sendManName; + /** + * 寄件人的手机号,手机号和电话号二者其一必填 + */ + private String sendManMobile; + /** + * 寄件人所在的完整地址,如广东深圳市深圳市南山区科技南十二路2号金蝶软件园B10 + */ + private String sendManPrintAddr; + /** + * 服务类型 + */ + private String serviceType; + /** + * 物品总重量KG,例:1.5,单位kg + */ + private Double weight; + /** + * 备注 + */ + private String remark; + /** + * 签名用随机字符串 + */ + private String salt; + /** + * callBackUrl订单信息回调 + */ + private String callbackUrl; + /** + * 订单类型,默认为0 0: 立即单 1: 预约单 + */ + private Integer orderType; + /** + * 取货时间(2020-02-02 22:00,指的是预约取件时间) + */ + + private String pickupTime; + /** + * 支付方式,SHIPPER: 寄付(默认),CONSIGNEE: 到付 + */ + private String payment; + /** + * 对应商家版物品来源流水号 + */ + private String orderSourceNo; + /** + * 物品来源 + */ + private String orderSourceType; + /** + * 店铺ID + */ + private String storeId; + /** + * 小费(分) + */ + private Integer additionFee; + /** + * 保险费用(闪送支持) + */ + private Integer insurance; + /** + * 保险产品ID(闪送支持) + */ + private String insuranceProId; + /** + * 商品价格 + */ + private Integer price; + /** + * 代收价格 + */ + private Integer CollectionPrice; + + private String partnerId; + + private String partnerKey; + + /** + * 商品详情(强烈建议提供,方便骑手在取货时确认货品信息 ;顺丰时必填) + */ + private List goods; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/QueryReq.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/QueryReq.java new file mode 100644 index 00000000..d6727a92 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/request/samecity/QueryReq.java @@ -0,0 +1,20 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.request.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 17:24 + */ +@Data +public class QueryReq { + + /** + * 任务ID + */ + private String taskId; + /** + * 订单ID + */ + private String orderId; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/AutoNumResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/AutoNumResp.java new file mode 100644 index 00000000..26f7a942 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/AutoNumResp.java @@ -0,0 +1,27 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 10:04 + */ +@Data +public class AutoNumResp { + /** + * 请忽略 + */ + public String lengthPre; + /** + * 快递公司对应的编码 + */ + private String comCode; + /** + * 请忽略 + */ + private String noPre; + /** + * 请忽略 + */ + private String noCount; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryData.java new file mode 100644 index 00000000..86bf1136 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryData.java @@ -0,0 +1,27 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 14:17 + */ +@Data +public class BOrderQueryData { + + private String province; + + private String city; + + private String district; + + private String addr; + + private String latitude; + + private String longitude; + + private List mktInfo; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryDataInfo.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryDataInfo.java new file mode 100644 index 00000000..551babf3 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderQueryDataInfo.java @@ -0,0 +1,22 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 14:24 + */ +@Data +public class BOrderQueryDataInfo { + /** + * 业务服务类型 + */ + private List serviceType; + /** + * 支持的快递公司编码 + */ + private String kuaidiCom; + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderResp.java new file mode 100644 index 00000000..3d5dcffb --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BOrderResp.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-09-17 14:31 + */ +@Data +public class BOrderResp { + /** + * 任务ID + */ + private String taskId; + /** + * 订单ID + */ + private String orderId; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BaseResponse.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BaseResponse.java new file mode 100644 index 00000000..9f6c15d6 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/BaseResponse.java @@ -0,0 +1,8 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-11-25 16:11 + */ +public class BaseResponse { +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintBaseResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintBaseResp.java new file mode 100644 index 00000000..16c8b6e4 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintBaseResp.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 18:48 + */ +@Data +public class PrintBaseResp { + + private String returnCode; + + private boolean result; + + private String message; + + private T data; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintCloudData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintCloudData.java new file mode 100644 index 00000000..d9c78208 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintCloudData.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 19:49 + */ +@Data +public class PrintCloudData { + + private String taskId; + + private String eOrder; + + private String kuaidinum; + + private String kuaidicom; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlData.java new file mode 100644 index 00000000..00fb15a8 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlData.java @@ -0,0 +1,33 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 19:31 + */ +@Data +public class PrintHtmlData { + /** + * html代码 + */ + private List template; + /** + * 快递单号 + */ + private String kuaidinum; + /** + * 大头笔 + */ + private String bulkpen; + /** + * 电子面单链接 + */ + private List templateurl; + /** + * 子单号 + */ + private String childNum; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlResp.java new file mode 100644 index 00000000..b9a05bd1 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintHtmlResp.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 19:29 + */ +@Data +public class PrintHtmlResp { + + private String taskId; + + private String message; + + private String status; + + private boolean result; + + private List data; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintImgData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintImgData.java new file mode 100644 index 00000000..4d4c21d2 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/PrintImgData.java @@ -0,0 +1,21 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-17 18:52 + */ +@Data +public class PrintImgData { + + private String taskId; + + private String eOrder; + + private String kuaidinum; + + private String kuaidicom; + + private String imgBase64; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackData.java new file mode 100644 index 00000000..da0bb8b7 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackData.java @@ -0,0 +1,35 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:13 + */ +@Data +public class QueryTrackData { + /** + * 时间,原始格式 + */ + private String time; + /** + * 物流轨迹节点内容 + */ + private String context; + /** + * 格式化后时间 + */ + private String ftime; + /** + * 行政区域的编码 + */ + private String areaCode; + /** + * 行政区域的名称 + */ + private String areaName; + /** + * 签收状态 (0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投) + */ + private String status; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackMapResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackMapResp.java new file mode 100644 index 00000000..828235a2 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackMapResp.java @@ -0,0 +1,30 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; +import lombok.ToString; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-12-24 17:34 + */ +@Data +@ToString(callSuper = true) +public class QueryTrackMapResp extends QueryTrackResp { + + /** + * 轨迹地图链接 + */ + private String trailUrl; + /** + * 预计到达时间 + */ + private String arrivalTime; + /** + * 平均耗时 + */ + private String totalTime; + /** + * 到达还需多少时间 + */ + private String remainTime; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackPosition.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackPosition.java new file mode 100644 index 00000000..6e13266e --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackPosition.java @@ -0,0 +1,20 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:16 + */ +@Data +public class QueryTrackPosition { + + /** + * 地址编码 + */ + private String number; + /** + * 地址名称 + */ + private String name; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackResp.java new file mode 100644 index 00000000..8eab1f74 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackResp.java @@ -0,0 +1,55 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:07 + */ +@Data +public class QueryTrackResp { + /** + * 消息体,请忽略 + */ + private String message; + /** + * 快递单号 + */ + private String nu; + /** + * 是否签收标记 + */ + private String ischeck; + /** + * 快递公司编码,一律用小写字母 + */ + private String com; + /** + * 通讯状态 + */ + private String status; + /** + * 轨迹详情数组 + */ + private List data; + /** + * 快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投,10待清关,11清关中,12已清关,13清关异常,14拒签 等13个状态 + */ + private String state; + /** + * 快递单明细状态标记 + */ + private String condition; + + private QueryTrackRouteInfo routeInfo; + /** + * 查不到轨迹或者其他问题返回码 + */ + private String returnCode; + /** + * 查不到轨迹或者其他问题返回结果 + */ + private boolean result; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackRouteInfo.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackRouteInfo.java new file mode 100644 index 00000000..1313e5da --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/QueryTrackRouteInfo.java @@ -0,0 +1,23 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:14 + */ +@Data +public class QueryTrackRouteInfo { + /** + * 出发位置 + */ + private QueryTrackPosition from; + /** + * 当前位置 + */ + private QueryTrackPosition cur; + /** + * 收货地 + */ + private QueryTrackPosition to; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SendSmsResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SendSmsResp.java new file mode 100644 index 00000000..4807880e --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SendSmsResp.java @@ -0,0 +1,19 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-21 9:19 + */ +@Data +public class SendSmsResp { + + private Integer status; + + private String data; + + private String msg; + + private Integer code; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackData.java new file mode 100644 index 00000000..2d685594 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackData.java @@ -0,0 +1,27 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-21 10:05 + */ +@Data +public class SmsCallbackData { + /** + * 传入的外部订单号 + */ + private String outorder; + /** + * 附加信息 + */ + private String message; + /** + * 短信发送状态:发送成功、发送失败、接收成功、接收失败 + */ + private String status; + /** + * 返回校验信息:MD5(id + phone + outorder);校验方式是MD5加密的:模板ID+手机号+外部订单号。用户可根据加密签名判断是否进行处理请求 + */ + private String sign; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackResp.java new file mode 100644 index 00000000..8f94cc67 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SmsCallbackResp.java @@ -0,0 +1,34 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * 短信回调结果 + * + * @Author: api.kuaidi100.com + * @Date: 2020-07-21 10:02 + */ +@Data +public class SmsCallbackResp { + /** + * 状态值:0-表示失败;1-表示成功 + */ + private Integer status; + /** + * 返回数据信息:短信发送状态 + */ + private SmsCallbackData data; + /** + * 信息内容:返回具体的信息体描述 + */ + private String msg; + /** + * 附加信息 + */ + private String extra; + /** + * 该值表示所数据的总条数 + */ + private Integer total; + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushData.java new file mode 100644 index 00000000..ba6d99a0 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushData.java @@ -0,0 +1,35 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-08-28 14:24 + */ +@Data +public class SubscribePushData { + /** + * 物流轨迹节点内容 + */ + private String context; + /** + * 时间,原始格式 + */ + private String time; + /** + * 格式化后时间 + */ + private String ftime; + /** + * 本数据元对应的签收状态。只有在开通签收状态服务(见上面"status"后的说明)且在订阅接口中提交resultv2标记后才会出现 + */ + private String status; + /** + * 本数据元对应的行政区域的编码,只有在开通签收状态服务(见上面"status"后的说明)且在订阅接口中提交resultv2标记后才会出现 + */ + private String areaCode; + /** + * 本数据元对应的行政区域的名称,开通签收状态服务(见上面"status"后的说明)且在订阅接口中提交resultv2标记后才会出现 + */ + private String areaName; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushParamResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushParamResp.java new file mode 100644 index 00000000..dd9ea104 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushParamResp.java @@ -0,0 +1,50 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-08-28 14:23 + */ +@Data +public class SubscribePushParamResp { + /** + * 监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。 + * 其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于stuatus=abort的状态, + * 需要增加额外的处理逻辑:若贵司校验快递公司编码和单号无误后仍需继续跟踪,则隔半小时再发起该单的订阅即可 + */ + private String status; + /** + * 包括got、sending、check三个状态,由于意义不大,已弃用,请忽略 + */ + private String billstatus; + /** + * 监控状态相关消息,如:3天查询无记录,60天无变化 + */ + private String message; + /** + * 快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。 + * 一个单如果我们连续3天都查不到结果,我方会 + * (1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空; + * (2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl) + * 推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码); + * 并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld为空、comNew=纠正后的快递公司编码。 + */ + private String autoCheck; + /** + * 贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 + */ + private String comOld; + /** + * 我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 + */ + private String comNew; + /** + * 最新查询结果,若在订阅报文中通过interCom字段开通了国际版,则此lastResult表示出发国的查询结果,全量,倒序(即时间最新的在最前) + */ + private SubscribePushResult lastResult; + /** + * 表示最新的目的国家的查询结果,只有在订阅报文中通过interCom=1字段开通了国际版才会显示此数据元,全量,倒序(即时间最新的在最前) + */ + private SubscribePushResult destResult; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushResult.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushResult.java new file mode 100644 index 00000000..f89041df --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribePushResult.java @@ -0,0 +1,45 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-08-28 14:24 + */ +@Data +public class SubscribePushResult { + /** + * 消息体,请忽略 + */ + private String message; + /** + * 快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投 等8个状态 + */ + private String state; + /** + * 通讯状态,请忽略 + */ + private String status; + /** + * 快递单明细状态标记,暂未实现,请忽略 + */ + private String condition; + /** + * 是否签收标记 + */ + private String ischeck; + /** + * 快递公司编码,一律用小写字母,点击查看快递公司编码 + */ + private String com; + /** + * 快递单号 + */ + private String nu; + /** + * 数组,包含多个对象,每个对象字段如展开所示 + */ + private List data; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeResp.java new file mode 100644 index 00000000..bac4839c --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeResp.java @@ -0,0 +1,17 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-16 19:18 + */ +@Data +public class SubscribeResp { + + private boolean result; + + private String returnCode; + + private String message; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushParamResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushParamResp.java new file mode 100644 index 00000000..f982249f --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushParamResp.java @@ -0,0 +1,46 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-08-28 14:23 + */ +@Data +public class SubscribeWithMapPushParamResp { + /** + * 监控状态:polling:监控中,shutdown:结束,abort:中止,updateall:重新推送。 + * 其中当快递单为已签收时status=shutdown,当message为“3天查询无记录”或“60天无变化时”status= abort ,对于stuatus=abort的状态, + * 需要增加额外的处理逻辑:若贵司校验快递公司编码和单号无误后仍需继续跟踪,则隔半小时再发起该单的订阅即可 + */ + private String status; + /** + * 包括got、sending、check三个状态,由于意义不大,已弃用,请忽略 + */ + private String billstatus; + /** + * 监控状态相关消息,如:3天查询无记录,60天无变化 + */ + private String message; + /** + * 快递公司编码是否出错,0为本推送信息对应的是贵司提交的原始快递公司编码,1为本推送信息对应的是我方纠正后的新的快递公司编码。 + * 一个单如果我们连续3天都查不到结果,我方会 + * (1)判断一次贵司提交的快递公司编码是否正确,如果正确,给贵司的回调接口(callbackurl)推送带有如下字段的信息:autoCheck=0、comOld与comNew都为空; + * (2)如果贵司提交的快递公司编码出错,我们会帮忙用正确的快递公司编码+原来的运单号重新提交订阅并开启监控(后续如果监控到单号有更新就给贵司的回调接口(callbackurl) + * 推送带有如下字段的信息:autoCheck=1、comOld=原来的公司编码、comNew=新的公司编码); + * 并且给贵方的回调接口(callbackurl)推送一条含有如下字段的信息:status=abort、autoCheck=0、comOld为空、comNew=纠正后的快递公司编码。 + */ + private String autoCheck; + /** + * 贵司提交的原始的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 + */ + private String comOld; + /** + * 我司纠正后的新的快递公司编码。详细见autoCheck后说明。若开启了国际版(即在订阅请求中增加字段interCom=1),则回调请求中暂无此字段 + */ + private String comNew; + /** + * 最新查询结果,若在订阅报文中通过interCom字段开通了国际版,则此lastResult表示出发国的查询结果,全量,倒序(即时间最新的在最前) + */ + private SubscribeWithMapPushResult lastResult; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushResult.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushResult.java new file mode 100644 index 00000000..60bef2f1 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/SubscribeWithMapPushResult.java @@ -0,0 +1,65 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Data; + +import java.util.List; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-08-28 14:24 + */ +@Data +public class SubscribeWithMapPushResult { + /** + * 消息体,请忽略 + */ + private String message; + /** + * 快递单当前状态,包括0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投 等8个状态 + */ + private String state; + /** + * 通讯状态,请忽略 + */ + private String status; + /** + * 快递单明细状态标记,暂未实现,请忽略 + */ + private String condition; + /** + * 是否签收标记 + */ + private String ischeck; + /** + * 快递公司编码,一律用小写字母,点击查看快递公司编码 + */ + private String com; + /** + * 快递单号 + */ + private String nu; + /** + * 数组,包含多个对象,每个对象字段如展开所示 + */ + private List data; + /** + * 轨迹地图链接 + */ + private String trailUrl; + /** + * 预计到达时间 + */ + private String arrivalTime; + /** + * 平均耗时 + */ + private String totalTime; + /** + * 到达还需多少时间 + */ + private String remainTime; + /** + * 路由信息 + */ + private QueryTrackRouteInfo routeInfo; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/ThirdAuthResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/ThirdAuthResp.java new file mode 100644 index 00000000..23c2ec7e --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/ThirdAuthResp.java @@ -0,0 +1,21 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response; + +import lombok.Getter; +import lombok.Setter; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-01-06 14:24 + */ +@Getter +@Setter +public class ThirdAuthResp { + // 授权链接 + private String url; + // 面单需要的partnerKey + private String partnerKey; + // 面单需要的parterId + private String parterId; + // 面单需要的net + private String net; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/COrderRespData.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/COrderRespData.java new file mode 100644 index 00000000..8ceb6431 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/COrderRespData.java @@ -0,0 +1,20 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response.cloud; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-10-27 16:00 + */ +@Data +public class COrderRespData { + /** + * 任务id + */ + private String taskId; + /** + * 快递100返回给您的平台订单id + */ + private String orderId; + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/CloudBaseResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/CloudBaseResp.java new file mode 100644 index 00000000..9ba24073 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/cloud/CloudBaseResp.java @@ -0,0 +1,20 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response.cloud; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-10-27 15:58 + */ +public class CloudBaseResp { + /** + * 响应码 + */ + private String code; + /** + * 响应结果描述 + */ + private String message; + /** + * 响应数据 + */ + private T data; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/AuthResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/AuthResp.java new file mode 100644 index 00000000..1a06301a --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/AuthResp.java @@ -0,0 +1,13 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-22 17:32 + */ +@Data +public class AuthResp { + + private String url; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/OrderResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/OrderResp.java new file mode 100644 index 00000000..0ef9e048 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/OrderResp.java @@ -0,0 +1,35 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-02-20 9:53 + */ +@Data +public class OrderResp { + /** + * 快递100任务id(归属快递100) + */ + private String taskId; + /** + * 快递公司 + */ + private String com; + /** + * 快递100订单号(归属快递100) + */ + private String orderId; + /** + * 费用 + */ + private Integer fee; + /** + * 距离(公里) + */ + private Integer distance; + /** + * 快递公司单号 + */ + private String kuaidiNum; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/QueryResp.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/QueryResp.java new file mode 100644 index 00000000..2e6df67f --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/response/samecity/QueryResp.java @@ -0,0 +1,47 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.response.samecity; + +import lombok.Data; + +/** + * @Author: api.kuaidi100.com + * @Date: 2021-03-02 11:04 + */ +@Data +public class QueryResp { + /** + * 骑手姓名(订单处于下单成功、取消状态下为空) + */ + private String courierName; + /** + * 骑手电话(订单处于下单成功、已签收、取消状态下为空) + */ + private String courierPhone; + /** + * 预计送达时间(订单处于下单成功、已签收、取消状态下为空) + */ + private String predictDeliveryTime; + /** + * 地图链接(订单处于下单成功、已签收、取消状态下为空) + */ + private String trailUrl; + /** + * 当前骑手维度(订单处于下单成功、已签收、取消状态下为空) + */ + private String lat; + /** + * 当前骑手经度(订单处于下单成功、已签收、取消状态下为空) + */ + private String lng; + /** + * 订单状态( 0-下单成功 1-已接单 10-已取货 13-已签收 9-用户主动取消 99-订单已取消) + */ + private Integer status; + /** + * 快递公司 + */ + private String com; + /** + * 快递公司 + */ + private String num; +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/HttpUtils.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/HttpUtils.java new file mode 100644 index 00000000..80606d9b --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/HttpUtils.java @@ -0,0 +1,125 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.utils; + +import co.yixiang.tools.utils.kuaidi100.sdk.pojo.HttpResult; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:59 + */ +public class HttpUtils { + + private final static String CHARSET_DEFAULT = "UTF-8"; + + /** + * post请求 编码格式默认UTF-8 + * + * @param url 请求url + * @return + */ + public static HttpResult doPost(String url, Object obj, int connectTimeout, int socketTimeout) { + CloseableHttpClient httpClient = HttpClientBuilder.create().build(); + CloseableHttpResponse resp = null; + + HttpResult result = new HttpResult(); + try { + Map params = ObjectToMapUtils.objectToMap(obj); + HttpPost httpPost = new HttpPost(url); + + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(connectTimeout) + .setSocketTimeout(socketTimeout).build(); + httpPost.setConfig(requestConfig); + if (params != null && params.size() > 0) { + List list = new ArrayList(); + for (Map.Entry entry : params.entrySet()) { + list.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); + } + httpPost.setEntity(new UrlEncodedFormEntity(list, CHARSET_DEFAULT)); + } + + resp = httpClient.execute(httpPost); + String body = EntityUtils.toString(resp.getEntity(), CHARSET_DEFAULT); + int statusCode = resp.getStatusLine().getStatusCode(); + result.setStatus(statusCode); + result.setBody(body); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (null != resp) { + try { + resp.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return result; + } + + /** + * post请求 编码格式默认UTF-8 + * + * @param url 请求url + * @return + */ + public static HttpResult doPostFile(String url, File file,int connectTimeout,int socketTimeout) { + CloseableHttpClient httpClient = HttpClientBuilder.create().build(); + CloseableHttpResponse resp = null; + + HttpResult result = new HttpResult(); + try { + + HttpPost httpPost = new HttpPost(url); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + RequestConfig requestConfig = RequestConfig.custom() + .setConnectTimeout(connectTimeout) + .setSocketTimeout(socketTimeout).build(); + httpPost.setConfig(requestConfig); + // 把文件加到HTTP的post请求中 + builder.addBinaryBody( + "file", + new FileInputStream(file), + ContentType.MULTIPART_FORM_DATA, + file.getName() + ); + //HttpEntity + HttpEntity entity = builder.build(); + httpPost.setEntity(entity); + resp = httpClient.execute(httpPost); + result.setStatus(resp.getStatusLine().getStatusCode()); + result.setBody(EntityUtils.toString(resp.getEntity(), CHARSET_DEFAULT)); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (null != resp) { + try { + resp.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return result; + } + +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/ObjectToMapUtils.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/ObjectToMapUtils.java new file mode 100644 index 00000000..e47feb9b --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/ObjectToMapUtils.java @@ -0,0 +1,46 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.utils; + +import java.lang.reflect.Field; +import java.util.*; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-12-01 9:19 + */ +public class ObjectToMapUtils { + /** + * 将Object对象里面的属性和值转化成Map对象 + * + * @param obj + * @return + * @throws IllegalAccessException + */ + public static Map objectToMap(Object obj) throws IllegalAccessException { + if (obj == null) { + return null; + } + Map map = new HashMap(); + List allField = getAllField(obj); + for (Field field : allField) { + field.setAccessible(true); + String fieldName = field.getName(); + String fieldValue = ""; + if (field.getType()== String.class || field.getType() == Integer.class || field.getType() == int.class){ + fieldValue = field.get(obj)==null?"": field.get(obj).toString(); + } + map.put(fieldName, fieldValue); + } + return map; + } + + private static List getAllField(Object obj){ + List fieldList = new ArrayList() ; + Class clazz = obj.getClass(); + while (clazz != null){ + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + return fieldList; + + } +} diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/PropertiesReader.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/PropertiesReader.java new file mode 100644 index 00000000..d4c6d073 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/PropertiesReader.java @@ -0,0 +1,73 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.utils; + +import java.io.InputStream; +import java.util.Properties; + +/** + * 读取配置文件工具类 + * + * @author api.kuaidi100.com + * @date 2020年7月21日 15:40:11 + */ +public class PropertiesReader { + + //创建Properties对象 + private static Properties property = new Properties(); + //在静态块中加载资源 + static { + try { + InputStream in = PropertiesReader.class.getResourceAsStream("/account.properties"); + property.load(in); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 获取字符串类型的值 + * @param key + * @return + */ + public static String get(String key) { + return property.getProperty(key); + } + + /** + * 获取Integer类型的值 + * @param key + * @return + */ + public static Integer getInteger(String key) { + String value = get(key); + return null == value ? null : Integer.valueOf(value); + } + + /** + * 获取Boolean类型的值 + * @param key + * @return + */ + public static Boolean getBoolean(String key) { + String value = get(key); + return null == value ? null : Boolean.valueOf(value); + } + + /** + * 设置一个键值对 + * @param key + * @param value + */ + public static void set(String key,String value){ + property.setProperty(key,value); + } + + /** + * 添加一个键值对 + * @param key + * @param value + */ + public static void add(String key,Object value){ + property.put(key,value); + } +} + diff --git a/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/SignUtils.java b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/SignUtils.java new file mode 100644 index 00000000..8fc5dd59 --- /dev/null +++ b/zsw-bxg/src/main/java/co/yixiang/tools/utils/kuaidi100/sdk/utils/SignUtils.java @@ -0,0 +1,69 @@ +package co.yixiang.tools.utils.kuaidi100.sdk.utils; + +import org.apache.commons.codec.digest.DigestUtils; + +/** + * @Author: api.kuaidi100.com + * @Date: 2020-07-14 16:54 + */ +public class SignUtils { + + /** + * 快递100加密方式统一为MD5后转大写 + * + * @param msg + * @return + */ + public static String sign(String msg) { + return DigestUtils.md5Hex(msg).toUpperCase(); + } + + /** + * 查询加密 + * @param param + * @param key + * @param customer + * @return + */ + public static String querySign(String param,String key,String customer){ + return sign(param+key+customer); + } + + /** + * 打印/下单 加密 + * @param param + * @param t + * @param key + * @param secret + * @return: java.lang.String + * @author: api.kuaidi100.com + * @time: 2020/12/3 9:23 + */ + public static String printSign(String param,String t,String key,String secret){ + return sign(param+t+key+secret); + } + + /** + * 云平台 加密 + * @param key + * @param secret + * @return: java.lang.String + * @author: api.kuaidi100.com + * @time: 2020/12/3 9:23 + */ + public static String cloudSign(String key,String secret){ + return sign(key+secret); + } + + /** + * 短信加密 + * @param key + * @param userId + * @return: java.lang.String + * @author: api.kuaidi100.com + * @time: 2020/12/3 9:32 + */ + public static String smsSign(String key,String userId){ + return sign(key+userId); + } +}