refactor(database): 优化租户相关SQL查询逻辑
- 移除嵌套子查询,改用子查询中取最小user_id方式关联管理员用户 - 简化管理员用户相关字段的查询逻辑,提升SQL可读性 - 直接关联sys_user表替代以前复杂多层嵌套结构 - 保持查询结果字段一致,避免影响现有功能使用
This commit is contained in:
@@ -4,19 +4,15 @@
|
|||||||
|
|
||||||
<!-- 关联查询sql -->
|
<!-- 关联查询sql -->
|
||||||
<sql id="selectSql">
|
<sql id="selectSql">
|
||||||
SELECT a.*,b.company_name,b.company_logo as logo,b.admin_url,b.domain,b.free_domain,c.phone,c.username
|
SELECT a.*,b.company_name,b.company_logo as logo,b.admin_url,b.domain,b.free_domain,
|
||||||
|
u.phone,u.username
|
||||||
FROM sys_tenant a
|
FROM sys_tenant a
|
||||||
LEFT JOIN sys_company b ON a.tenant_id = b.tenant_id
|
LEFT JOIN sys_company b ON a.tenant_id = b.tenant_id
|
||||||
LEFT JOIN (
|
LEFT JOIN sys_user u ON u.tenant_id = a.tenant_id AND u.is_admin = 1
|
||||||
SELECT tenant_id, phone, username
|
AND u.user_id = (
|
||||||
FROM (
|
SELECT MIN(user_id) FROM sys_user
|
||||||
SELECT tenant_id, phone, username,
|
WHERE tenant_id = a.tenant_id AND is_admin = 1 AND deleted = 0
|
||||||
ROW_NUMBER() OVER(PARTITION BY tenant_id ORDER BY user_id) AS rn
|
)
|
||||||
FROM sys_user
|
|
||||||
WHERE is_admin = 1 AND deleted = 0
|
|
||||||
) t
|
|
||||||
WHERE rn = 1
|
|
||||||
) c ON a.tenant_id = c.tenant_id
|
|
||||||
<where>
|
<where>
|
||||||
<if test="param.tenantId != null">
|
<if test="param.tenantId != null">
|
||||||
AND a.tenant_id = #{param.tenantId}
|
AND a.tenant_id = #{param.tenantId}
|
||||||
|
|||||||
Reference in New Issue
Block a user