瀏覽代碼

数据同步

zxfqwert 4 月之前
父節點
當前提交
8625e48fd6

+ 4 - 2
suishenbang-admin/src/main/resources/application-uat-druid.yml

@@ -4,11 +4,13 @@ spring:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: com.mysql.jdbc.Driver
         druid:
+#            break-after-acquire-failure: true
+#            connection-error-retry-attempts: 1
             # 主库数据源
             master:
-                url: jdbc:mysql://pc-uf637rafh16b6nl16.rwlb.rds.aliyuncs.com:3306/ssbtest?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://pc-uf6y41z2eu263pi22.rwlb.rds.aliyuncs.com:3306/ssbtest?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: ssbtest
-                password: Ssbtest#0812
+                password: Ssbtest#0617
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 2 - 1
suishenbang-quartz/src/main/java/com/dgtly/quartz/task/RyTask.java

@@ -58,7 +58,8 @@ public class RyTask
 
     /*立邦DIY人员定时同步*/
     public void analyDiyCustomer(){
-        analysisDiyCustomerComponent.analyDiyCustomer();
+        //analysisDiyCustomerComponent.analyDiyCustomer();
+        analysisDiyCustomerComponent.analyDiyCustomer1();
     }
 
     /*立邦DIY人员定时同步*/

+ 99 - 4
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/AnalysisDiyCustomerComponent.java

@@ -75,8 +75,89 @@ public class AnalysisDiyCustomerComponent {
     private Long[] roleStoreIds; //3.6门店经销商
     private Long[] roleBusiness;//7.5厨卫业务人员角色
     private Long[] roleXls;//13.1新零售经销商角色
-
+    private Long[] roleMsq;//经销商魔术漆
+    private Long[] roleWqBm;//经销商外墙业务经理
     private Long[] roleSfa;//5.1家装顾问挂sfa角色
+    public SyncLog analyDiyCustomer1() {
+
+        if (roleMsq == null) {
+            Long roleId = Long.parseLong(configService.selectConfigByKey("libang.msq.roleid"));
+            roleMsq = new Long[]{roleId};
+        }
+        Map<String, Customers> chainsMap = customersMapper.selectCustomerMapByChainsCode();
+
+        List<SyncFailDetail> failDetails = new ArrayList<>();
+        SyncLog syncLog = new SyncLog();
+        syncLog.setStartTime(new Date());
+        String packageId = "diycustomer" + syncLog.getStartTime().getTime();
+        syncLog.setPackageId(packageId);
+        long total = 0;
+        long success = 0;
+        Set<String> loginNameSet = sysUserService.selectAllUserLoginName();
+        Set<String> diyNameSet = sysUserService.selectDiyUserLoginName();
+
+
+        String MsqUserJson = "";
+        try {
+            MsqUserJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.MSQ, 1 + ""));
+        } catch (Exception e) {
+            log.error("获取经销商魔术漆施工人员接口错误!");
+            customerAccessTokenUtil.reSetToken();
+            throw e;
+        }
+        JSONObject msqjson = JSONObject.parseObject(MsqUserJson);
+        Integer msqcount = msqjson.getInteger("count");
+        JSONArray MSQ = new JSONArray();
+        if (msqcount > 100) {
+            int co = 0;
+            if (msqcount % 100 != 0) {
+                co = (msqcount / 100) + 2;
+            } else {
+                co = (msqcount / 100) + 1;
+            }
+            for (int i = 1; i < co; i++) {
+                try {
+                    msqjson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.MSQ, i + "")));
+                } catch (Exception e) {
+                    log.error("循环获取经销魔术漆施工人员列表接口错误!第" + i + "页");
+                    customerAccessTokenUtil.reSetToken();
+                    throw e;
+                }
+                int code = msqjson.getInteger("code");
+                if (code == 0) {
+                    MSQ.addAll(msqjson.getJSONArray("data"));
+                }
+            }
+            success += buildSysUser(MSQ, loginNameSet, diyNameSet, 4, failDetails, packageId, chainsMap);
+            total += MSQ.size();
+        } else {
+            int code = msqjson.getInteger("code");
+            if (code == 0) {
+                MSQ.addAll(msqjson.getJSONArray("data"));
+                success += buildSysUser(MSQ, loginNameSet, diyNameSet, 4, failDetails, packageId, chainsMap);
+                total += MSQ.size();
+            }
+        }
+
+        try{
+            syncLog.setTotalCount(total);
+            syncLog.setSuccessCount(success);
+            syncLog.setFaileCount((long)failDetails.size());
+            syncLog.setEndTime(new Date());
+            syncLog.setSyncType("diycustomer");
+
+            if(failDetails.size()>0){
+                syncFailDetailMapper.batchInsertSyncFailDetail(failDetails);
+            }
+        }catch (Exception e){
+            log.error("解析用户插入解析日志出错",e);
+            e.printStackTrace();
+            throw new BusinessException("解析用户插入解析日志出错",e);
+        }finally {
+            syncLogService.insertSyncLog(syncLog);
+        }
+        return null;
+    }
     /**
      * 获取并解析DIY经销商用户
      * 因为经销商用户并不涉及用信息更新等方面 所以只插入不更新
@@ -133,6 +214,15 @@ public class AnalysisDiyCustomerComponent {
             Long roleId = Long.parseLong(configService.selectConfigByKey("libang.storeCustomer.roleid"));
             roleStoreIds = new Long[]{roleId};
         }
+        if (roleMsq == null) {
+            Long roleId = Long.parseLong(configService.selectConfigByKey("libang.msq.roleid"));
+            roleMsq = new Long[]{roleId};
+        }
+        if (roleWqBm == null) {
+            Long roleId = Long.parseLong(configService.selectConfigByKey("libang.wqbm.roleid"));
+            roleWqBm = new Long[]{roleId};
+        }
+
         Map<String,Customers> chainsMap = customersMapper.selectCustomerMapByChainsCode();
 
         List<SyncFailDetail> failDetails = new ArrayList<>();
@@ -325,9 +415,6 @@ public class AnalysisDiyCustomerComponent {
             success+=buildSysUser(MANAGER,loginNameSet,diyNameSet,1,failDetails,packageId,chainsMap);
             total+=mjson.getJSONArray("userlist").size();
         }
-
-
-
 //财务3.2
         String financeJson ="";
         try{
@@ -772,6 +859,10 @@ public class AnalysisDiyCustomerComponent {
                         user.setRoleIds(roleGuideIds);
                     }else if(isManager == 2){
                         user.setRoleIds(FinanceRoleIds);
+                    }else if(isManager == 4){
+                        user.setRoleIds(roleMsq);
+                    }else if(isManager == 5){
+                        user.setRoleIds(roleWqBm);
                     }else if(isManager == 3){
                         user.setRoleIds(HouseRoleIds);
                     }else if(isManager == 7){
@@ -846,6 +937,10 @@ public class AnalysisDiyCustomerComponent {
                             sysUserService.insertUserRole(user.getUserId(), FinanceRoleIds[0]);
                         }else if(isManager == 3){
                             sysUserService.insertUserRole(user.getUserId(), HouseRoleIds[0]);
+                        }else if(isManager == 4){
+                            sysUserService.insertUserRole(user.getUserId(), roleMsq[0]);
+                        }else if(isManager == 5){
+                            sysUserService.insertUserRole(user.getUserId(), roleWqBm[0]);
                         }else if (isManager ==7){
                             sysUserService.insertUserRole(user.getUserId(), roleXls[0]);
                         }else if(isManager == 9){

+ 15 - 0
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/utils/CustomerAccessTokenUtil.java

@@ -18,6 +18,9 @@ public class CustomerAccessTokenUtil {
         MANAGER,
         STOREGUIDE,
         FINANCE,
+
+        MSQ,
+        WQBM,
         RESELLER,
      /*   BOSSLIST,
         MANAGERLIST,
@@ -65,6 +68,8 @@ public class CustomerAccessTokenUtil {
     private String storeGuideListUrl ;
     //获取经销商财务人员列表(分页)
     private String financeListUrl ;
+    private String MsqListUrl ;
+    private String WqbmListUrl ;
     //获取经销商仓管人员列表(分页)
     private String warehouseListUrl ;
     //厨卫 获取老板列表
@@ -98,6 +103,10 @@ public class CustomerAccessTokenUtil {
         storeGuideListUrl =domain+"/wechatwork/diydt/v1/user/storeGuide/list?access_token=%s";
         //获取经销商财务人员列表(分页)存在name,code
         financeListUrl =domain+"/wechatwork/diydt/v2/user/finance/list?page=%s&access_token=%s";
+
+        MsqListUrl =domain+"/wechatwork/diydt/v1/user/magic/list?page=%s&access_token=%s";
+
+        WqbmListUrl =domain+"/api/diydt/v1/user/outwall/list?page=%s&access_token=%s";
         //获取经销商仓管人员列表(分页)存在name,code
         warehouseListUrl =domain+"/wechatwork/diydt/v2/user/warehouse/list?page=%s&access_token=%s";
         /**
@@ -174,6 +183,12 @@ public class CustomerAccessTokenUtil {
             case FINANCE:
                 url = String.format(financeListUrl,pageNum,token);
                 break;
+            case MSQ:
+                url = String.format(MsqListUrl,pageNum,token);
+                break;
+            case WQBM:
+                url = String.format(WqbmListUrl,pageNum,token);
+                break;
             case RESELLER:
                 url = String.format(resellerUrl,pageNum,token);
                 break;