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;