Browse Source

调试通过代码提交

zhouy 4 years ago
parent
commit
aa6e46a3bd

+ 11 - 11
src/main/java/com/uas/eis/UasEisApplication.java

@@ -9,15 +9,15 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import com.uas.eis.core.config.DynamicDataSourceRegister;
 import com.uas.eis.core.config.DynamicDataSourceRegister;
 import com.uas.eis.core.support.TokenPropertiesListener;
 import com.uas.eis.core.support.TokenPropertiesListener;
 
 
-@SpringBootApplication
+@SpringBootApplication
 @EnableCaching
 @EnableCaching
-//@EnableScheduling		开启定时任务
-@Import({DynamicDataSourceRegister.class})
-public class UasEisApplication {
-	public static void main(String[] args) {
-		SpringApplication application = new SpringApplication(UasEisApplication.class);
-		application.addListeners(new TokenPropertiesListener("token.properties"));
-		application.run(args);
-	}
-	
-}
+@EnableScheduling
+@Import({DynamicDataSourceRegister.class})
+public class UasEisApplication {
+	public static void main(String[] args) {
+		SpringApplication application = new SpringApplication(UasEisApplication.class);
+		application.addListeners(new TokenPropertiesListener("token.properties"));
+		application.run(args);
+	}
+	
+}

+ 39 - 0
src/main/java/com/uas/eis/config/AsyncConfig.java

@@ -0,0 +1,39 @@
+package com.uas.eis.config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+/**
+ * @Author: zhouy
+ * @Date: 2020/5/22 13:43
+ */
+@Configuration
+@EnableAsync  // 启用异步任务
+public class AsyncConfig {
+    // 声明一个线程池(并指定线程池的名字)
+    @Bean("taskExecutor")
+    public Executor asyncExecutor() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        //核心线程数10:线程池创建时候初始化的线程数
+        executor.setCorePoolSize(2);
+        //最大线程数20:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
+        executor.setMaxPoolSize(20);
+        //缓冲队列500:用来缓冲执行任务的队列
+        executor.setQueueCapacity(1000);
+        //允许线程的空闲时间60秒:当超过了核心线程出之外的线程在空闲时间到达之后会被销毁
+        executor.setKeepAliveSeconds(60);
+        //线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
+        executor.setThreadNamePrefix("DailyAsync-");
+        //所有任务处理完毕开始关闭线程池
+        executor.setWaitForTasksToCompleteOnShutdown(true);
+        // rejection-policy:当pool已经达到max size的时候,如何处理新任务
+        // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+        executor.initialize();
+        return executor;
+    }
+}

+ 21 - 0
src/main/java/com/uas/eis/sdk/entity/Seller.java

@@ -0,0 +1,21 @@
+package com.uas.eis.sdk.entity;
+
+import lombok.Data;
+
+/**
+ * @author: zhouy
+ * @date: 2021/9/17 9:10
+ * @desc: 店铺
+ */
+
+@Data
+public class Seller {
+    private  Integer sid;
+    private  Integer mid;
+    private  String name;
+    private  String account_name;
+    private  Integer seller_account_id;
+    private  String region;
+    private  String country;
+
+}

+ 9 - 11
src/main/java/com/uas/eis/sdk/okhttp/AKRestClient.java

@@ -1,17 +1,17 @@
 package com.uas.eis.sdk.okhttp;
 package com.uas.eis.sdk.okhttp;
-
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.uas.eis.sdk.core.HttpMethod;
 import com.uas.eis.sdk.core.HttpMethod;
 import com.uas.eis.sdk.core.HttpRequest;
 import com.uas.eis.sdk.core.HttpRequest;
 import com.uas.eis.sdk.core.HttpResponse;
 import com.uas.eis.sdk.core.HttpResponse;
 import com.uas.eis.sdk.entity.Result;
 import com.uas.eis.sdk.entity.Result;
 import com.uas.eis.sdk.resp.AccessTokenGetResp;
 import com.uas.eis.sdk.resp.AccessTokenGetResp;
+import com.uas.eis.sdk.resp.SellerGetResp;
 import com.uas.eis.sdk.sign.ApiSign;
 import com.uas.eis.sdk.sign.ApiSign;
 import lombok.Builder;
 import lombok.Builder;
 import lombok.Data;
 import lombok.Data;
-
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
+
 @Data
 @Data
 @Builder
 @Builder
 public class AKRestClient {
 public class AKRestClient {
@@ -57,30 +57,28 @@ public class AKRestClient {
         return execute.readEntity(Object.class);
         return execute.readEntity(Object.class);
     }
     }
 
 
-    public Object getSellers(String appId,  String access_token) throws Exception {
+    public SellerGetResp getSellers(String appId, String access_token) throws Exception {
         Map<String, Object> requestHeaders = defaultHeaders(appId, access_token);
         Map<String, Object> requestHeaders = defaultHeaders(appId, access_token);
         String sign = getRequestSign(appId, requestHeaders, new HashMap<>());
         String sign = getRequestSign(appId, requestHeaders, new HashMap<>());
-        System.out.println(sign);
         HttpRequest<Object> build = HttpRequest.builder(Object.class)
         HttpRequest<Object> build = HttpRequest.builder(Object.class)
                 .method(HttpMethod.GET)
                 .method(HttpMethod.GET)
                 .endpoint(this.endpoint)
                 .endpoint(this.endpoint)
-                .path("/data/seller/lists")
+                .path("erp/sc/data/seller/lists")
                 .queryParams(requestHeaders)
                 .queryParams(requestHeaders)
-                //.queryParam("sign", sign)
-                //.json(JSON.toJSONString(requestParams))
+                .queryParam("sign", sign)
                 .build();
                 .build();
         HttpResponse execute = HttpExecutor.create().execute(build);
         HttpResponse execute = HttpExecutor.create().execute(build);
-        return execute.readEntity(Object.class);
+        return execute.readEntity(SellerGetResp.class);
     }
     }
     public Object getSellerOrders(String appId,  String access_token, Map<String, Object> requestParams) throws Exception {
     public Object getSellerOrders(String appId,  String access_token, Map<String, Object> requestParams) throws Exception {
         Map<String, Object> requestHeaders = defaultHeaders(appId, access_token);
         Map<String, Object> requestHeaders = defaultHeaders(appId, access_token);
-        //String sign = getRequestSign(appId, requestHeaders, new HashMap<>());
+        String sign = getRequestSign(appId, requestHeaders, requestParams);
         HttpRequest<Object> build = HttpRequest.builder(Object.class)
         HttpRequest<Object> build = HttpRequest.builder(Object.class)
                 .method(HttpMethod.POST)
                 .method(HttpMethod.POST)
                 .endpoint(this.endpoint)
                 .endpoint(this.endpoint)
-                .path("/data/mws/orders")
+                .path("erp/sc/data/mws/orders")
                 .queryParams(requestHeaders)
                 .queryParams(requestHeaders)
-               // .queryParam("sign", sign)
+                .queryParam("sign", sign)
                 .json(JSON.toJSONString(requestParams))
                 .json(JSON.toJSONString(requestParams))
                 .build();
                 .build();
         HttpResponse execute = HttpExecutor.create().execute(build);
         HttpResponse execute = HttpExecutor.create().execute(build);

+ 19 - 0
src/main/java/com/uas/eis/sdk/resp/SellerGetResp.java

@@ -0,0 +1,19 @@
+package com.uas.eis.sdk.resp;
+
+import com.uas.eis.sdk.entity.Seller;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author: zhouy
+ * @date: 2021/9/16 17:51
+ * @desc: 店铺接收对象
+ */
+@Data
+public class SellerGetResp {
+    private String code;
+    private String msg;
+    private List<Seller> sellerList;
+}

+ 1 - 2
src/main/java/com/uas/eis/service/LingxingService.java

@@ -10,8 +10,7 @@ package com.uas.eis.service;
  * https://csbd.w.eolinker.com/#/share/project/api/?groupID=-1&shareCode=4k6NYb&shareToken=$2y$10$gs1s62Vl.tZywl~2F9M.uaMeTc~2FJniR.lLSy4i2OW9vka0N~2FTvibCF2&shareID=215514
  * https://csbd.w.eolinker.com/#/share/project/api/?groupID=-1&shareCode=4k6NYb&shareToken=$2y$10$gs1s62Vl.tZywl~2F9M.uaMeTc~2FJniR.lLSy4i2OW9vka0N~2FTvibCF2&shareID=215514
  */
  */
 public interface LingxingService {
 public interface LingxingService {
-    //获取店铺信息
-    void getSellers(String appId);
+
     //获取订单信息
     //获取订单信息
     void getSellerOrders(String appId);
     void getSellerOrders(String appId);
 }
 }

+ 14 - 11
src/main/java/com/uas/eis/serviceImpl/LingxingServiceImpl.java

@@ -4,7 +4,9 @@ import com.uas.eis.config.LingXingConfig;
 import com.uas.eis.sdk.entity.Result;
 import com.uas.eis.sdk.entity.Result;
 import com.uas.eis.sdk.okhttp.AKRestClient;
 import com.uas.eis.sdk.okhttp.AKRestClient;
 import com.uas.eis.sdk.resp.AccessTokenGetResp;
 import com.uas.eis.sdk.resp.AccessTokenGetResp;
+import com.uas.eis.sdk.resp.SellerGetResp;
 import com.uas.eis.service.LingxingService;
 import com.uas.eis.service.LingxingService;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -21,8 +23,10 @@ public class LingxingServiceImpl implements LingxingService {
     @Resource
     @Resource
     private LingXingConfig lingXingConfig;
     private LingXingConfig lingXingConfig;
 
 
+
     @Override
     @Override
-    public void getSellers(String appId) {
+    @Async("taskExecutor")
+    public void getSellerOrders(String appId) {
         String appSecret = lingXingConfig.getApps().get(appId);
         String appSecret = lingXingConfig.getApps().get(appId);
         try {
         try {
             /**
             /**
@@ -33,26 +37,25 @@ public class LingxingServiceImpl implements LingxingService {
             /**
             /**
              * 获取店铺信息
              * 获取店铺信息
              * */
              * */
-           /* Object o = AKRestClient.builder().endpoint(lingXingConfig.getApiUrl()).build().getSellers(appId,
-                    String.valueOf(accessTokenGetResp.getData().get("access_token")) );*/
+            SellerGetResp sellerGetResp = AKRestClient.builder().endpoint(lingXingConfig.getApiUrl()).build().getSellers(appId,
+                    String.valueOf(accessTokenGetResp.getData().get("access_token")) );
+            //待完善记录店铺信息
+
+
+            //订单信息
 
 
             Map<String ,Object> requestParam = new HashMap<>();
             Map<String ,Object> requestParam = new HashMap<>();
-            requestParam.put("sid", 1);
+            requestParam.put("sid", 622);
             requestParam.put("start_date", "2021-07-03");
             requestParam.put("start_date", "2021-07-03");
             requestParam.put("end_date", "2021-08-04");
             requestParam.put("end_date", "2021-08-04");
+            //上次同步时间
 
 
-             Object o = AKRestClient.builder().endpoint(lingXingConfig.getApiUrl()).build().getSellerOrders(appId,
+            Object o1 = AKRestClient.builder().endpoint(lingXingConfig.getApiUrl()).build().getSellerOrders(appId,
                     String.valueOf(accessTokenGetResp.getData().get("access_token")), requestParam);
                     String.valueOf(accessTokenGetResp.getData().get("access_token")), requestParam);
 
 
-            System.out.println(o);
 
 
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
-
-    @Override
-    public void getSellerOrders(String appId) {
-
-    }
 }
 }

+ 34 - 0
src/main/java/com/uas/eis/task/LingxingTask.java

@@ -1,11 +1,20 @@
 package com.uas.eis.task;
 package com.uas.eis.task;
 
 
+import com.uas.eis.config.LingXingConfig;
 import com.uas.eis.dao.BaseDao;
 import com.uas.eis.dao.BaseDao;
+import com.uas.eis.service.LingxingService;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.CountDownLatch;
+import java.util.stream.Collectors;
+
 /**
 /**
  * @author: zhouy
  * @author: zhouy
  * @date: 2021/9/16 9:11
  * @date: 2021/9/16 9:11
@@ -16,7 +25,32 @@ public class LingxingTask {
 
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
 
+    @Resource
+    private LingxingService lingxingService;
+
+    @Resource
+    private LingXingConfig lingXingConfig;
+
     @Autowired
     @Autowired
     private BaseDao baseDao;
     private BaseDao baseDao;
+    //定时注解 @cron
+    public void getSellerOrders(){
+        logger.info("同步领星订单-开始");
+        Date date = new Date();
+        Set<String> appSet =lingXingConfig.getApps().keySet();
+        if(appSet.size()>0){
+
+            final CountDownLatch countDownLatch = new CountDownLatch(appSet.size());
+            try {
+                appSet.stream().forEach(appId -> {
+                    lingxingService.getSellerOrders(appId);
+                });
+                countDownLatch.await();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+        logger.info("同步领星订单-结束:用时"+((System.currentTimeMillis()-date.getTime())/1000));
+    }
 
 
 }
 }