增加气站历史账户显式修复与审计

This commit is contained in:
czl231
2026-08-17 22:34:02 +08:00
parent d6bb3bd43e
commit eef791427a
9 changed files with 354 additions and 4 deletions

View File

@@ -139,7 +139,7 @@
气站只能由平台总后台新增,创建后直接进入启用状态,无需审核。已启用或已停用气站可继续切换启停状态。
气站账户与配送点账户当前均只有管理员角色。新建时服务端分别固定写入 `admin`,编辑时不允许变更角色;旧客户端继续提交 `role_code` 时服务端兼容接收但不采纳。列表、详情、新建和编辑页面统一显示“角色”,并将 `admin` 显示为“气站管理员”或“配送点管理员”。历史未知编码显示为“未知角色(原编码)”,不得自动改成管理员
气站账户与配送点账户当前均只有管理员角色。新建时服务端分别固定写入 `admin`,编辑时不允许变更角色;旧客户端继续提交 `role_code` 时服务端兼容接收但不采纳。列表、详情、新建和编辑页面统一显示“角色”,并将 `admin` 显示为“气站管理员”或“配送点管理员”。气站账户未填写显示名称时明确展示“未填写”,不使用含义不明的横线。历史未知编码显示为“未知角色(原编码)”,不得自动改成管理员;确需修复时必须通过定向维护命令校验唯一目标,并记录操作者、修复时间及修复前后值
气站账户、配送点账户和生产商账户没有头像字段与受控头像接口。它们的详情和编辑页使用紧凑文字账户摘要,新建页直接显示基本信息表单,不展示无法上传或保存的默认头像。工作人员、用户和平台账户继续使用真实头像上传与受控读取链路。
@@ -308,6 +308,8 @@
平台账户必须关联角色编码。系统角色和 root 账户受保护,不能通过普通管理动作破坏。角色菜单通过 `/platform_role/:identity/menu` 整体读取和替换,菜单自身由系统初始化,不在后台任意增删改。
定向数据修复不开放为普通页面能力。修复命令必须校验唯一目标和有效平台操作者,并在同一事务向 `audit_operation_log` 追加资源标识、动作、操作者、发生时间及修复前后快照;审计记录不提供通用编辑或删除入口。
## 7. 通用页面与接口行为
- 列表资源提供分页、字段筛选、状态展示、详情和关联资源选择。

View File

@@ -18,7 +18,7 @@
| 履约 | `ord_service_task``dsp_assignment``ord_delivery_track``dsp_delivery_track_point` | 任务状态转换受限;定位、轨迹和证据均有采集时间 |
| 资金与押金 | `wal_wallet_ledger``wal_deposit``wal_deposit_refund``wal_settlement``wal_withdrawal``wal_reconciliation` | `wal_wallet_ledger` 为唯一钱包事实流水;金额方向、关联对象和余额快照可校验;退押金保留验收、扣减和退款去向 |
| 用气统计 | `dev_usage_stat``dev_usage_report` | 明确统计周期、单位、来源、计算版本和最后更新时间;报表导出留痕 |
| 内容审计 | `cnt_article``cnt_banner``cnt_notice``aud_operation_log` | 发布有版本;审计日志追加写入设置留存期限 |
| 内容审计 | `cms_content``audit_operation_log` | 内容发布有版本;敏感维护操作的审计日志追加写入设置留存期限 |
## 2. API 约定

View File

@@ -0,0 +1,36 @@
# 操作日志:气站历史账号角色显式修复
操作时间2026-08-17 22:12:42Asia/Shanghai
操作类型:定向数据修复与展示优化
执行管理员:`root`
## 问题拆分
- 气站账户未填写显示名称时,列表和详情使用通用横线,无法区分“未填写”和加载异常。
- 历史账号 `019fd0e4-6d29-7c54-b2fd-0e8acb2079e1` 保存了非法角色编码 `010`,不满足气站端仅允许 `admin` 登录的约束。
## 修复内容
- 气站账户 `display_name` 空值统一展示为“未填写”。
- 新增显式维护命令 `repair-legacy-gas-account`,要求提供平台操作者和目标显示名称。
- 命令仅允许修复唯一一条 `role_code = 010` 的气站账号;不存在或多条匹配时拒绝执行。
- 账号“薛海”的角色由 `010` 修复为 `admin`,显示名称由空字符串补齐为“薛海”。
- 同一数据库事务写入 `audit_operation_log`,记录操作者、资源标识、修复时间、修复前后 JSON 和原因。
## 审计快照
| 项目 | 修复前 | 修复后 |
| --- | --- | --- |
| 账号唯一标识 | `019fd0e4-6d29-7c54-b2fd-0e8acb2079e1` | 不变 |
| 用户名 | 薛海 | 不变 |
| 显示名称 | 空字符串 | 薛海 |
| 角色编码 | `010` | `admin` |
| 执行管理员 | `root` | `root` |
| 修复时间 | - | `2026-08-17T22:12:42.6845244+08:00` |
审计记录唯一标识:`01a01011-48ad-7042-b57f-96173f4010d2`
## 边界
- 不修改普通新增和编辑接口的角色规则;新建仍固定写入 `admin`,编辑仍不接受角色变更。
- 不根据页面展示自动迁移未知角色,也不把其他历史未知编码升级为管理员。