From 7915fcba539cff47d312ea8043410af04bcbfd62 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期二, 04 八月 2026 20:28:49 +0800
Subject: [PATCH] fix: 加盟商看板用户接口 40s 慢查询优化

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
index 54bd6b0..e05f2a4 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserTagController.java
@@ -18,6 +18,8 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -105,8 +107,30 @@
                 .eq(TAppUserTag::getUserTagId, appUserTag.getUserTagId()));
         return R.ok(one);
     }
-    
-    
+
+
+    /**
+     * 按用户ID集合批量获取用户标签关系
+     * t_app_user_tag 分片键为 app_user_id,IN 查询被 MyCat 精确路由;按 500 分批避免 IN 过大
+     * @param userIds app用户ID集合
+     * @return
+     */
+    @PostMapping(value = "/tags/listByUserIds")
+    public R<List<TAppUserTag>> listByUserIds(@RequestBody List<Long> userIds){
+        if (userIds == null || userIds.isEmpty()) {
+            return R.ok(Collections.emptyList());
+        }
+        List<TAppUserTag> result = new ArrayList<>();
+        for (int i = 0; i < userIds.size(); i += 500) {
+            List<Long> batch = userIds.subList(i, Math.min(i + 500, userIds.size()));
+            result.addAll(appUserTagService.lambdaQuery()
+                    .in(TAppUserTag::getAppUserId, batch)
+                    .list());
+        }
+        return R.ok(result);
+    }
+
+
     /**
      * 保存用户标签关系数据
      * @param appUserTag

--
Gitblit v1.7.1