From c6bd736e7f0083642ca3b3868e13adf3731a774a Mon Sep 17 00:00:00 2001 From: wjh <1693415692@qq.com> Date: Fri, 9 Oct 2026 10:43:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=87=AD=E6=8D=AE=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=87=AA=E5=8A=A8=E5=85=B3=E8=81=94=E7=A7=9F?= =?UTF-8?q?=E6=88=B7=E7=9C=9F=E5=AE=9E=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/OpenClientAdminController.java | 31 ++++++++++++++++++- .../com/iot/gateway/entity/OpenClient.java | 4 +++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iot/gateway/admin/OpenClientAdminController.java b/src/main/java/com/iot/gateway/admin/OpenClientAdminController.java index 567e090..98e023e 100644 --- a/src/main/java/com/iot/gateway/admin/OpenClientAdminController.java +++ b/src/main/java/com/iot/gateway/admin/OpenClientAdminController.java @@ -34,6 +34,9 @@ public class OpenClientAdminController { @Autowired private OpenClientMapper clientMapper; + @Autowired(required = false) + private org.springframework.jdbc.core.JdbcTemplate jdbcTemplate; + private static final SecureRandom RANDOM = new SecureRandom(); @Operation(summary = "获取所有可授权的作用域 (Scopes) 枚举字典列表") @@ -60,7 +63,33 @@ public class OpenClientAdminController { .or().like(OpenClient::getClientId, keyword)); } qw.orderByDesc(OpenClient::getCreateTime); - return Result.success(clientMapper.selectPage(page, qw)); + Page resPage = clientMapper.selectPage(page, qw); + populateTenantNames(resPage.getRecords()); + return Result.success(resPage); + } + + private void populateTenantNames(List clients) { + if (clients == null || clients.isEmpty() || jdbcTemplate == null) { + return; + } + try { + java.util.Map tenantNameMap = new java.util.HashMap<>(); + List> rows = jdbcTemplate.queryForList("SELECT id, tenant_name FROM sys_tenant"); + for (Map r : rows) { + Object idObj = r.get("id"); + Object nameObj = r.get("tenant_name"); + if (idObj instanceof Number && nameObj != null) { + tenantNameMap.put(((Number) idObj).longValue(), nameObj.toString()); + } + } + for (OpenClient c : clients) { + if (c.getTenantId() != null) { + c.setTenantName(tenantNameMap.getOrDefault(c.getTenantId(), "租户 #" + c.getTenantId())); + } + } + } catch (Exception e) { + log.warn("查询关联租户名称失败: {}", e.getMessage()); + } } @Operation(summary = "获取凭据详情") diff --git a/src/main/java/com/iot/gateway/entity/OpenClient.java b/src/main/java/com/iot/gateway/entity/OpenClient.java index 6ba8b3c..ecba6bc 100644 --- a/src/main/java/com/iot/gateway/entity/OpenClient.java +++ b/src/main/java/com/iot/gateway/entity/OpenClient.java @@ -19,6 +19,10 @@ public class OpenClient implements Serializable { private String clientSecret; private String clientName; private Long tenantId; + + @com.baomidou.mybatisplus.annotation.TableField(exist = false) + private String tenantName; + private String scopes; private String ipWhitelist; private Integer rateLimit;