结构修改

This commit is contained in:
2025-12-12 18:17:56 +08:00
parent 0a72416365
commit e66eb6b575
9 changed files with 192 additions and 99 deletions

View File

@@ -222,17 +222,37 @@ reinit() {
delete() {
echo -e "${YELLOW}Deleting database...${NC}"
# 确保没有活动连接
# 多次尝试终止连接(因为某些连接可能会立即重连)
for i in {1..3}; do
log "INFO" "Terminating database connections (attempt $i/3)..."
PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "postgres" -c "
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '$DB_NAME'
AND pid <> pg_backend_pid();"
AND pid <> pg_backend_pid();" > /dev/null 2>&1
# 删除数据库
PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "postgres" -c "DROP DATABASE IF EXISTS $DB_NAME;"
# 等待连接完全关闭
sleep 1
done
echo -e "${GREEN}Database deleted.${NC}"
# 尝试删除数据库最多重试3次
for i in {1..3}; do
log "INFO" "Attempting to drop database (attempt $i/3)..."
if PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "postgres" -c "DROP DATABASE IF EXISTS $DB_NAME;" 2>&1; then
log "SUCCESS" "Database deleted successfully"
return 0
else
log "WARN" "Failed to drop database, retrying after 2 seconds..."
sleep 2
fi
done
log "ERROR" "Failed to delete database after 3 attempts"
log "ERROR" "Please ensure all connections to the database are closed, including:"
log "ERROR" " - Running application servers"
log "ERROR" " - IDE database connections"
log "ERROR" " - pgAdmin or other database tools"
return 1
}
# 显示帮助信息

View File

@@ -170,21 +170,17 @@ INSERT INTO sys.tb_sys_view (
-- 平台应用菜单 (platform)
-- =========================
-- 一级菜单
('VIEW-P001', 'view_platform_home', '工作台', NULL, '/home', 'Home', 'Grid', 1,
'route', NULL, 'platform', 'SidebarLayout', 10, '平台工作台首页', 'system', now(), false),
('VIEW-P002', 'view_platform_chat', 'AI助手', NULL, '/chat', 'Chat', 'ChatDotRound', 1,
'route', NULL, 'platform', 'SidebarLayout', 20, 'AI智能对话助手', 'system', now(), false),
('VIEW-P002', 'view_platform_chat', '泰豪AI助手', NULL, '/aichat', 'public/Chat/AIChatView.vue', 'ChatDotRound', 1,
'route', NULL, 'platform', 'SidebarLayout', 10, '泰豪AI助手-直接智能体对话', 'system', now(), false),
('VIEW-P001', 'view_platform_home', '全部应用', NULL, '/agents', 'public/Agents/AgentPlatformView.vue', 'Grid', 1,
'route', NULL, 'platform', 'SidebarLayout', 20, '全部智能体', 'system', now(), false),
-- iframe 嵌入菜单
('VIEW-P003', 'view_platform_bidding', '招标助手', NULL, NULL, NULL, 'Document', 1,
'iframe', 'http://localhost:5002', 'platform', 'SidebarLayout', 30, '招标应用iframe', 'system', now(), false),
('VIEW-P004', 'view_platform_workcase', '泰豪小电', NULL, NULL, NULL, 'Service', 1,
'iframe', 'http://localhost:5003', 'platform', 'SidebarLayout', 40, '客服应用iframe', 'system', now(), false),
('VIEW-P005', 'view_platform_workflow', '智能体编排', NULL, NULL, NULL, 'Connection', 1,
'iframe', 'http://localhost:3000', 'platform', 'SidebarLayout', 50, 'Dify智能体编排iframe', 'system', now(), false),
'iframe', 'http://localhost:3000', 'platform', 'SidebarLayout', 30, 'Dify智能体编排iframe', 'system', now(), false),
('VIEW-P003', 'view_platform_bidding', '招标助手', NULL, NULL, NULL, 'Document', 1,
'iframe', 'http://localhost:5002', 'platform', 'SidebarLayout', 40, '招标应用iframe', 'system', now(), false),
('VIEW-P004', 'view_platform_workcase', '泰豪小电', NULL, , NULL, 'Service', 1,
'iframe', 'http://localhost:5003', 'platform', 'SidebarLayout', 50, '客服应用iframe', 'system', now(), false),
-- 系统管理目录
('VIEW-P100', 'view_system', '系统管理', NULL, '/system', NULL, 'Settings', 0,
@@ -312,56 +308,56 @@ INSERT INTO sys.tb_sys_role_permission (
-- =============================
-- 7. 视图权限关联
-- =============================
-- 将视图与对应模块的权限关联(使用的 view_id
-- 将视图与对应模块的权限关联(使用真正的 view_id,不是 optsn
INSERT INTO sys.tb_sys_view_permission (
optsn, view_id, permission_id, creator, dept_path, create_time, deleted
) VALUES
-- 平台基础菜单权限关联(所有登录用户都可访问)
('VP-P001', 'VIEW-P001', 'perm_platform_home', 'system', NULL, now(), false),
('VP-P002', 'VIEW-P002', 'perm_platform_chat', 'system', NULL, now(), false),
('VP-P003', 'VIEW-P003', 'perm_platform_bidding', 'system', NULL, now(), false),
('VP-P004', 'VIEW-P004', 'perm_platform_workcase', 'system', NULL, now(), false),
('VP-P005', 'VIEW-P005', 'perm_platform_workflow', 'system', NULL, now(), false),
('VP-P001', 'view_platform_home', 'perm_platform_home', 'system', NULL, now(), false),
('VP-P002', 'view_platform_chat', 'perm_platform_chat', 'system', NULL, now(), false),
('VP-P003', 'view_platform_bidding', 'perm_platform_bidding', 'system', NULL, now(), false),
('VP-P004', 'view_platform_workcase', 'perm_platform_workcase', 'system', NULL, now(), false),
('VP-P005', 'view_platform_workflow', 'perm_platform_workflow', 'system', NULL, now(), false),
-- 用户管理视图关联用户权限VIEW-P101
('VP-0001', 'VIEW-P101', 'perm_user_view', 'system', NULL, now(), false),
('VP-0002', 'VIEW-P101', 'perm_user_create', 'system', NULL, now(), false),
('VP-0003', 'VIEW-P101', 'perm_user_edit', 'system', NULL, now(), false),
('VP-0004', 'VIEW-P101', 'perm_user_delete', 'system', NULL, now(), false),
('VP-0005', 'VIEW-P101', 'perm_user_export', 'system', NULL, now(), false),
-- 用户管理视图关联用户权限
('VP-0001', 'view_user', 'perm_user_view', 'system', NULL, now(), false),
('VP-0002', 'view_user', 'perm_user_create', 'system', NULL, now(), false),
('VP-0003', 'view_user', 'perm_user_edit', 'system', NULL, now(), false),
('VP-0004', 'view_user', 'perm_user_delete', 'system', NULL, now(), false),
('VP-0005', 'view_user', 'perm_user_export', 'system', NULL, now(), false),
-- 角色管理视图关联角色权限VIEW-P102
('VP-0011', 'VIEW-P102', 'perm_role_view', 'system', NULL, now(), false),
('VP-0012', 'VIEW-P102', 'perm_role_create', 'system', NULL, now(), false),
('VP-0013', 'VIEW-P102', 'perm_role_edit', 'system', NULL, now(), false),
('VP-0014', 'VIEW-P102', 'perm_role_delete', 'system', NULL, now(), false),
('VP-0015', 'VIEW-P102', 'perm_role_export', 'system', NULL, now(), false),
-- 角色管理视图关联角色权限
('VP-0011', 'view_role', 'perm_role_view', 'system', NULL, now(), false),
('VP-0012', 'view_role', 'perm_role_create', 'system', NULL, now(), false),
('VP-0013', 'view_role', 'perm_role_edit', 'system', NULL, now(), false),
('VP-0014', 'view_role', 'perm_role_delete', 'system', NULL, now(), false),
('VP-0015', 'view_role', 'perm_role_export', 'system', NULL, now(), false),
-- 部门管理视图关联部门权限VIEW-P103
('VP-0021', 'VIEW-P103', 'perm_dept_view', 'system', NULL, now(), false),
('VP-0022', 'VIEW-P103', 'perm_dept_create', 'system', NULL, now(), false),
('VP-0023', 'VIEW-P103', 'perm_dept_edit', 'system', NULL, now(), false),
('VP-0024', 'VIEW-P103', 'perm_dept_delete', 'system', NULL, now(), false),
('VP-0025', 'VIEW-P103', 'perm_dept_export', 'system', NULL, now(), false),
-- 部门管理视图关联部门权限
('VP-0021', 'view_dept', 'perm_dept_view', 'system', NULL, now(), false),
('VP-0022', 'view_dept', 'perm_dept_create', 'system', NULL, now(), false),
('VP-0023', 'view_dept', 'perm_dept_edit', 'system', NULL, now(), false),
('VP-0024', 'view_dept', 'perm_dept_delete', 'system', NULL, now(), false),
('VP-0025', 'view_dept', 'perm_dept_export', 'system', NULL, now(), false),
-- 权限管理视图关联权限管理权限VIEW-P104
('VP-0031', 'VIEW-P104', 'perm_permission_view', 'system', NULL, now(), false),
('VP-0032', 'VIEW-P104', 'perm_permission_manage', 'system', NULL, now(), false),
-- 权限管理视图关联权限管理权限
('VP-0031', 'view_permission', 'perm_permission_view', 'system', NULL, now(), false),
('VP-0032', 'view_permission', 'perm_permission_manage', 'system', NULL, now(), false),
-- 配置管理视图关联配置权限VIEW-P105
('VP-0041', 'VIEW-P105', 'perm_config_view', 'system', NULL, now(), false),
('VP-0042', 'VIEW-P105', 'perm_config_edit', 'system', NULL, now(), false),
('VP-0043', 'VIEW-P105', 'perm_config_export', 'system', NULL, now(), false),
-- 配置管理视图关联配置权限
('VP-0041', 'view_config', 'perm_config_view', 'system', NULL, now(), false),
('VP-0042', 'view_config', 'perm_config_edit', 'system', NULL, now(), false),
('VP-0043', 'view_config', 'perm_config_export', 'system', NULL, now(), false),
-- 文件管理视图关联文件权限VIEW-P106
('VP-0051', 'VIEW-P106', 'perm_file_view', 'system', NULL, now(), false),
('VP-0052', 'VIEW-P106', 'perm_file_upload', 'system', NULL, now(), false),
('VP-0053', 'VIEW-P106', 'perm_file_download', 'system', NULL, now(), false),
('VP-0054', 'VIEW-P106', 'perm_file_delete', 'system', NULL, now(), false),
('VP-0055', 'VIEW-P106', 'perm_file_export', 'system', NULL, now(), false),
-- 文件管理视图关联文件权限
('VP-0051', 'view_file', 'perm_file_view', 'system', NULL, now(), false),
('VP-0052', 'view_file', 'perm_file_upload', 'system', NULL, now(), false),
('VP-0053', 'view_file', 'perm_file_download', 'system', NULL, now(), false),
('VP-0054', 'view_file', 'perm_file_delete', 'system', NULL, now(), false),
('VP-0055', 'view_file', 'perm_file_export', 'system', NULL, now(), false),
-- 消息管理视图关联消息权限VIEW-P107
('VP-0061', 'VIEW-P107', 'perm_message_view', 'system', NULL, now(), false),
('VP-0062', 'VIEW-P107', 'perm_message_send', 'system', NULL, now(), false),
('VP-0063', 'VIEW-P107', 'perm_message_manage', 'system', NULL, now(), false),
('VP-0064', 'VIEW-P107', 'perm_message_export', 'system', NULL, now(), false);
-- 消息管理视图关联消息权限
('VP-0061', 'view_message', 'perm_message_view', 'system', NULL, now(), false),
('VP-0062', 'view_message', 'perm_message_send', 'system', NULL, now(), false),
('VP-0063', 'view_message', 'perm_message_manage', 'system', NULL, now(), false),
('VP-0064', 'view_message', 'perm_message_export', 'system', NULL, now(), false);

View File

@@ -7,13 +7,13 @@
-- 注意:密码需要使用 bcrypt 加密,这里使用的是 'admin123' 的 bcrypt hash
-- 实际部署时应该修改为安全的密码
INSERT INTO sys.tb_sys_user (
optsn, user_id, usercode, password, email, phone,
optsn, user_id, usercode, password, email, phone, phone_hash,
create_time, status, deleted
) VALUES
('USER-0001', 'user_admin', 'admin',
'$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7q0TP/Hza', -- admin123
'admin@urbanlifeline.com', '13800138000',
now(), 1, false);
'$2a$10$XAe0TE2p0ym94bKJ8LJ52el3M4oYyiExVH/kNCh.pWLLGDZWNM9Yu', -- admin123
'admin@urbanlifeline.com', '13800138000', '7503bbfc6171077b737cdc4f76e781893a9a474c9ead05b6b946ac936e5a0288',
now(), 0, false);
-- 超级管理员用户信息
INSERT INTO sys.tb_sys_user_info (
@@ -38,13 +38,13 @@ INSERT INTO sys.tb_sys_user_role (
-- 3. 创建示例普通用户(可选)
-- =============================
INSERT INTO sys.tb_sys_user (
optsn, user_id, usercode, password, email, phone,
optsn, user_id, usercode, password, email, phone, phone_hash,
create_time, status, deleted
) VALUES
('USER-0002', 'user_demo', 'demo',
'$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7q0TP/Hza', -- admin123
'demo@urbanlifeline.com', '13800138001',
now(), 1, false);
'$2a$10$XAe0TE2p0ym94bKJ8LJ52el3M4oYyiExVH/kNCh.pWLLGDZWNM9Yu', -- admin123
'demo@urbanlifeline.com', '13800138001', '4e98ffd0e02a7f746291bff77c6c497225e8884758d503bde2efad64e45ad44b',
now(), 0, false);
-- 示例用户信息
INSERT INTO sys.tb_sys_user_info (

View File

@@ -77,7 +77,7 @@ public class PermissionVO extends BaseVO {
private String permissionDescription;
@Schema(description = "权限状态")
private String permissionStatus;
private Boolean permissionStatus;
// TbSysViewDTO对应字段
@Schema(description = "视图ID")
@@ -101,6 +101,12 @@ public class PermissionVO extends BaseVO {
@Schema(description = "类型")
private Integer viewType;
@Schema(description = "视图类型")
private String viewViewType;
@Schema(description = "iframe URL")
private String viewIframeUrl;
@Schema(description = "布局")
private String viewLayout;
@@ -168,6 +174,8 @@ public class PermissionVO extends BaseVO {
dto.setComponent(vo.getViewComponent());
dto.setIcon(vo.getViewIcon());
dto.setType(vo.getViewType());
dto.setViewType(vo.getViewViewType());
dto.setIframeUrl(vo.getViewIframeUrl());
dto.setLayout(vo.getViewLayout());
dto.setOrderNum(vo.getViewOrderNum());
dto.setDescription(vo.getViewDescription());
@@ -195,6 +203,8 @@ public class PermissionVO extends BaseVO {
vo.setViewComponent(dto.getComponent());
vo.setViewIcon(dto.getIcon());
vo.setViewType(dto.getType());
vo.setViewViewType(dto.getViewType());
vo.setViewIframeUrl(dto.getIframeUrl());
vo.setViewLayout(dto.getLayout());
vo.setViewOrderNum(dto.getOrderNum());
vo.setViewDescription(dto.getDescription());
@@ -210,7 +220,7 @@ public class PermissionVO extends BaseVO {
return vo;
}
public static java.util.List<PermissionVO> fromViewDTOList(java.util.List<TbSysViewDTO> dtoList) {
public static List<PermissionVO> fromViewDTOList(List<TbSysViewDTO> dtoList) {
if (dtoList == null || dtoList.isEmpty()) {
return java.util.Collections.emptyList();
}

View File

@@ -33,5 +33,5 @@ public class TbSysPermissionDTO extends BaseDTO {
private String moduleId;
@Schema(description = "状态")
private String status;
private Boolean status;
}

View File

@@ -86,7 +86,7 @@ public interface TbSysRolePermissionMapper extends BaseMapper<TbSysRolePermissio
int getRolePermissionCount(TbSysRolePermissionDTO filter);
/**
* @description 根据用户ID一次性查询该用户所有权限连表 user_role -> role_permission -> permission
* @description 根据用户ID一次性查询该用户所有权限连表 user_role -> role_permission -> permission-> view_permission
* @param userId 用户ID
* @return List<PermissionVO> 权限VO列表
*/

View File

@@ -10,7 +10,7 @@
<result column="code" property="code" jdbcType="VARCHAR"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
<result column="module_id" property="moduleId" jdbcType="VARCHAR"/>
<result column="status" property="status" jdbcType="VARCHAR"/>
<result column="status" property="status" jdbcType="BOOLEAN"/>
<!-- 基础字段 -->
<result column="optsn" property="optsn" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
@@ -30,7 +30,7 @@
<result column="permission_name" property="permissionName" jdbcType="VARCHAR"/>
<result column="permission_code" property="permissionCode" jdbcType="VARCHAR"/>
<result column="permission_description" property="permissionDescription" jdbcType="VARCHAR"/>
<result column="permission_status" property="permissionStatus" jdbcType="VARCHAR"/>
<result column="permission_status" property="permissionStatus" jdbcType="BOOLEAN"/>
<!-- 模块关联字段 -->
<result column="module_id" property="moduleId" jdbcType="VARCHAR"/>
<result column="module_name" property="moduleName" jdbcType="VARCHAR"/>

View File

@@ -28,16 +28,29 @@
<result column="role_scope" property="roleScope" jdbcType="VARCHAR"/>
<result column="role_owner_dept_id" property="roleOwnerDeptId" jdbcType="VARCHAR"/>
<result column="role_status" property="roleStatus" jdbcType="BOOLEAN"/>
<!-- 模块字段 -->
<result column="module_id" property="moduleId" jdbcType="VARCHAR"/>
<result column="module_name" property="moduleName" jdbcType="VARCHAR"/>
<result column="module_description" property="moduleDescription" jdbcType="VARCHAR"/>
<!-- 权限字段 -->
<result column="permission_id" property="permissionId" jdbcType="VARCHAR"/>
<result column="permission_name" property="permissionName" jdbcType="VARCHAR"/>
<result column="permission_code" property="permissionCode" jdbcType="VARCHAR"/>
<result column="permission_description" property="permissionDescription" jdbcType="VARCHAR"/>
<result column="permission_status" property="permissionStatus" jdbcType="VARCHAR"/>
<!-- 模块关联字段 -->
<result column="module_id" property="moduleId" jdbcType="VARCHAR"/>
<result column="module_name" property="moduleName" jdbcType="VARCHAR"/>
<result column="module_description" property="moduleDescription" jdbcType="VARCHAR"/>
<result column="permission_status" property="permissionStatus" jdbcType="BOOLEAN"/>
<!-- 视图字段 -->
<result column="view_id" property="viewId" jdbcType="VARCHAR"/>
<result column="view_name" property="viewName" jdbcType="VARCHAR"/>
<result column="view_parent_id" property="viewParentId" jdbcType="VARCHAR"/>
<result column="view_url" property="viewUrl" jdbcType="VARCHAR"/>
<result column="view_component" property="viewComponent" jdbcType="VARCHAR"/>
<result column="view_icon" property="viewIcon" jdbcType="VARCHAR"/>
<result column="view_type" property="viewType" jdbcType="INTEGER"/>
<result column="view_view_type" property="viewViewType" jdbcType="VARCHAR"/>
<result column="view_iframe_url" property="viewIframeUrl" jdbcType="VARCHAR"/>
<result column="view_layout" property="viewLayout" jdbcType="VARCHAR"/>
<result column="view_order_num" property="viewOrderNum" jdbcType="INTEGER"/>
<result column="view_description" property="viewDescription" jdbcType="VARCHAR"/>
<!-- BaseVO 基础字段 -->
<result column="optsn" property="optsn" jdbcType="VARCHAR"/>
<result column="creator" property="creator" jdbcType="VARCHAR"/>
@@ -141,7 +154,7 @@
r.role_id, r.name AS role_name, r.description AS role_description, r.scope AS role_scope, r.owner_dept_id AS role_owner_dept_id, r.status AS role_status,
p.permission_id, p.name AS permission_name, p.code AS permission_code, p.description AS permission_description, p.status AS permission_status,
p.module_id, m.name AS module_name, m.description AS module_description,
rp.optsn, rp.creator, rp.updater, rp.dept_path, rp.remark, rp.create_time, rp.update_time, rp.delete_time, rp.deleted
rp.optsn, rp.creator, rp.updater, rp.dept_path, rp.create_time, rp.update_time, rp.delete_time, rp.deleted
FROM sys.tb_sys_role_permission rp
LEFT JOIN sys.tb_sys_role r ON rp.role_id = r.role_id AND (r.deleted IS NULL OR r.deleted = false)
LEFT JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id AND (p.deleted IS NULL OR p.deleted = false)
@@ -158,7 +171,7 @@
r.role_id, r.name AS role_name, r.description AS role_description, r.scope AS role_scope, r.owner_dept_id AS role_owner_dept_id, r.status AS role_status,
p.permission_id, p.name AS permission_name, p.code AS permission_code, p.description AS permission_description, p.status AS permission_status,
p.module_id, m.name AS module_name, m.description AS module_description,
rp.optsn, rp.creator, rp.updater, rp.dept_path, rp.remark, rp.create_time, rp.update_time, rp.delete_time, rp.deleted
rp.optsn, rp.creator, rp.updater, rp.dept_path, rp.create_time, rp.update_time, rp.delete_time, rp.deleted
FROM sys.tb_sys_role_permission rp
LEFT JOIN sys.tb_sys_role r ON rp.role_id = r.role_id AND (r.deleted IS NULL OR r.deleted = false)
LEFT JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id AND (p.deleted IS NULL OR p.deleted = false)
@@ -185,7 +198,7 @@
r.role_id, r.name AS role_name, r.description AS role_description, r.scope AS role_scope, r.owner_dept_id AS role_owner_dept_id, r.status AS role_status,
p.permission_id, p.name AS permission_name, p.code AS permission_code, p.description AS permission_description, p.status AS permission_status,
p.module_id, m.name AS module_name, m.description AS module_description,
rp.optsn, rp.creator, rp.updater, rp.dept_path, rp.remark, rp.create_time, rp.update_time, rp.delete_time, rp.deleted
rp.optsn, rp.creator, rp.updater, rp.dept_path, rp.create_time, rp.update_time, rp.delete_time, rp.deleted
FROM sys.tb_sys_role_permission rp
LEFT JOIN sys.tb_sys_role r ON rp.role_id = r.role_id AND (r.deleted IS NULL OR r.deleted = false)
LEFT JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id AND (p.deleted IS NULL OR p.deleted = false)
@@ -224,22 +237,76 @@
</where>
</select>
<!-- getPermissionsByUserId -->
<!-- 根据用户ID一次性查询该用户所有权限连表查询完整权限信息 -->
<select id="getPermissionsByUserId" resultMap="PermissionVOResultMap">
SELECT p.permission_id AS permissionId,
p.name AS permissionName,
p.code AS permissionCode,
p.description AS permissionDescription,
p.dept_path AS deptPath,
p.deleted AS deleted,
p.module_id AS moduleId
SELECT DISTINCT
-- 角色字段
r.role_id,
r.name AS role_name,
r.description AS role_description,
r.scope AS role_scope,
r.owner_dept_id AS role_owner_dept_id,
r.status AS role_status,
-- 模块字段
m.module_id,
m.name AS module_name,
m.description AS module_description,
-- 权限字段
p.permission_id,
p.name AS permission_name,
p.code AS permission_code,
p.description AS permission_description,
p.status AS permission_status,
-- 视图字段
v.view_id,
v.name AS view_name,
v.parent_id AS view_parent_id,
v.url AS view_url,
v.component AS view_component,
v.icon AS view_icon,
v.type AS view_type,
v.view_type AS view_view_type,
v.iframe_url AS view_iframe_url,
v.layout AS view_layout,
v.order_num AS view_order_num,
v.description AS view_description,
-- 基础字段 (从role_permission表获取)
rp.optsn,
rp.creator,
rp.updater,
rp.dept_path,
rp.create_time,
rp.update_time,
rp.delete_time,
rp.deleted
FROM sys.tb_sys_user_role ur
JOIN sys.tb_sys_role_permission rp ON ur.role_id = rp.role_id
JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id
WHERE ur.user_id = #{userId}
AND (p.deleted IS NULL OR p.deleted = false)
-- 关联角色表
JOIN sys.tb_sys_role r ON ur.role_id = r.role_id
AND (r.deleted IS NULL OR r.deleted = false)
AND r.status = true
-- 关联角色权限关系表
JOIN sys.tb_sys_role_permission rp ON r.role_id = rp.role_id
AND (rp.deleted IS NULL OR rp.deleted = false)
-- 关联权限表
JOIN sys.tb_sys_permission p ON rp.permission_id = p.permission_id
AND (p.deleted IS NULL OR p.deleted = false)
AND p.status = true
-- 关联模块表
LEFT JOIN sys.tb_sys_module m ON p.module_id = m.module_id
AND (m.deleted IS NULL OR m.deleted = false)
-- 关联视图权限关系表
LEFT JOIN sys.tb_sys_view_permission vp ON p.permission_id = vp.permission_id
AND (vp.deleted IS NULL OR vp.deleted = false)
-- 关联视图表
LEFT JOIN sys.tb_sys_view v ON vp.view_id = v.view_id
AND (v.deleted IS NULL OR v.deleted = false)
WHERE ur.user_id = #{userId}
AND (ur.deleted IS NULL OR ur.deleted = false)
ORDER BY
m.module_id,
p.permission_id,
v.order_num NULLS LAST,
v.view_id
</select>
</mapper>

View File

@@ -37,7 +37,7 @@
<result column="permission_name" property="permissionName" jdbcType="VARCHAR"/>
<result column="permission_code" property="permissionCode" jdbcType="VARCHAR"/>
<result column="permission_description" property="permissionDescription" jdbcType="VARCHAR"/>
<result column="permission_status" property="permissionStatus" jdbcType="VARCHAR"/>
<result column="permission_status" property="permissionStatus" jdbcType="BOOLEAN"/>
<!-- 模块关联字段 -->
<result column="module_id" property="moduleId" jdbcType="VARCHAR"/>
<result column="module_name" property="moduleName" jdbcType="VARCHAR"/>