浏览代码

搜索,代码整合

1018653686@qq.com 1 年之前
父节点
当前提交
c450a31f77

+ 18 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/RunParamConstant.java

@@ -0,0 +1,18 @@
+package com.fjhx.victoriatourist.service.jd.constants;
+
+import cn.hutool.extra.spring.SpringUtil;
+
+public class RunParamConstant {
+    public static final String DOMAIN = "http://www.victoriatourist.ltd/prod-api";
+    public static final String redirect_uri = DOMAIN + "/open/jd/callback";
+    public static final String tenantId = "prod".equals(SpringUtil.getActiveProfile()) ? "wdly" : "wdlytest";
+
+    public static final String ACCESS_TOKEN = "access_token";
+    public static final String REFRESH_TOKEN = "refresh_token";
+
+    public static final Integer SLEEP_TEN_SECOND = 10000;
+    public static final Integer SLEEP_ONE_MINUTE = 60000;
+
+    public static final String JD_REFRESH_URL = "https://open-oauth.jd.com/oauth2/refresh_token?app_key=%s&app_secret=%s&grant_type=refresh_token&refresh_token=%s";
+
+}

+ 31 - 43
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdApiServiceImpl.java

@@ -28,6 +28,7 @@ import com.fjhx.victoriatourist.entity.jd.vo.TellBackOrderVO;
 import com.fjhx.victoriatourist.service.jd.*;
 import com.fjhx.victoriatourist.service.jd.constants.InitDictConstant;
 import com.fjhx.victoriatourist.service.jd.constants.JdParamConstant;
+import com.fjhx.victoriatourist.service.jd.constants.RunParamConstant;
 import com.fjhx.victoriatourist.service.jd.factory.JdClientFactory;
 import com.jd.open.api.sdk.DefaultJdClient;
 import com.jd.open.api.sdk.JdClient;
@@ -69,15 +70,7 @@ import java.util.stream.Collectors;
 @Service
 public class JdApiServiceImpl implements JdApiService {
 
-    private static final String DOMAIN = "http://www.victoriatourist.ltd/prod-api";
-    private static final String redirect_uri = DOMAIN + "/open/jd/callback";
 //    private final String tenantId = "prod".equals(SpringUtil.getActiveProfile()) ? "wdly" : "wdlytest";
-    private final String tenantId = "wdly";
-    private static final String ACCESS_TOKEN = "access_token";
-    private static final String REFRESH_TOKEN = "refresh_token";
-
-    private static final Integer SLEEP_TEN_SECOND = 10000;
-    private static final Integer SLEEP_ONE_MINUTE = 60000;
 
     @Autowired
     private JdOrderService jdOrderService;
@@ -88,10 +81,6 @@ public class JdApiServiceImpl implements JdApiService {
     @Autowired
     private JdBackDetailsService jdBackDetailsService;
     @Resource
-    private JdSalesReturnsService jdSalesReturnsService;
-    @Resource
-    private JdSalesReturnsDetailService jdSalesReturnsDetailService;
-    @Resource
     private JdInfoService jdInfoService;
     @Resource
     private JdClientFactory jdClientFactory;
@@ -125,7 +114,7 @@ public class JdApiServiceImpl implements JdApiService {
     public String build2LoginUrl() {
         String url = "https://open-oauth.jd.com/oauth2/to_login?app_key=%s&response_type=code&redirect_uri=%s&state=%s&scope=snsapi_base";
         //TODO redirect_uri需要加上项目的域名
-        url = String.format(url, JdParamConstant.appKey, redirect_uri, DateUtil.format(new Date(), "yyyyMMddHHmmss"));
+        url = String.format(url, JdParamConstant.appKey, RunParamConstant.redirect_uri, DateUtil.format(new Date(), "yyyyMMddHHmmss"));
         return url;
     }
 
@@ -168,10 +157,10 @@ public class JdApiServiceImpl implements JdApiService {
 //        List<ProductInfo> list = productInfoService.list(q->q.eq(ProductInfo::getName,"44"));
 //        SecurityUtils.clearTenantId();
         DynamicDataSourceContextHolder.push(SourceConstant.BASE);
-        SecurityUtils.setTenantId(tenantId);
+        SecurityUtils.setTenantId(RunParamConstant.tenantId);
         DictTenantTypeDto dto = new DictTenantTypeDto();
         dto.setCode("123");
-        dto.setTenantId(tenantId);
+        dto.setTenantId(RunParamConstant.tenantId);
         dictTenantTypeService.add(dto);
         SecurityUtils.clearTenantId();
         DynamicDataSourceContextHolder.poll();
@@ -191,7 +180,7 @@ public class JdApiServiceImpl implements JdApiService {
             log.error("refreshToken为空无法刷新Token请检查");
             return;
         }
-        String path = "https://open-oauth.jd.com/oauth2/refresh_token?app_key=%s&app_secret=%s&grant_type=refresh_token&refresh_token=%s";
+        String path = RunParamConstant.JD_REFRESH_URL;
         path = String.format(path, JdParamConstant.appKey,JdParamConstant.appSecret, jdInfoVo.getRefreshToken());
         try {
             JSONObject responseJson = getJSON(new HttpGet(path));
@@ -229,17 +218,17 @@ public class JdApiServiceImpl implements JdApiService {
      */
     @Async
     public void startJdOrder(){
-        ThreadUtil.safeSleep(SLEEP_ONE_MINUTE);
+        ThreadUtil.safeSleep(RunParamConstant.SLEEP_ONE_MINUTE);
         JdClient jdClient = jdClientFactory.getJdClient();
         while (true){
             JdInfoVo jdInfoVo = validJdInfo();
             if(ObjectUtil.isNull(jdInfoVo)){
-                ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+                ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
                 continue;
             }
             getJdOrderList(jdClient, jdInfoVo);
             log.info("京东订单采集完成");
-            ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+            ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
         }
     }
 
@@ -252,17 +241,17 @@ public class JdApiServiceImpl implements JdApiService {
      */
     @Async
     public void startJdBackOrder(){
-        ThreadUtil.safeSleep(SLEEP_ONE_MINUTE);
+        ThreadUtil.safeSleep(RunParamConstant.SLEEP_ONE_MINUTE);
         JdClient jdClient = jdClientFactory.getJdClient();
         while (true){
             JdInfoVo jdInfoVo = validJdInfo();
             if(ObjectUtil.isNull(jdInfoVo)){
-                ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+                ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
                 continue;
             }
             getJdBackOrder(jdClient, jdInfoVo);
             log.info("京东退货单采集完成");
-            ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+            ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
         }
     }
 
@@ -288,9 +277,9 @@ public class JdApiServiceImpl implements JdApiService {
 
     //订单状态:审核不通过/供应商驳回/已完成
     private static final ArrayList<String> notIn = new ArrayList<String>(){{
-        add("confirmState");
-        add("orderAttribute");
-        add("Status");
+        add("7");
+        add("20");
+        add("3");
     }};
 
     /**
@@ -299,24 +288,24 @@ public class JdApiServiceImpl implements JdApiService {
      */
     @Async
     public void refreshJdState(){
-        ThreadUtil.safeSleep(SLEEP_ONE_MINUTE);
+        ThreadUtil.safeSleep(RunParamConstant.SLEEP_ONE_MINUTE);
         JdClient jdClient = jdClientFactory.getJdClient();
         while (true){
             JdInfoVo jdInfoVo = validJdInfo();
             if(ObjectUtil.isNull(jdInfoVo)){
-                ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+                ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
                 continue;
             }
             handleRefreshDate(jdClient);
             log.info("刷新京东状态完成");
-            ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+            ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
         }
     }
 
 
     public void handleRefreshDate(JdClient jdClient) {
         DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
-        SecurityUtils.setTenantId(tenantId);
+        SecurityUtils.setTenantId(RunParamConstant.tenantId);
         try {
             //1.查询列表订单状态不为审核不通过/供应商驳回/已完成
             int pageIndex = 1;
@@ -337,7 +326,6 @@ public class JdApiServiceImpl implements JdApiService {
                 for (JdOrder jdOrder : jdOrderList) {
                     Long id = collect.get(jdOrder.getOrderId()).getId();
                     jdOrder.setId(id);
-                    DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
                     jdOrderService.saveOrUpdate(jdOrder);
                 }
                 pageIndex++;
@@ -360,7 +348,7 @@ public class JdApiServiceImpl implements JdApiService {
         componentDictTypeMap.forEach((k,v)->{
             VcGetcomponentlistRequest request=new VcGetcomponentlistRequest();
             DynamicDataSourceContextHolder.push(SourceConstant.BASE);
-            SecurityUtils.setTenantId(tenantId);
+            SecurityUtils.setTenantId(RunParamConstant.tenantId);
             try {
                 request.setType(k);
                 VcGetcomponentlistResponse response=jdClient.execute(request);
@@ -396,7 +384,7 @@ public class JdApiServiceImpl implements JdApiService {
         //获取京东仓库,并存入字典表
         VcGetwaredeliverdistinctlistRequest request=new VcGetwaredeliverdistinctlistRequest();
         DynamicDataSourceContextHolder.push(SourceConstant.BASE);
-        SecurityUtils.setTenantId(tenantId);
+        SecurityUtils.setTenantId(RunParamConstant.tenantId);
         try {
             VcGetwaredeliverdistinctlistResponse response = jdClient.execute(request);
 
@@ -433,7 +421,7 @@ public class JdApiServiceImpl implements JdApiService {
             }else{
                 dictTenantDataDto.setDictCode(dictTenantType.getCode());
                 dictTenantDataDto.setDictKey(StrUtil.toString(commonDictData.getKey()));
-                dictTenantDataDto.setTenantId(tenantId);
+                dictTenantDataDto.setTenantId(RunParamConstant.tenantId);
                 dictTenantDataDto.setSort(sort);
                 sort = sort + 10;
             }
@@ -452,14 +440,14 @@ public class JdApiServiceImpl implements JdApiService {
      */
     private DictTenantType handleDictType(String code, String name){
         DictTenantType dictTenantType = new DictTenantType();
-        List<DictTenantType> deliveryCenters = dictTenantTypeService.list(q -> q.eq(DictTenantType::getTenantId, tenantId).eq(DictTenantType::getCode, code));
+        List<DictTenantType> deliveryCenters = dictTenantTypeService.list(q -> q.eq(DictTenantType::getTenantId, RunParamConstant.tenantId).eq(DictTenantType::getCode, code));
         //处理字典类型表
         if(CollectionUtil.isNotEmpty(deliveryCenters)){
             dictTenantType = deliveryCenters.get(0);
         }else {
             dictTenantType.setCode(code);
             dictTenantType.setName(name);
-            dictTenantType.setTenantId(tenantId);
+            dictTenantType.setTenantId(RunParamConstant.tenantId);
             dictTenantType.setStatus(InitDictConstant.ENABLE);
             DictTenantTypeDto dictTenantTypeDto = BeanUtil.copyProperties(dictTenantType, DictTenantTypeDto.class);
             dictTenantTypeService.add(dictTenantTypeDto);
@@ -473,7 +461,7 @@ public class JdApiServiceImpl implements JdApiService {
      */
     private void getJdOrderList(JdClient client, JdInfoVo jdInfoVo){
         DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
-        SecurityUtils.setTenantId(tenantId);
+        SecurityUtils.setTenantId(RunParamConstant.tenantId);
         try {
             int pageIndex = 1;
             int totalPage = 1;
@@ -507,7 +495,7 @@ public class JdApiServiceImpl implements JdApiService {
                     //转为系统自己的实体类
                     List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderListFilter, JdOrder.class);
                     //赋值租户id
-                    jdOrderList.forEach(item -> item.setTenantId(tenantId));
+                    jdOrderList.forEach(item -> item.setTenantId(RunParamConstant.tenantId));
                     //将数据存储到库
                     jdOrderService.saveBatch(jdOrderList);
                     //获取明细
@@ -556,7 +544,7 @@ public class JdApiServiceImpl implements JdApiService {
      */
     private void getJdBackOrder(JdClient client, JdInfoVo jdInfoVo) {
         DynamicDataSourceContextHolder.push(SourceConstant.VICTORIATOURIST);
-        SecurityUtils.setTenantId(tenantId);
+        SecurityUtils.setTenantId(RunParamConstant.tenantId);
         try {
             int pageIndex = 1;
             int totalPage = 1;
@@ -632,13 +620,13 @@ public class JdApiServiceImpl implements JdApiService {
             boolean online = jdInfoVo.getOnline() > 0 ? true : false;
             if(!online){
                 log.info("京东已经下线");
-                ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+                ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
                 continue;
             }
             //开始校验是否符合条件
             if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
                 log.error("请线配置京东初始化查询时间");
-                ThreadUtil.safeSleep(SLEEP_TEN_SECOND);
+                ThreadUtil.safeSleep(RunParamConstant.SLEEP_TEN_SECOND);
                 continue;
             }
             try {
@@ -745,8 +733,8 @@ public class JdApiServiceImpl implements JdApiService {
      * @param jdInfoVo
      */
     private void convertJdInfoVO(JSONObject responseJson, JdInfoVo jdInfoVo) {
-        jdInfoVo.setAccessToken(responseJson.getString(ACCESS_TOKEN));
-        jdInfoVo.setRefreshToken(responseJson.getString(REFRESH_TOKEN));
+        jdInfoVo.setAccessToken(responseJson.getString(RunParamConstant.ACCESS_TOKEN));
+        jdInfoVo.setRefreshToken(responseJson.getString(RunParamConstant.REFRESH_TOKEN));
         int expires_in = responseJson.getIntValue("expires_in", 0);
         int offsetHour = 24;
         if(expires_in>0){
@@ -764,7 +752,7 @@ public class JdApiServiceImpl implements JdApiService {
      * @param responseJson
      */
     private void dealJdTokenResponse(JSONObject responseJson) {
-        if (ObjectUtil.isNotEmpty(responseJson.getString(ACCESS_TOKEN)) && ObjectUtil.isNotEmpty(responseJson.getString(REFRESH_TOKEN))) {
+        if (ObjectUtil.isNotEmpty(responseJson.getString(RunParamConstant.ACCESS_TOKEN)) && ObjectUtil.isNotEmpty(responseJson.getString(RunParamConstant.REFRESH_TOKEN))) {
             log.info("成功获取AccessToken并保存" + responseJson);
             JdInfoVo jdInfoVo = jdInfoService.getOne();
             convertJdInfoVO(responseJson, jdInfoVo);

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

@@ -22,11 +22,11 @@ public class JdInitializer {
     public void dataInitializer() {
         // 初始化数据的代码
         //收集京东采购单
-//        jdApiService.startJdOrder();
+        jdApiService.startJdOrder();
         //收集京东退货单
-//        jdApiService.startJdBackOrder();
+        jdApiService.startJdBackOrder();
         //刷新京东状态
-//        jdApiService.refreshJdState();
+        jdApiService.refreshJdState();
         //初始化字典
         jdApiService.initTenantDict();