Quellcode durchsuchen

走ipad 主备的 但是又不走评级的 全改走默认

sgw vor 3 Wochen
Ursprung
Commit
c469d1ad6e

+ 37 - 32
fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java

@@ -459,16 +459,6 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                 return;
             }
 
-//            String[] userKey = logVo.getUserId().split("\\|");
-//            if (userKey.length < 3) {
-//                log.error("用户 ID {} 格式不正确,跳过处理。", logVo.getUserId());
-//                return;
-//            }
-
-//            String qwUserId = userKey[0].trim();
-//            String companyUserId = userKey[1].trim();
-//            String companyId = userKey[2].trim();
-
 
             //获取企业微信员工的称呼//从redis里或者从库里取
             QwUser qwUserByRedis = qwExternalContactService.getQwUserByRedis(logVo.getCorpId(),logVo.getQwUserId());
@@ -943,33 +933,21 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                     String sortLink = createLinkByMiniApp(setting, logVo, sendTime, courseId, videoId,
                             qwUserId, companyUserId, companyId, externalId,isOfficial,sopLogs.getFsUserId());
 
-                    if (!miniMap.isEmpty() && sendMsgType==1) {
-                        Map<Integer, List<CompanyMiniapp>> integerListMap = miniMap.get(Long.valueOf(companyId));
-                        if (integerListMap != null) {
 
-                            int effectiveGrade = (grade == null) ? 5 : grade;
-                            int listIndex = (effectiveGrade == 1 || effectiveGrade == 2) ? 0 : 1;
-                            List<CompanyMiniapp> miniapps = integerListMap.get(listIndex);
+                    //算主备小程序
+                    String finalAppId = getAppIdFromMiniMap(miniMap, companyId, sendMsgType, grade);
 
-                            if (miniapps != null && !miniapps.isEmpty()) {
-                                CompanyMiniapp companyMiniapp = miniapps.get(0);
-                                if (companyMiniapp != null && !StringUtil.strIsNullOrEmpty(companyMiniapp.getAppId())) {
-                                    setting.setMiniprogramAppid(companyMiniapp.getAppId());
-                                }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
-                                    setting.setMiniprogramAppid(miniAppId);
-                                }
-                            }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
-                                setting.setMiniprogramAppid(miniAppId);
-                            }
-                        }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
-                            setting.setMiniprogramAppid(miniAppId);
-                        }
-                    }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
-                        setting.setMiniprogramAppid(miniAppId);
-                    }else {
+                    if (StringUtil.strIsNullOrEmpty(finalAppId)) {
+                        finalAppId = miniAppId;
+                    }
+
+                    if (!StringUtil.strIsNullOrEmpty(finalAppId)) {
+                        setting.setMiniprogramAppid(finalAppId);
+                    } else {
                         log.error("公司的小程序id为空:采用了前端传的固定值" + sopLogs.getSopId());
                     }
 
+
                     setting.setMiniprogramPage(sortLink.replaceAll("^[\\s\\u2005]+", ""));
 
                     try {
@@ -999,6 +977,33 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
         enqueueQwSopLogs(sopLogs);
     }
 
+    private String getAppIdFromMiniMap(Map<Long, Map<Integer, List<CompanyMiniapp>>> miniMap,
+                                       String companyId,
+                                       int sendMsgType,
+                                       Integer grade) {
+        if (miniMap.isEmpty() || sendMsgType != 1) {
+            return null;
+        }
+
+        Map<Integer, List<CompanyMiniapp>> gradeMap = miniMap.get(Long.valueOf(companyId));
+        if (gradeMap == null) {
+            return null;
+        }
+
+        int effectiveGrade = (grade == null) ? 5 : grade;
+        int listIndex = (effectiveGrade == 1 || effectiveGrade == 2) ? 0 : 1;
+        List<CompanyMiniapp> miniapps = gradeMap.get(listIndex);
+
+        if (miniapps == null || miniapps.isEmpty()) {
+            return null;
+        }
+
+        CompanyMiniapp companyMiniapp = miniapps.get(0);
+        return (companyMiniapp != null && !StringUtil.strIsNullOrEmpty(companyMiniapp.getAppId()))
+                ? companyMiniapp.getAppId()
+                : null;
+    }
+
     /**
      * 深拷贝 Content 对象,避免使用 JSON 进行序列化和反序列化
      */