Browse Source

京东订单,详情,退货单,详情,字典初始化,状态更新

1018653686@qq.com 1 năm trước cách đây
mục cha
commit
dfd075afbb

+ 2 - 0
hx-admin/src/main/java/com/fjhx/admin/BytesailingApplication.java

@@ -3,9 +3,11 @@ package com.fjhx.admin;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
 
 @Slf4j
 @SpringBootApplication(scanBasePackages = "com.fjhx.**")
+@EnableAsync
 public class BytesailingApplication {
 
     public static void main(String[] args) {

+ 6 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdApiService.java

@@ -14,4 +14,10 @@ public interface JdApiService {
     void tellBackOrer(TellBackOrderVO tellBackOrderVO);
 
     void test();
+
+    void startJdOrder();
+
+    void startJdBackOrder();
+
+    void refreshJdState();
 }

+ 38 - 46
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdApiServiceImpl.java

@@ -21,10 +21,7 @@ import com.fjhx.tenant.entity.dict.po.DictTenantType;
 import com.fjhx.tenant.service.dict.DictTenantDataService;
 import com.fjhx.tenant.service.dict.DictTenantTypeService;
 import com.fjhx.victoriatourist.entity.jd.dto.JdInfoDto;
-import com.fjhx.victoriatourist.entity.jd.po.JdBack;
-import com.fjhx.victoriatourist.entity.jd.po.JdBackDetails;
-import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
-import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.fjhx.victoriatourist.entity.jd.po.*;
 import com.fjhx.victoriatourist.entity.jd.vo.CommonDictData;
 import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
 import com.fjhx.victoriatourist.entity.jd.vo.TellBackOrderVO;
@@ -57,6 +54,7 @@ import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpRequestBase;
 import org.apache.http.impl.client.HttpClients;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
@@ -78,6 +76,8 @@ public class JdApiServiceImpl implements JdApiService {
     private static final String ACCESS_TOKEN = "access_token";
     private static final String REFRESH_TOKEN = "refresh_token";
 
+    private static final Integer SLEEP_TIMES = 10000;
+
     @Autowired
     private JdOrderService jdOrderService;
     @Autowired
@@ -204,7 +204,7 @@ public class JdApiServiceImpl implements JdApiService {
     @Scheduled(cron = "0 0 0/1  * * ? ")
     //每分钟执行一次
 //    @Scheduled(cron = "0 0/1 *  * * ? ")
-    void orderSync(){
+    void refreshToken(){
         JdInfoVo jdInfoVo = jdInfoService.getOne();
         //如果过期时间减去当前时间小于90分钟,则要刷新token
         if(ObjectUtil.isNotNull(jdInfoVo.getExpireTime())){
@@ -226,26 +226,18 @@ public class JdApiServiceImpl implements JdApiService {
      * @author hj
      * @date 2023/12/13 22:30
      */
-//    @PostConstruct
+    @Async
     public void startJdOrder(){
         JdClient jdClient = jdClientFactory.getJdClient();
         while (true){
-            JdInfoVo jdInfoVo = jdInfoService.getOne();
-            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
-            if(!online){
-                log.info("京东已经下线");
-                ThreadUtil.safeSleep(10000);
-                continue;
-            }
-            //开始校验是否符合条件
-            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
-                log.error("请线配置京东初始化查询时间");
-                ThreadUtil.safeSleep(10000);
+            JdInfoVo jdInfoVo = validJdInfo();
+            if(ObjectUtil.isNull(jdInfoVo)){
+                ThreadUtil.safeSleep(SLEEP_TIMES);
                 continue;
             }
             getJdOrderList(jdClient, jdInfoVo);
             log.info("京东订单采集完成");
-            ThreadUtil.safeSleep(10000);
+            ThreadUtil.safeSleep(SLEEP_TIMES);
         }
     }
 
@@ -256,26 +248,18 @@ public class JdApiServiceImpl implements JdApiService {
      * @author hj
      * @date 2023/12/13 22:30
      */
-    @PostConstruct
+    @Async
     public void startJdBackOrder(){
         JdClient jdClient = jdClientFactory.getJdClient();
         while (true){
-            JdInfoVo jdInfoVo = jdInfoService.getOne();
-            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
-            if(!online){
-                log.info("京东已经下线");
-                ThreadUtil.safeSleep(10000);
-                continue;
-            }
-            //开始校验是否符合条件
-            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
-                log.error("请线配置京东初始化查询时间");
-                ThreadUtil.safeSleep(10000);
+            JdInfoVo jdInfoVo = validJdInfo();
+            if(ObjectUtil.isNull(jdInfoVo)){
+                ThreadUtil.safeSleep(SLEEP_TIMES);
                 continue;
             }
             getJdBackOrder(jdClient, jdInfoVo);
             log.info("京东退货单采集完成");
-            ThreadUtil.safeSleep(10000);
+            ThreadUtil.safeSleep(SLEEP_TIMES);
         }
     }
 
@@ -310,26 +294,18 @@ public class JdApiServiceImpl implements JdApiService {
      * 刷新京东状态
      * @param
      */
-//    @PostConstruct
+    @Async
     public void refreshJdState(){
         JdClient jdClient = jdClientFactory.getJdClient();
         while (true){
-            JdInfoVo jdInfoVo = jdInfoService.getOne();
-            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
-            if(!online){
-                log.info("京东已经下线");
-                ThreadUtil.safeSleep(10000);
-                continue;
-            }
-            //开始校验是否符合条件
-            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
-                log.error("请线配置京东初始化查询时间");
-                ThreadUtil.safeSleep(10000);
+            JdInfoVo jdInfoVo = validJdInfo();
+            if(ObjectUtil.isNull(jdInfoVo)){
+                ThreadUtil.safeSleep(SLEEP_TIMES);
                 continue;
             }
             handleRefreshDate(jdClient);
             log.info("刷新京东状态完成");
-            ThreadUtil.safeSleep(10000);
+            ThreadUtil.safeSleep(SLEEP_TIMES);
         }
     }
 
@@ -643,13 +619,13 @@ public class JdApiServiceImpl implements JdApiService {
             boolean online = jdInfoVo.getOnline() > 0 ? true : false;
             if(!online){
                 log.info("京东已经下线");
-                ThreadUtil.safeSleep(10000);
+                ThreadUtil.safeSleep(SLEEP_TIMES);
                 continue;
             }
             //开始校验是否符合条件
             if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
                 log.error("请线配置京东初始化查询时间");
-                ThreadUtil.safeSleep(10000);
+                ThreadUtil.safeSleep(SLEEP_TIMES);
                 continue;
             }
             try {
@@ -845,6 +821,22 @@ public class JdApiServiceImpl implements JdApiService {
         }
     }
 
+
+    private JdInfoVo validJdInfo(){
+        JdInfoVo jdInfoVo = jdInfoService.getOne();
+        boolean online = jdInfoVo.getOnline() > 0 ? true : false;
+        if(!online){
+            log.info("京东已经下线");
+            return null;
+        }
+        //开始校验是否符合条件
+        if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
+            log.error("请线配置京东初始化查询时间");
+            return null;
+        }
+        return jdInfoVo;
+    }
+
     public static void main(String[] args) throws Exception {
 //        JdClient client = new DefaultJdClient("http://api.jd.com/routerjson", "a1f79f4670fd43a28fa2de02abd86f03ytfm", JdParamConstant.appKey, JdParamConstant.appSecret);
         List<Integer> list = new ArrayList<>();

+ 32 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/initializers/JdInitializer.java

@@ -0,0 +1,32 @@
+package com.fjhx.victoriatourist.service.jd.initializers;
+
+import com.fjhx.victoriatourist.service.jd.JdApiService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+@Component
+public class JdInitializer {
+    @Resource
+    private JdApiService jdApiService;
+
+
+
+    /**
+     * 数据初始化
+     * @author hj
+     * @date 2023/12/19 21:15
+     */
+    @PostConstruct
+    public void dataInitializer() {
+        // 初始化数据的代码
+        //收集京东采购单
+//        jdApiService.startJdOrder();
+        //收集京东退货单
+        jdApiService.startJdBackOrder();
+        //刷新京东状态
+//        jdApiService.refreshJdState();
+
+    }
+}