Selaa lähdekoodia

Merge branch '新角色接入20250714' into prd

# Conflicts:
#	suishenbang-admin/src/main/resources/application-uat-druid.yml
zxfqwert 4 kuukautta sitten
vanhempi
commit
00562891a8

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

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

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

@@ -75,8 +75,147 @@ 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};
+        }
+        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<>();
+        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();
+            }
+        }
+
+
+
+        String WqBmUserJson = "";
+        try {
+            WqBmUserJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.WQBM, 1 + ""));
+        } catch (Exception e) {
+            log.error("获取经销外墙服务商人员接口错误!");
+            customerAccessTokenUtil.reSetToken();
+            throw e;
+        }
+        JSONObject wqbmjson = JSONObject.parseObject(WqBmUserJson);
+        Integer wqbmcount = wqbmjson.getInteger("count");
+        JSONArray WQBM = new JSONArray();
+        if (wqbmcount > 100) {
+            int co = 0;
+            if (wqbmcount % 100 != 0) {
+                co = (wqbmcount / 100) + 2;
+            } else {
+                co = (wqbmcount / 100) + 1;
+            }
+            for (int i = 1; i < co; i++) {
+                try {
+                    wqbmjson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.WQBM, i + "")));
+                } catch (Exception e) {
+                    log.error("循环获取经销外墙服务商人员列表接口错误!第" + i + "页");
+                    customerAccessTokenUtil.reSetToken();
+                    throw e;
+                }
+                int code = wqbmjson.getInteger("code");
+                if (code == 0) {
+                    WQBM.addAll(wqbmjson.getJSONArray("data"));
+                }
+            }
+            success += buildSysUser(WQBM, loginNameSet, diyNameSet, 5, failDetails, packageId, chainsMap);
+            total += WQBM.size();
+
+        } else {
+            int code = msqjson.getInteger("code");
+            if (code == 0) {
+                WQBM.addAll(msqjson.getJSONArray("data"));
+                success += buildSysUser(WQBM, loginNameSet, diyNameSet, 5, failDetails, packageId, chainsMap);
+                total += WQBM.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 +272,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 +473,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 +917,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 +995,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;