feat(menu): 优化菜单路径唯一性校验并更新前端界面
- 在SysLoginController中添加optionMap数据返回 - 添加JSQLParser依赖支持MyBatis Plus功能 - 实现selectMenuByPathExcludeId方法用于排除当前菜单的路径唯一性校验 - 在SysMenuServiceImpl中添加日志记录并优化路径唯一性判断逻辑 - 在SysMenuMapper.xml中添加LIMIT 1限制并实现排除ID查询 - 在前端路由中注释患者管理相关路由配置 - 在用户store中添加optionMap配置项并优先从optionMap获取医院名称 - 重构检查项目设置页面的操作按钮样式为统一的圆形按钮设计 - 更新检查项目设置页面的导航栏样式和交互体验 - 优化门诊记录页面的搜索条件和表格展示功能 - 添加性别和状态筛选条件并改进数据加载逻辑
This commit is contained in:
43
迁移记录-DB变更记录/fix_duplicate_menu_path.sql
Normal file
43
迁移记录-DB变更记录/fix_duplicate_menu_path.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
-- =====================================================
|
||||
-- 查找sys_menu表中重复的path记录
|
||||
-- PostgreSQL 版本
|
||||
-- =====================================================
|
||||
|
||||
-- 1. 查询重复的path及其出现次数
|
||||
SELECT
|
||||
path,
|
||||
COUNT(*) as count,
|
||||
STRING_AGG(CAST(menu_id AS TEXT), ', ') as menu_ids,
|
||||
STRING_AGG(menu_name, ', ') as menu_names
|
||||
FROM sys_menu
|
||||
GROUP BY path
|
||||
HAVING COUNT(*) > 1;
|
||||
|
||||
-- 2. 查看具体重复path的详细信息
|
||||
SELECT * FROM sys_menu
|
||||
WHERE path IN (
|
||||
SELECT path
|
||||
FROM sys_menu
|
||||
GROUP BY path
|
||||
HAVING COUNT(*) > 1
|
||||
)
|
||||
ORDER BY path, menu_id;
|
||||
|
||||
-- 注意:执行上述查询后,根据结果执行下面的删除操作
|
||||
-- 只保留menu_id较小的记录,删除重复的记录
|
||||
|
||||
DELETE FROM sys_menu
|
||||
WHERE menu_id IN (
|
||||
SELECT menu_id FROM (
|
||||
SELECT menu_id,
|
||||
ROW_NUMBER() OVER (PARTITION BY path ORDER BY menu_id) as rn
|
||||
FROM sys_menu
|
||||
WHERE path IN (
|
||||
SELECT path
|
||||
FROM sys_menu
|
||||
GROUP BY path
|
||||
HAVING COUNT(*) > 1
|
||||
)
|
||||
) t
|
||||
WHERE rn > 1
|
||||
);
|
||||
Reference in New Issue
Block a user