fix:[FL-203][菜单管理 - 修复 INSERT SQL 缺少 visible/cacheable/component 字段]

修复菜单创建接口中 INSERT SQL 语句缺少 visible、cacheable 和 component 字段的问题。

问题描述:
- 前端发送的请求包含 visible、cacheable 和 component 字段
- 后端 INSERT SQL 语句未包含这些字段
- 导致数据库使用默认值 null,违反 visible 列的 NOT NULL 约束

修复内容:
- 在 INSERT INTO menus 语句中添加 visible、cacheable、component 字段
- 在 VALUES 子句中添加对应的占位符
- 在参数字典中添加这三个字段的值

影响范围:
- api/app/services/legacy_admin_rbac_service.py 的 create_menu 函数

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
chengkai3
2026-06-18 21:03:44 +08:00
parent d195bef4d3
commit d342fe79d0
@@ -555,10 +555,12 @@ def create_menu(db: Session, payload: MenuCreateRequest, *, actor_user_id: str |
text(
"""
INSERT INTO menus (
code, name, type, parent_id, path, icon, sort_order, status, permission_code
code, name, type, parent_id, path, icon, sort_order, status, permission_code,
visible, cacheable, component
)
VALUES (
:code, :name, :type, :parent_id, :path, :icon, :sort_order, :status, :permission_code
:code, :name, :type, :parent_id, :path, :icon, :sort_order, :status, :permission_code,
:visible, :cacheable, :component
)
RETURNING id::text AS menu_id
"""
@@ -573,6 +575,9 @@ def create_menu(db: Session, payload: MenuCreateRequest, *, actor_user_id: str |
"sort_order": payload.sort_order,
"status": payload.status,
"permission_code": payload.permission_code or payload.component,
"visible": payload.visible,
"cacheable": payload.cacheable,
"component": payload.component,
},
)
row = result.mappings().first()