From e66eb6b57535bde811919f94375830e2cb5b8658 Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Fri, 12 Dec 2025 18:17:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.bin/database/postgres/bin.sh | 38 +++++-- .../postgres/sql/initDataPermission.sql | 106 +++++++++-------- .../database/postgres/sql/initDataUser.sql | 16 +-- .../org/xyzh/api/system/vo/PermissionVO.java | 14 ++- .../common/dto/sys/TbSysPermissionDTO.java | 2 +- .../role/TbSysRolePermissionMapper.java | 2 +- .../permission/TbSysPermissionMapper.xml | 4 +- .../mapper/role/TbSysRolePermissionMapper.xml | 107 ++++++++++++++---- .../mapper/view/TbSysViewPermissionMapper.xml | 2 +- 9 files changed, 192 insertions(+), 99 deletions(-) diff --git a/urbanLifelineServ/.bin/database/postgres/bin.sh b/urbanLifelineServ/.bin/database/postgres/bin.sh index c9e21826..672ba116 100644 --- a/urbanLifelineServ/.bin/database/postgres/bin.sh +++ b/urbanLifelineServ/.bin/database/postgres/bin.sh @@ -222,17 +222,37 @@ reinit() { delete() { echo -e "${YELLOW}Deleting database...${NC}" - # 确保没有活动连接 - 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();" + # 多次尝试终止连接(因为某些连接可能会立即重连) + 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();" > /dev/null 2>&1 + + # 等待连接完全关闭 + sleep 1 + done - # 删除数据库 - PGPASSWORD=$DB_PASSWORD psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "postgres" -c "DROP DATABASE IF EXISTS $DB_NAME;" + # 尝试删除数据库,最多重试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 - echo -e "${GREEN}Database deleted.${NC}" + 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 } # 显示帮助信息 diff --git a/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql b/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql index 41802fc3..e25c3e29 100644 --- a/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql +++ b/urbanLifelineServ/.bin/database/postgres/sql/initDataPermission.sql @@ -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); diff --git a/urbanLifelineServ/.bin/database/postgres/sql/initDataUser.sql b/urbanLifelineServ/.bin/database/postgres/sql/initDataUser.sql index 543dbeb4..105aedc2 100644 --- a/urbanLifelineServ/.bin/database/postgres/sql/initDataUser.sql +++ b/urbanLifelineServ/.bin/database/postgres/sql/initDataUser.sql @@ -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 ( diff --git a/urbanLifelineServ/apis/api-system/src/main/java/org/xyzh/api/system/vo/PermissionVO.java b/urbanLifelineServ/apis/api-system/src/main/java/org/xyzh/api/system/vo/PermissionVO.java index cb1a910c..a69c5eed 100644 --- a/urbanLifelineServ/apis/api-system/src/main/java/org/xyzh/api/system/vo/PermissionVO.java +++ b/urbanLifelineServ/apis/api-system/src/main/java/org/xyzh/api/system/vo/PermissionVO.java @@ -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 fromViewDTOList(java.util.List dtoList) { + public static List fromViewDTOList(List dtoList) { if (dtoList == null || dtoList.isEmpty()) { return java.util.Collections.emptyList(); } diff --git a/urbanLifelineServ/common/common-dto/src/main/java/org/xyzh/common/dto/sys/TbSysPermissionDTO.java b/urbanLifelineServ/common/common-dto/src/main/java/org/xyzh/common/dto/sys/TbSysPermissionDTO.java index 869ef353..5a3a5705 100644 --- a/urbanLifelineServ/common/common-dto/src/main/java/org/xyzh/common/dto/sys/TbSysPermissionDTO.java +++ b/urbanLifelineServ/common/common-dto/src/main/java/org/xyzh/common/dto/sys/TbSysPermissionDTO.java @@ -33,5 +33,5 @@ public class TbSysPermissionDTO extends BaseDTO { private String moduleId; @Schema(description = "状态") - private String status; + private Boolean status; } \ No newline at end of file diff --git a/urbanLifelineServ/system/src/main/java/org/xyzh/system/mapper/role/TbSysRolePermissionMapper.java b/urbanLifelineServ/system/src/main/java/org/xyzh/system/mapper/role/TbSysRolePermissionMapper.java index 9a7f6b5d..21acab9f 100644 --- a/urbanLifelineServ/system/src/main/java/org/xyzh/system/mapper/role/TbSysRolePermissionMapper.java +++ b/urbanLifelineServ/system/src/main/java/org/xyzh/system/mapper/role/TbSysRolePermissionMapper.java @@ -86,7 +86,7 @@ public interface TbSysRolePermissionMapper extends BaseMapper role_permission -> permission) + * @description 根据用户ID一次性查询该用户所有权限(连表 user_role -> role_permission -> permission-> view_permission) * @param userId 用户ID * @return List 权限VO列表 */ diff --git a/urbanLifelineServ/system/src/main/resources/mapper/permission/TbSysPermissionMapper.xml b/urbanLifelineServ/system/src/main/resources/mapper/permission/TbSysPermissionMapper.xml index c19e75fa..66b63f2e 100644 --- a/urbanLifelineServ/system/src/main/resources/mapper/permission/TbSysPermissionMapper.xml +++ b/urbanLifelineServ/system/src/main/resources/mapper/permission/TbSysPermissionMapper.xml @@ -10,7 +10,7 @@ - + @@ -30,7 +30,7 @@ - + diff --git a/urbanLifelineServ/system/src/main/resources/mapper/role/TbSysRolePermissionMapper.xml b/urbanLifelineServ/system/src/main/resources/mapper/role/TbSysRolePermissionMapper.xml index 890a1c8c..dedb52d2 100644 --- a/urbanLifelineServ/system/src/main/resources/mapper/role/TbSysRolePermissionMapper.xml +++ b/urbanLifelineServ/system/src/main/resources/mapper/role/TbSysRolePermissionMapper.xml @@ -28,16 +28,29 @@ + + + + - - - - - + + + + + + + + + + + + + + @@ -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 @@ - - + diff --git a/urbanLifelineServ/system/src/main/resources/mapper/view/TbSysViewPermissionMapper.xml b/urbanLifelineServ/system/src/main/resources/mapper/view/TbSysViewPermissionMapper.xml index d9967bb8..22ca7a3a 100644 --- a/urbanLifelineServ/system/src/main/resources/mapper/view/TbSysViewPermissionMapper.xml +++ b/urbanLifelineServ/system/src/main/resources/mapper/view/TbSysViewPermissionMapper.xml @@ -37,7 +37,7 @@ - +