|
@@ -2,10 +2,16 @@ package com.raycos.raycosdatacenterapi.amzorder.impl;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.raycos.raycoscommon.Internal.datacenterapi.TbAmzPullOrderTask;
|
|
|
+import com.raycos.raycoscommon.Internal.datacenterapi.TbAmzToken;
|
|
|
+import com.raycos.raycoscommon.Internal.datacenterapi.TbStoreInfo;
|
|
|
+import com.raycos.raycoscommon.Internal.datacenterapi.vo.Orders0VO;
|
|
|
+import com.raycos.raycoscommon.utils.HttpClientUtilRacy;
|
|
|
import com.raycos.raycosdatacenterapi.amzorder.AmzPullOrderService;
|
|
|
import com.raycos.raycosdatacenterapi.amzorder.util.AmazonUtil;
|
|
|
import com.raycos.raycosdatacenterapi.amzorder.util.CommonUtil;
|
|
|
+import com.raycos.raycosdatacenterapi.amzorder.util.Constant;
|
|
|
import com.raycos.raycosdatacenterapi.authorize.AmzTokenService;
|
|
|
+import com.raycos.raycosdatacenterapi.authorize.StoreInfoService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpEntity;
|
|
@@ -13,10 +19,18 @@ import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.HttpMethod;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.time.ZoneOffset;
|
|
|
+import java.time.ZonedDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -30,6 +44,9 @@ public class AmzPullOrderServiceImpl implements AmzPullOrderService {
|
|
|
@Autowired
|
|
|
private AmzTokenService amzTokenService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private StoreInfoService storeInfoService;
|
|
|
+
|
|
|
//@Resource(name = "ExternalNetwork")
|
|
|
private static RestTemplate enRrestTemplate;
|
|
|
|
|
@@ -46,75 +63,171 @@ public class AmzPullOrderServiceImpl implements AmzPullOrderService {
|
|
|
|
|
|
|
|
|
|
|
|
- /**
|
|
|
- * 拉取亚马逊订单
|
|
|
- *
|
|
|
- * @throws Exception
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void sendGetOrders(TbAmzPullOrderTask task) throws Exception {
|
|
|
-
|
|
|
- // 根据 企业编号 与站点 查询 amz接口令牌
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 实时拉去订单
|
|
|
+ * @param map
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String getOrderRealTime(Orders0VO orders0VO)throws Exception{
|
|
|
+ try{
|
|
|
+ //公司id
|
|
|
+ String companyId = orders0VO.getCompanyId();
|
|
|
+ //外部系统id
|
|
|
+ String externalSystemId = orders0VO.getExternalSystemId();
|
|
|
+ //请求时间
|
|
|
+ String createdAfter = orders0VO.getCreatedAfter();
|
|
|
+ //请求url
|
|
|
+ TbAmzToken tbAmzTokenQuery = new TbAmzToken();
|
|
|
+ tbAmzTokenQuery.setCompanyId(companyId);
|
|
|
+ tbAmzTokenQuery.setExternalSystemId(externalSystemId);
|
|
|
+ //获取token信息
|
|
|
+ List<TbAmzToken> listTbAmzToken = amzTokenService.selAmzToken(tbAmzTokenQuery);
|
|
|
+ //获取token信息
|
|
|
+ TbStoreInfo tbStoreInfoQuery = new TbStoreInfo();
|
|
|
+ tbStoreInfoQuery.setCompanyId(companyId);
|
|
|
+ tbStoreInfoQuery.setExternalSystemId(externalSystemId);
|
|
|
+ //获取商户信息
|
|
|
+ List<TbStoreInfo> listTbStoreInfo = storeInfoService.selStoreInfo(tbStoreInfoQuery);
|
|
|
+ //只有token 和 商户信息 不为空的情况下请求数据
|
|
|
+ if(!CollectionUtils.isEmpty(listTbAmzToken) && !CollectionUtils.isEmpty(listTbStoreInfo)){
|
|
|
+ TbAmzToken tbAmzToken = listTbAmzToken.get(0);
|
|
|
+ TbStoreInfo tbStoreInfo = listTbStoreInfo.get(0);
|
|
|
+
|
|
|
+
|
|
|
+// String accessToken = "Atza|IwEBIB_6Jfa97EdFW7l7xqJxNesLmTHpUNShv895BiFoTxDlk7iJANR50kIjoRyd4UN7XaY-KCzvQ8N7XUaPOXon0ItDF5CUBKWpo6sUFQo4bgEU5gn8faO_8mBDw2czmDq-mHTCr0Fg5bXpcn9oxsZZAJrA8qy_HtlDYQNvzt5MKfD_BC8Dr43FyKPgX8eBCD3X6T7pxJCbLhGvdcAqOPRzvwXwn6w7celgztswlV_2KJaZUGoy9cSyXG5yDsjoKpEq6TS7A3MLbBhybZwjqXyuPKUlcH5nh309tDouGasVHozEhxbhAoOcmQETZl5nhSrfz4JzmcRrULWhKZMo-yv4rSyU";
|
|
|
+ String accessToken = tbAmzToken.getAccessToken();
|
|
|
+ String marketplaceId = tbStoreInfo.getState();
|
|
|
+
|
|
|
+ String HOST = "sandbox.sellingpartnerapi-na.amazon.com";
|
|
|
+
|
|
|
+ String region = tbStoreInfo.getRegion();
|
|
|
+
|
|
|
+ String apiMethod = Constant.APIMETHODORDERS;
|
|
|
+
|
|
|
+
|
|
|
+ ZonedDateTime createdAfterA = ZonedDateTime.now(ZoneOffset.UTC).minusDays(60);
|
|
|
+ String createdAfterStr = createdAfterA.format(DateTimeFormatter.ISO_INSTANT);
|
|
|
+
|
|
|
+ ZonedDateTime createdBefore = ZonedDateTime.now(ZoneOffset.UTC).minusDays(1);
|
|
|
+ String createdBeforeStr = createdBefore.format(DateTimeFormatter.ISO_INSTANT);
|
|
|
+
|
|
|
+ String queryString = "CreatedAfter=TEST_CASE_200&MarketplaceIds=" + marketplaceId + "&MaxResultsPerPage=2";
|
|
|
+
|
|
|
+// String queryString = "CreatedAfter="+createdAfterStr+"&CreatedBefore="+createdBeforeStr+"&MarketplaceIds=" + marketplaceId + "&MaxResultsPerPage=20";
|
|
|
+// String queryString = "MarketplaceIds=" + marketplaceId + "&MaxResultsPerPage=20";
|
|
|
+
|
|
|
+ enRrestTemplate = new RestTemplate();
|
|
|
+ String url = "https://" + HOST + apiMethod + queryString;
|
|
|
+ log.info("======url==="+url);
|
|
|
+ // 设置请求头
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setAll(AmazonUtil.calculateAwsSignatureAndReturnHeaders(
|
|
|
+ apiMethod,
|
|
|
+ "GET",
|
|
|
+ HOST,
|
|
|
+ "",
|
|
|
+ queryString,
|
|
|
+ region,
|
|
|
+ accessToken
|
|
|
+ ));
|
|
|
+ // 创建请求实体
|
|
|
+ HttpEntity<String> entity = new HttpEntity<>(headers);
|
|
|
+
|
|
|
+ // 发送请求
|
|
|
+ ResponseEntity<String> resp = enRrestTemplate.exchange(
|
|
|
+ url,
|
|
|
+ HttpMethod.GET,
|
|
|
+ entity,
|
|
|
+ String.class
|
|
|
+ );
|
|
|
+ log.info(" orders 接口返回 " + JSONObject.toJSONString(resp));
|
|
|
+
|
|
|
+
|
|
|
+ return JSONObject.toJSONString(resp);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }catch (Exception e){
|
|
|
+ log.info("系统异常",e);
|
|
|
+ throw new Exception(e);
|
|
|
+ }
|
|
|
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
- private static final String accessToken = "Atza|IwEBIPmiS7q9d3TZFgfAbYxjTbWVEdtuYoRKgR1DTeywc1BY6EsA6ROmvoqqlwvx_08JWZLHgg5mSXMLuRVPu9vgDqhzTuVc4JH2qcRWf-wegd2JpJY5NslLho6IG5ftGSwwbiuKgrGA_AI1tnW9BkHbZZhdQbDlW4sqoKfVrT_E9iEyZYfCsOZtoLpScMWbaBi2jaHjRv27tuS2jzpeDF-NzOOAETzPD7PKWKNfLp__eq1QabglUJ6ax5sBMYPsdZm30CViI6yZXZrfkV0zctkDJ4TPy7K58ARU5okQhQu6v9WN8oRZQOfx6ziPHoLlD5u9kUAAGL4GRojFEeXi6rdX4mLUeEI8cQlXGyspsP1Uv8xbnA";
|
|
|
- private static final String marketplaceId = "ATVPDKIKX0DER";
|
|
|
-
|
|
|
- private static final String HOST = "sandbox.sellingpartnerapi-na.amazon.com";
|
|
|
- private static final String region = "us-east-1";
|
|
|
-
|
|
|
- private static final String apiMethod = "/orders/v0/orders?";
|
|
|
|
|
|
+ /**
|
|
|
+ * 拉取亚马逊订单
|
|
|
+ *
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void sendGetOrders(TbAmzPullOrderTask task) throws Exception {
|
|
|
|
|
|
-// Date date = new Date();
|
|
|
-// String reqDateTime = CommonUtil.getTimeFormat(date, "yyyyMMdd'T'HHmmss'Z'", true);
|
|
|
-
|
|
|
- public static void getorder1() throws Exception {
|
|
|
-
|
|
|
- String queryString = "CreatedAfter=TEST_CASE_200&MarketplaceIds=" + marketplaceId + "&MaxResultsPerPage=2";
|
|
|
- enRrestTemplate = new RestTemplate();
|
|
|
- String url = "https://" + HOST + apiMethod + queryString;
|
|
|
- // 设置请求头
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
- headers.setAll(AmazonUtil.calculateAwsSignatureAndReturnHeaders(
|
|
|
- apiMethod,
|
|
|
- "GET",
|
|
|
- HOST,
|
|
|
- "",
|
|
|
- queryString,
|
|
|
- region,
|
|
|
- accessToken
|
|
|
- ));
|
|
|
- // 创建请求实体
|
|
|
- HttpEntity<String> entity = new HttpEntity<>(headers);
|
|
|
-
|
|
|
- // 发送请求
|
|
|
- ResponseEntity<String> resp = enRrestTemplate.exchange(
|
|
|
- url,
|
|
|
- HttpMethod.GET,
|
|
|
- entity,
|
|
|
- String.class
|
|
|
- );
|
|
|
- log.info(" orders 接口返回 " + JSONObject.toJSONString(resp));
|
|
|
+ // 根据 企业编号 与站点 查询 amz接口令
|
|
|
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public static void main(String[] args) {
|
|
|
- Date date = new Date();
|
|
|
- String reqDateTime = CommonUtil.getTimeFormat(date, "yyyyMMdd'T'HHmmss'Z'", true);
|
|
|
- System.out.println(reqDateTime);
|
|
|
- try {
|
|
|
- AmzPullOrderServiceImpl.getorder1();
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
+// private static final String accessToken = "Atza|IwEBIMPWxFtDg9cy36K3k7OkSMhuMvwDjH0Tu2SMTUM5bPbGYahZ8wW5TN3KG7ZPdUkOWE4kXzfrr7OULKORenrWKAcayimriOL_xDw1cTp2hFOm4V4QOHDeY_Y7daGxkdZwNZZ-lO_V00Zjw_p6jx0if0R_uI5Oi3uStKO9oZTcnvMKhtdo4g9xtEIpt4gWWE9cOrOUW_Nt0Nvn1ZocTfwrUHBwD8imnbD4CuTXTJn6Fn1vGvxmAKPnSZOHBpJuQNOXpyR4v_SWXtmgdeJmfk7Kz14lTM4BUfjyXDeOM0k-mxKtHRnRu3rDh8kwa3onyNZxvAOKavKhYbTmyjEMMmxykoB4hx3wMRmUzel7eIYAXPQ4BA";
|
|
|
+ //"Atza|IwEBIPmiS7q9d3TZFgfAbYxjTbWVEdtuYoRKgR1DTeywc1BY6EsA6ROmvoqqlwvx_08JWZLHgg5mSXMLuRVPu9vgDqhzTuVc4JH2qcRWf-wegd2JpJY5NslLho6IG5ftGSwwbiuKgrGA_AI1tnW9BkHbZZhdQbDlW4sqoKfVrT_E9iEyZYfCsOZtoLpScMWbaBi2jaHjRv27tuS2jzpeDF-NzOOAETzPD7PKWKNfLp__eq1QabglUJ6ax5sBMYPsdZm30CViI6yZXZrfkV0zctkDJ4TPy7K58ARU5okQhQu6v9WN8oRZQOfx6ziPHoLlD5u9kUAAGL4GRojFEeXi6rdX4mLUeEI8cQlXGyspsP1Uv8xbnA";
|
|
|
+
|
|
|
+// private static final String accessToken = "Atza|IwEBIB_6Jfa97EdFW7l7xqJxNesLmTHpUNShv895BiFoTxDlk7iJANR50kIjoRyd4UN7XaY-KCzvQ8N7XUaPOXon0ItDF5CUBKWpo6sUFQo4bgEU5gn8faO_8mBDw2czmDq-mHTCr0Fg5bXpcn9oxsZZAJrA8qy_HtlDYQNvzt5MKfD_BC8Dr43FyKPgX8eBCD3X6T7pxJCbLhGvdcAqOPRzvwXwn6w7celgztswlV_2KJaZUGoy9cSyXG5yDsjoKpEq6TS7A3MLbBhybZwjqXyuPKUlcH5nh309tDouGasVHozEhxbhAoOcmQETZl5nhSrfz4JzmcRrULWhKZMo-yv4rSyU";
|
|
|
+// private static final String marketplaceId = "ATVPDKIKX0DER";
|
|
|
+//
|
|
|
+// private static final String HOST = "sandbox.sellingpartnerapi-na.amazon.com";
|
|
|
+// private static final String region = "us-east-1";
|
|
|
+//
|
|
|
+// private static final String apiMethod = "/orders/v0/orders?";
|
|
|
+//
|
|
|
+//
|
|
|
+//// Date date = new Date();
|
|
|
+//// String reqDateTime = CommonUtil.getTimeFormat(date, "yyyyMMdd'T'HHmmss'Z'", true);
|
|
|
+//
|
|
|
+// public static void getorder1() throws Exception {
|
|
|
+//
|
|
|
+// String queryString = "CreatedAfter=TEST_CASE_200&MarketplaceIds=" + marketplaceId + "&MaxResultsPerPage=2";
|
|
|
+// enRrestTemplate = new RestTemplate();
|
|
|
+// String url = "https://" + HOST + apiMethod + queryString;
|
|
|
+// // 设置请求头
|
|
|
+// HttpHeaders headers = new HttpHeaders();
|
|
|
+// headers.setAll(AmazonUtil.calculateAwsSignatureAndReturnHeaders(
|
|
|
+// apiMethod,
|
|
|
+// "GET",
|
|
|
+// HOST,
|
|
|
+// "",
|
|
|
+// queryString,
|
|
|
+// region,
|
|
|
+// accessToken
|
|
|
+// ));
|
|
|
+// // 创建请求实体
|
|
|
+// HttpEntity<String> entity = new HttpEntity<>(headers);
|
|
|
+//
|
|
|
+// // 发送请求
|
|
|
+// ResponseEntity<String> resp = enRrestTemplate.exchange(
|
|
|
+// url,
|
|
|
+// HttpMethod.GET,
|
|
|
+// entity,
|
|
|
+// String.class
|
|
|
+// );
|
|
|
+// log.info(" orders 接口返回 " + JSONObject.toJSONString(resp));
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// public static void main(String[] args) {
|
|
|
+// Date date = new Date();
|
|
|
+// String reqDateTime = CommonUtil.getTimeFormat(date, "yyyyMMdd'T'HHmmss'Z'", true);
|
|
|
+// System.out.println(reqDateTime);
|
|
|
+// try {
|
|
|
+// AmzPullOrderServiceImpl.getorder1();
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// }
|
|
|
|
|
|
}
|