# 生产商角色固定操作日志 操作时间:2026-08-13 操作类型:修改 影响模块:平台总后台生产商管理、平台管理 API ## 操作前状态 生产商角色字段为自由文本。客户端提交 `1` 等任意字符串时,服务端会直接写入 `producer_account.role_code`,但系统并没有对应的生产商多角色权限实现。 ## 具体操作 1. 新建生产商时忽略客户端角色,服务端固定写入 `admin`。 2. 编辑生产商时忽略客户端角色,并从更新白名单移除 `role_code`。 3. 新建和编辑页面将角色设为只读,`admin` 显示为“生产商管理员”。 4. 历史未知角色继续按数据库原值展示,不修改数据库及历史数据。 5. 增加新建角色固定和编辑角色忽略测试。 ## 操作后状态 - 新生产商角色固定为 `admin`。 - 编辑生产商不会改变已有角色。 - `admin` 在页面显示为“生产商管理员”。 - 历史值(如 `1`)保持原样,不执行迁移或数据修正。 ## 代码变更 - `backend/api/internal/logic/platform/product/producer.go`:固定新建角色并禁止编辑角色。 - `backend/api/internal/logic/platform/product/producer_test.go`:新增角色规则测试。 - `frontend/platform_admin/src/api/resources.ts`:新增生产商管理员中文只读选项。 - `frontend/platform_admin/src/api/resource-page-rules.ts`:移除角色编辑能力。 ## 验证结果 - `go test ./internal/logic/platform/product`:通过。 - `npm.cmd run resource-pages:check`:通过,详情 46 类、新建 25 类、编辑 23 类。 - `npm.cmd run build`:通过,TypeScript 检查与 Vite 生产构建成功。 - 本地后端重新编译并重启,健康接口返回 `platform-api`、`ok`。 - `git diff --check`:通过。 ## 风险评估 不修改数据库结构或历史数据,接口继续兼容旧客户端提交的 `role_code` 字段。历史非法角色与新数据会暂时存在显示差异,这是明确保留历史原值的结果。