From c094705a6271051dcd40747da95537a295534be3 Mon Sep 17 00:00:00 2001
From: zqy <2522236926@qq.com>
Date: 星期五, 26 十二月 2025 09:52:51 +0800
Subject: [PATCH] Revert "个人信息 修改时 新增一个最新更新时间"

---
 zhang-content/src/main/java/com/ruoyi/service/impl/InterfaceBasedSearchRouter.java |  422 ++++++++++++++++++----------------------------------
 1 files changed, 148 insertions(+), 274 deletions(-)

diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/InterfaceBasedSearchRouter.java b/zhang-content/src/main/java/com/ruoyi/service/impl/InterfaceBasedSearchRouter.java
index d6d25ed..91509a9 100644
--- a/zhang-content/src/main/java/com/ruoyi/service/impl/InterfaceBasedSearchRouter.java
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/InterfaceBasedSearchRouter.java
@@ -5,7 +5,7 @@
 import com.ruoyi.domain.ModuleSearchResult;
 import com.ruoyi.service.ModuleSearchable;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -24,11 +24,6 @@
 
     private final Map<String, ModuleSearchable> moduleSearchMap;
 
-    // 妯″潡鍒嗗壊绗�
-    private static final String MODULE_SEPARATOR = ",";
-
-    // 鍏ㄦā鍧楁爣璇�
-    private static final String ALL_MODULES_FLAG = "all";
 
     /**
      * 鑷姩鏀堕泦鎵�鏈夊疄鐜癕oduleSearchable鎺ュ彛鐨凚ean
@@ -48,16 +43,14 @@
         log.info("宸叉敞鍐屾悳绱㈡ā鍧�: {}", moduleSearchMap.keySet());
     }
 
-    @Async
-    public CompletableFuture<ModuleSearchResult> searchModuleAsync(String moduleCode, ModuleSearchable service,
-                                                                   String companion, Date startTime, Date endTime,String hasAttachment) {
+    @Async // 澹版槑姝ゆ柟娉曞紓姝ユ墽琛岋紝灏嗕娇鐢ㄦ垜浠笂闈㈤厤缃殑Executor
+    public CompletableFuture<ModuleSearchResult> searchModuleAsync(String moduleCode, ModuleSearchable service, String companion, Date startTime, Date endTime) {
+        // 灏嗗師鏉ュ湪lambda琛ㄨ揪寮忎腑鐨勬悳绱㈤�昏緫绉诲埌杩欓噷
         long start = System.currentTimeMillis();
         try {
-            List<?> data = service.search(companion, startTime, endTime,hasAttachment);
+            List<?> data = service.search(companion, startTime, endTime);
             long searchTime = System.currentTimeMillis() - start;
-            ModuleSearchResult result = ModuleSearchResult.success(
-                moduleCode, service.getModuleName(), data, data.size(), searchTime
-            );
+            ModuleSearchResult result = ModuleSearchResult.success(moduleCode, service.getModuleName(), data, data.size(), searchTime);
             return CompletableFuture.completedFuture(result);
         } catch (Exception e) {
             log.error("妯″潡[{}]鎼滅储澶辫触: {}", moduleCode, e.getMessage());
@@ -65,105 +58,121 @@
             return CompletableFuture.completedFuture(result);
         }
     }
-
     /**
-     * 閫氱敤鐨勮矾鐢辨悳绱㈣姹� - 缁熶竴鏁版嵁缁撴瀯鐗�
-     * 鏀寔鍔熻兘锛�
-     * 1. 鍗曚釜妯″潡锛� "module1"
-     * 2. 澶氫釜妯″潡锛� "module1,module2,module3" 锛堥�楀彿鍒嗛殧锛�
-     * 3. 鍏ㄦā鍧楋細   "all" 鎴� null 鎴� 绌哄瓧绗︿覆
-     * 4. 涓嶉�夋ā鍧楋細 鎸囧畾涓虹壒瀹氬�硷紝濡�"none"锛堝彲閫夊姛鑳斤級
-     *
-     * 缁熶竴杩斿洖鏁版嵁缁撴瀯锛�
-     * {
-     *   "success": true,
-     *   "data": {
-     *     "modules": {
-     *       "module1": { "data": [...], "count": 10, "searchTime": 100, "success": true },
-     *       "module2": { "error": "閿欒淇℃伅", "success": false }
-     *     },
-     *     "totalSelectedModules": 2,
-     *     "successModules": 1,
-     *     "errorModules": ["module2"],
-     *     "totalRecords": 10,
-     *     "searchTime": "2023-01-01T00:00:00.000+00:00",
-     *     "message": "鎼滅储瀹屾垚: 鎴愬姛1/2涓ā鍧楋紝鎬昏10鏉¤褰�"
-     *   }
-     * }
+     * 閫氱敤鐨勮矾鐢辨悳绱㈣姹傦紙鏀寔涓嶅悓鍙傛暟绫诲瀷锛�
+     */
+    /**
+     * 閫氱敤鐨勮矾鐢辨悳绱㈣姹�
      */
     public AjaxResult routeSearch(String moduleCode, Object... args) {
         log.info("璺敱鎼滅储: moduleCode={}, args={}", moduleCode, Arrays.toString(args));
 
-        // 楠岃瘉鍙傛暟鏁伴噺
-        if (args.length != 4) {
-            return buildErrorResponse("鍙傛暟鏁伴噺閿欒锛岄渶瑕�4涓弬鏁帮紝瀹為檯鏀跺埌: " + args.length, null);
+        // 鍏ㄦā鍧楁悳绱細褰搈oduleCode涓虹┖鎴栫壒瀹氭爣璇嗘椂
+        if (moduleCode == null || moduleCode.isEmpty() || "all".equalsIgnoreCase(moduleCode)) {
+            return searchAllModules(args);
         }
 
-        // 瑙f瀽妯″潡浠g爜
-        List<String> targetModules = parseModuleCodes(moduleCode);
-
-        if (targetModules.isEmpty()) {
-            // 涓嶉�夋ā鍧楃殑鎯呭喌
-            return handleNoModuleSelected();
+        // 鍗曚釜妯″潡鎼滅储锛堝師鏈夐�昏緫锛�
+        ModuleSearchable searchService = moduleSearchMap.get(moduleCode);
+        if (searchService == null) {
+            String availableModules = String.join(", ", moduleSearchMap.keySet());
+            return AjaxResult.error("涓嶆敮鎸佺殑鎼滅储妯″潡: " + moduleCode + "銆傚彲鐢ㄦā鍧�: [" + availableModules + "]");
         }
 
-        // 缁熶竴澶勭悊锛氬崟涓ā鍧椼�佸涓ā鍧楅兘浣跨敤鍚屾牱鐨勫鐞嗛�昏緫
-        return executeModulesSearch(targetModules, args);
+        try {
+            if (args.length == 3) {
+                return handleFourArgs(searchService, args);
+            } else {
+                return AjaxResult.error("涓嶆敮鎸佺殑鍙傛暟鏁伴噺锛岄渶瑕�3涓弬鏁帮紝瀹為檯鏀跺埌: " + args.length);
+            }
+        } catch (Exception e) {
+            log.error("鎼滅储鎵ц澶辫触: moduleCode={}", moduleCode, e);
+            return AjaxResult.error("鎼滅储鎵ц澶辫触: " + e.getMessage());
+        }
+    }
+
+    private AjaxResult handleFourArgs(ModuleSearchable searchService, Object[] args) {
+        String companion = null;
+        Date happenStartTime = null;
+        Date happenEndTime = null;
+
+        // 澶勭悊companion鍙傛暟
+        if (args[0] instanceof String) {
+            companion = (String) args[0];
+        } else if (args[0] != null) {
+            companion = args[0].toString();
+        }
+
+        // 澶勭悊鏃堕棿鍙傛暟
+        if (args[1] instanceof Date) {
+            happenStartTime = (Date) args[1];
+        }
+
+        if (args[2] instanceof Date) {
+            happenEndTime = (Date) args[2];
+        }
+
+        // 鍒ゆ柇鎼滅储绫诲瀷
+        boolean hasTimeRange = happenStartTime != null && happenEndTime != null;
+
+        List<?> result;
+        if (hasTimeRange) {
+            // 鏈夋椂闂磋寖鍥达細鎵ц鏃堕棿鑼冨洿鎼滅储
+            log.info("鎵ц鏃堕棿鑼冨洿鎼滅储: companion={}, startTime={}, endTime={}",
+                companion, happenStartTime, happenEndTime);
+            result = searchService.search(companion, happenStartTime, happenEndTime);
+        } else {
+            // 鏃犳椂闂磋寖鍥达細鍙寜companion鎼滅储
+            log.info("鎵цcompanion鎼滅储: companion={}, 鏃堕棿鑼冨洿涓虹┖", companion);
+            result = searchService.search(companion, null, null);
+        }
+
+        return AjaxResult.success("鎼滅储鎴愬姛", result);
     }
 
     /**
-     * 缁熶竴鎵ц妯″潡鎼滅储
-     * 鏃犺鏄崟涓ā鍧楄繕鏄涓ā鍧楋紝閮戒娇鐢ㄧ粺涓�鐨勬暟鎹粨鏋勮繑鍥�
+     * 鍏ㄦā鍧楁悳绱細鑾峰彇鎵�鏈夋ā鍧楃殑鏁版嵁骞跺垎绫�
      */
-    private AjaxResult executeModulesSearch(List<String> moduleCodes, Object... args) {
-        log.info("鎵ц妯″潡鎼滅储: moduleCodes={}, 妯″潡鏁伴噺={}", moduleCodes, moduleCodes.size());
+    private AjaxResult searchAllModules(Object[] args) {
+        log.info("鎵ц鍏ㄦā鍧楁悳绱紝鍙傛暟鏁伴噺: {}", args.length);
 
-        // 楠岃瘉鎵�鏈夋ā鍧楁槸鍚﹀瓨鍦�
-        List<String> invalidModules = moduleCodes.stream()
-            .filter(code -> !moduleSearchMap.containsKey(code))
-            .collect(Collectors.toList());
+        try {
+            Map<String, Object> result = new LinkedHashMap<>();
+            int totalCount = 0;
+            int successCount = 0;
 
-        if (!invalidModules.isEmpty()) {
-            String availableModules = String.join(", ", moduleSearchMap.keySet());
-            String errorMsg = String.format("浠ヤ笅妯″潡涓嶆敮鎸�: %s銆傚彲鐢ㄦā鍧�: [%s]",
-                invalidModules, availableModules);
-            return buildErrorResponse(errorMsg, moduleCodes);
-        }
+            // 澶勭悊鎼滅储鍙傛暟
+            String companion = extractCompanion(args);
+            Date happenStartTime = extractStartTime(args);
+            Date happenEndTime = extractEndTime(args);
 
-        // 鎻愬彇鎼滅储鍙傛暟
-        String companion = extractCompanion(args);
-        Date happenStartTime = extractStartTime(args);
-        Date happenEndTime = extractEndTime(args);
-        String hasAttachment = extractHasAttachment(args);
+            System.out.println("鍏ㄦā鍧楁悳绱� ------ 鍚屼即: " + companion);
+            System.out.println("鍏ㄦā鍧楁悳绱� ------ 寮�濮嬫椂闂�: " + happenStartTime);
+            System.out.println("鍏ㄦā鍧楁悳绱� ------ 缁撴潫鏃堕棿: " + happenEndTime);
 
-        // 寮傛骞惰鎼滅储
-        List<CompletableFuture<ModuleSearchResult>> futures = moduleCodes.stream()
-            .map(code -> searchModuleAsync(code, moduleSearchMap.get(code),
-                companion, happenStartTime, happenEndTime,hasAttachment))
-            .collect(Collectors.toList());
+            // 骞惰澶勭悊鎵�鏈夋ā鍧楁悳绱紙鎻愰珮鎬ц兘锛�
+            List<CompletableFuture<ModuleSearchResult>> futures = moduleSearchMap.entrySet().stream().map(entry ->
+                searchModuleAsync(entry.getKey(),
+                    entry.getValue(), companion,
+                    happenStartTime, happenEndTime))
+                .collect(Collectors.toList());
 
-        // 绛夊緟鎵�鏈夋悳绱㈠畬鎴�
-        CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
 
-        // 鏀堕泦缁撴灉
-        Map<String, Object> modulesResult = new LinkedHashMap<>();
-        int successCount = 0;
-        int totalCount = 0;
-        List<String> errorModules = new ArrayList<>();
+            // 绛夊緟鎵�鏈夋悳绱㈠畬鎴�
+            CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
 
-        for (int i = 0; i < futures.size(); i++) {
-            try {
-                ModuleSearchResult moduleResult = futures.get(i).get();
-                String moduleCode = moduleCodes.get(i);
-
+            // 鏀堕泦缁撴灉
+            for (CompletableFuture<ModuleSearchResult> future : futures) {
+                ModuleSearchResult moduleResult = future.get();
                 if (moduleResult.isSuccess()) {
-                    Map<String, Object> moduleData = new HashMap<>();
-                    moduleData.put("data", moduleResult.getData());
-                    moduleData.put("count", moduleResult.getCount());
-                    moduleData.put("searchTime", moduleResult.getSearchTime());
-                    moduleData.put("success", true);
+                    // 鍒涘缓涓�涓彲鍙樼殑HashMap骞跺~鍏ユ暟鎹�
+                    Map<String, Object> resultMap = new HashMap<>();
+                    resultMap.put("data", moduleResult.getData());
+                    resultMap.put("count", moduleResult.getCount());
+                    resultMap.put("searchTime", moduleResult.getSearchTime());
 
-                    modulesResult.put(moduleCode, moduleData);
+                    // 灏嗘瀯寤哄ソ鐨凪ap鏀惧叆鏈�缁堢粨鏋滀腑
+                    result.put(moduleResult.getModuleCode(), resultMap);
 
                     successCount++;
                     totalCount += moduleResult.getCount();
@@ -171,189 +180,59 @@
                     Map<String, Object> errorInfo = new HashMap<>();
                     errorInfo.put("error", moduleResult.getErrorMessage());
                     errorInfo.put("success", false);
-                    errorInfo.put("moduleName", getModuleName(moduleCode));
-                    modulesResult.put(moduleCode, errorInfo);
-                    errorModules.add(moduleCode);
-                }
-            } catch (Exception e) {
-                log.error("鑾峰彇妯″潡[{}]鎼滅储缁撴灉澶辫触", moduleCodes.get(i), e);
-                String moduleCode = moduleCodes.get(i);
-                Map<String, Object> errorInfo = new HashMap<>();
-                errorInfo.put("error", "鑾峰彇缁撴灉寮傚父: " + e.getMessage());
-                errorInfo.put("success", false);
-                errorInfo.put("moduleName", getModuleName(moduleCode));
-                modulesResult.put(moduleCode, errorInfo);
-                errorModules.add(moduleCode);
-            }
-        }
-
-        // 鏋勫缓鏈�缁堣繑鍥炵粨鏋�
-        Map<String, Object> finalResult = new LinkedHashMap<>();
-        finalResult.put("modules", modulesResult);
-        finalResult.put("totalSelectedModules", moduleCodes.size());
-        finalResult.put("successModules", successCount);
-        finalResult.put("errorModules", errorModules);
-        finalResult.put("totalRecords", totalCount);
-        finalResult.put("searchTime", new Date());
-
-        // 鏋勫缓娑堟伅
-        String message = buildSuccessMessage(moduleCodes.size(), successCount, errorModules, totalCount);
-        finalResult.put("message", message);
-
-        return AjaxResult.success(message, finalResult);
-    }
-
-    /**
-     * 鑾峰彇妯″潡鍚嶇О
-     */
-    private String getModuleName(String moduleCode) {
-        ModuleSearchable service = moduleSearchMap.get(moduleCode);
-        return service != null ? service.getModuleName() : "鏈煡妯″潡";
-    }
-
-    /**
-     * 鏋勫缓鎴愬姛娑堟伅
-     */
-    private String buildSuccessMessage(int totalSelected, int successCount,
-                                       List<String> errorModules, int totalRecords) {
-        if (errorModules.isEmpty()) {
-            if (totalSelected == 1) {
-                return String.format("鎼滅储鎴愬姛: 鎵惧埌%s鏉¤褰�", totalRecords);
-            } else {
-                return String.format("鎼滅储瀹屾垚: 鎴愬姛%s/%s涓ā鍧楋紝鎬昏%s鏉¤褰�",
-                    successCount, totalSelected, totalRecords);
-            }
-        } else {
-            return String.format("鎼滅储瀹屾垚: 鎴愬姛%s/%s涓ā鍧楋紝鎬昏%s鏉¤褰曪紝澶辫触妯″潡: %s",
-                successCount, totalSelected, totalRecords, errorModules);
-        }
-    }
-
-    /**
-     * 鏋勫缓閿欒鍝嶅簲
-     */
-    private AjaxResult buildErrorResponse(String errorMessage, List<String> moduleCodes) {
-        Map<String, Object> errorData = new HashMap<>();
-        errorData.put("message", errorMessage);
-        errorData.put("success", false);
-
-        if (moduleCodes != null) {
-            errorData.put("selectedModules", moduleCodes);
-        }
-
-        errorData.put("totalSelectedModules", moduleCodes != null ? moduleCodes.size() : 0);
-        errorData.put("successModules", 0);
-        errorData.put("errorModules", moduleCodes != null ? moduleCodes : Collections.emptyList());
-        errorData.put("totalRecords", 0);
-        errorData.put("searchTime", new Date());
-
-        return AjaxResult.error(errorMessage, errorData);
-    }
-
-    /**
-     * 瑙f瀽妯″潡浠g爜
-     * 鏀寔澶氱鏍煎紡锛�
-     * 1. 绌�/绌虹櫧/null -> 鍏ㄦā鍧楁悳绱�
-     * 2. "all" -> 鍏ㄦā鍧楁悳绱�
-     * 3. 鍗曚釜妯″潡 -> 杩斿洖鍗曚釜妯″潡
-     * 4. 閫楀彿鍒嗛殧鐨勫涓ā鍧� -> 杩斿洖妯″潡鍒楄〃
-     * 5. 鍏朵粬鐗规畩鏍囪瘑锛堝"none"锛�-> 杩斿洖绌哄垪琛ㄨ〃绀轰笉閫夋ā鍧�
-     */
-    private List<String> parseModuleCodes(String moduleCode) {
-        if (StringUtils.isBlank(moduleCode)) {
-            // 绌�/绌虹櫧/null -> 鍏ㄦā鍧楁悳绱�
-            return new ArrayList<>(moduleSearchMap.keySet());
-        }
-
-        String trimmedCode = moduleCode.trim();
-
-        // 澶勭悊鍏ㄦā鍧楁爣璇�
-        if (ALL_MODULES_FLAG.equalsIgnoreCase(trimmedCode)) {
-            return new ArrayList<>(moduleSearchMap.keySet());
-        }
-
-        // 澶勭悊涓嶉�夋ā鍧楃殑鎯呭喌锛堝彲閫夋墿灞曪級
-        if ("none".equalsIgnoreCase(trimmedCode) || "null".equalsIgnoreCase(trimmedCode)) {
-            return Collections.emptyList();
-        }
-
-        // 妫�鏌ユ槸鍚﹀寘鍚�楀彿锛堝涓ā鍧楋級
-        if (trimmedCode.contains(MODULE_SEPARATOR)) {
-            String[] moduleArray = trimmedCode.split(MODULE_SEPARATOR);
-            return Arrays.stream(moduleArray)
-                .map(String::trim)
-                .filter(code -> !code.isEmpty())
-                .collect(Collectors.toList());
-        }
-
-        // 鍗曚釜妯″潡
-        return Collections.singletonList(trimmedCode);
-    }
-
-    /**
-     * 涓嶉�夋ā鍧楃殑澶勭悊閫昏緫 - 浣跨敤缁熶竴鏁版嵁缁撴瀯
-     */
-    private AjaxResult handleNoModuleSelected() {
-        Map<String, Object> result = new LinkedHashMap<>();
-        result.put("modules", Collections.emptyMap());
-        result.put("totalSelectedModules", 0);
-        result.put("successModules", 0);
-        result.put("errorModules", Collections.emptyList());
-        result.put("totalRecords", 0);
-        result.put("searchTime", new Date());
-        result.put("message", "鏈�夋嫨鎼滅储妯″潡");
-        result.put("availableModules", new ArrayList<>(moduleSearchMap.keySet()));
-
-        return AjaxResult.success("鏈�夋嫨鎼滅储妯″潡锛岃閫夋嫨瑕佹悳绱㈢殑妯″潡", result);
-    }
-
-    /**
-     * 鑾峰彇鍙敤妯″潡鍒楄〃
-     */
-    public AjaxResult getAvailableModules() {
-        Map<String, Object> result = new HashMap<>();
-
-        List<Map<String, Object>> modules = moduleSearchMap.values().stream()
-            .map(service -> {
-                Map<String, Object> moduleInfo = new HashMap<>();
-                moduleInfo.put("moduleCode", service.getModuleCode());
-                moduleInfo.put("moduleName", service.getModuleName());
-                return moduleInfo;
-            })
-            .collect(Collectors.toList());
-
-        result.put("modules", modules);
-        result.put("total", modules.size());
-
-        return AjaxResult.success("鑾峰彇鍙敤妯″潡鎴愬姛", result);
-    }
-
-    /**
-     * 楠岃瘉妯″潡浠g爜鏄惁瀛樺湪
-     */
-    public boolean validateModule(String moduleCode) {
-        if (StringUtils.isBlank(moduleCode)) {
-            return false;
-        }
-
-        // 澶勭悊澶氫釜妯″潡鐨勬儏鍐�
-        if (moduleCode.contains(MODULE_SEPARATOR)) {
-            String[] moduleArray = moduleCode.split(MODULE_SEPARATOR);
-            for (String code : moduleArray) {
-                String trimmedCode = code.trim();
-                if (!moduleSearchMap.containsKey(trimmedCode) &&
-                    !ALL_MODULES_FLAG.equalsIgnoreCase(trimmedCode)) {
-                    return false;
+                    result.put(moduleResult.getModuleCode(), errorInfo);
                 }
             }
-            return true;
-        }
 
-        // 鍗曚釜妯″潡鐨勬儏鍐�
-        String trimmedCode = moduleCode.trim();
-        return moduleSearchMap.containsKey(trimmedCode) ||
-            ALL_MODULES_FLAG.equalsIgnoreCase(trimmedCode);
+            // 鏋勫缓杩斿洖缁撴灉
+            Map<String, Object> finalResult = new LinkedHashMap<>();
+            finalResult.put("totalModules", moduleSearchMap.size());
+            finalResult.put("successModules", successCount);
+            finalResult.put("totalRecords", totalCount);
+            finalResult.put("searchTime", new Date());
+            finalResult.put("modules", result);
+
+            log.info("鍏ㄦā鍧楁悳绱㈠畬鎴�: 鎴愬姛{}/{}涓ā鍧楋紝鎬昏{}鏉¤褰�",
+                successCount, moduleSearchMap.size(), totalCount);
+
+            return AjaxResult.success("鍏ㄦā鍧楁悳绱㈡垚鍔�", finalResult);
+
+        } catch (Exception e) {
+            log.error("鍏ㄦā鍧楁悳绱㈡墽琛屽け璐�", e);
+            return AjaxResult.error("鍏ㄦā鍧楁悳绱㈠け璐�: " + e.getMessage());
+        }
     }
+
+    /**
+     * 鍗曚釜妯″潡鎼滅储鍖呰鏂规硶
+     */
+    private ModuleSearchResult searchSingleModule(String moduleCode, ModuleSearchable service,
+                                                  String companion, Date startTime, Date endTime) {
+        long start = System.currentTimeMillis();
+        try {
+            List<?> data = service.search(companion, startTime, endTime);
+            long searchTime = System.currentTimeMillis() - start;
+
+            return ModuleSearchResult.success(moduleCode, service.getModuleName(),
+                data, data.size(), searchTime);
+
+        } catch (Exception e) {
+            log.error("妯″潡[{}]鎼滅储澶辫触: {}", moduleCode, e.getMessage());
+            return ModuleSearchResult.error(moduleCode, e.getMessage());
+        }
+    }
+//
+//    /**
+//     * 鑾峰彇鎵�鏈夊彲鎼滅储鐨勬ā鍧椾俊鎭�
+//     */
+//    public List<SysMenu> getAvailableModules() {
+//        return moduleSearchMap.values().stream()
+//            .map(service -> SysMenu.builder()
+//                .moduleCode(service.getModuleCode())
+//                .moduleName(service.getModuleName())
+//                .build())
+//            .collect(Collectors.toList());
+//    }
 
     /**
      * 鍙傛暟鎻愬彇杈呭姪鏂规硶
@@ -374,9 +253,4 @@
     private Date extractEndTime(Object[] args) {
         return (args.length > 2 && args[2] instanceof Date) ? (Date) args[2] : null;
     }
-
-    private String extractHasAttachment(Object[] args) {
-        return (args.length > 3 && args[3] instanceof String) ? (String) args[3] : null;
-
-}
 }

--
Gitblit v1.9.1