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