From d342fe79d031230d1838c5fdfdf5d52aca291293 Mon Sep 17 00:00:00 2001 From: chengkai3 Date: Thu, 18 Jun 2026 21:03:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:[FL-203][=E8=8F=9C=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20-=20=E4=BF=AE=E5=A4=8D=20INSERT=20SQL=20=E7=BC=BA?= =?UTF-8?q?=E5=B0=91=20visible/cacheable/component=20=E5=AD=97=E6=AE=B5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复菜单创建接口中 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 --- api/app/services/legacy_admin_rbac_service.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api/app/services/legacy_admin_rbac_service.py b/api/app/services/legacy_admin_rbac_service.py index a44f094..1704a08 100644 --- a/api/app/services/legacy_admin_rbac_service.py +++ b/api/app/services/legacy_admin_rbac_service.py @@ -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()