# 资产审计日志操作内容字段说明 ## 1. 查询接口 - 路径:`GET /api/admin/assets/:identifier/operation-logs` - 说明:先按资产标识符解析资产,再查询该资产的审计日志。 ## 2. 前端应优先使用的字段 为避免历史数据格式差异,前端应优先使用以下三个字段: 1. `operation_content_before`:操作内容(变更前) 2. `operation_content_after`:操作内容(变更后) 3. `operation_fields_desc`:字段中文说明(`key=字段名`,`value=中文解释`) `before_data/after_data` 保留为原始审计数据,建议仅作为调试或回放使用。 ## 3. 通用字段 | 字段 | 说明 | |---|---| | `operator_type` | 操作人类型中文名称(如平台用户、代理账号、企业账号、个人客户、系统) | | `operator_type_code` | 操作人类型编码(如 `admin_user`、`agent_user`) | | `operator_name` | 操作人可读名称,优先返回用户名/店铺名/企业名/客户昵称 | | `batch_total` | 批量总数 | | `success_count` | 成功数量 | | `fail_count` | 失败数量 | | `failed_items` | 失败明细 | | `reason` | 原因说明 | ## 4. 常见操作字段 ### 4.1 分配/回收 | 字段 | 说明 | |---|---| | `target_shop_id` / `to_shop_id` | 目标店铺ID | | `source_shop_id` / `from_shop_id` | 来源店铺ID | | `device_ids` | 设备ID列表 | | `card_ids` | 卡ID列表 | | `selection_type` | 选择方式 | | `new_status` | 变更后状态 | ### 4.2 设备绑卡/解绑 | 字段 | 说明 | |---|---| | `binding_id` | 绑定记录ID | | `slot_position` | 插槽位置 | | `iot_card_id` | 卡ID | | `iccid` | 卡ICCID | | `unbind` | 是否执行解绑 | ### 4.3 设备停复机 | 字段 | 说明 | |---|---| | `success_count` | 成功数量 | | `fail_count` | 失败数量 | | `skip_count` | 跳过数量 | | `failed_items` | 失败明细(含ICCID和原因) | ### 4.4 远程控制 | 字段 | 说明 | |---|---| | `speed_limit` | 限速值(KB/s) | | `ssid` | WiFi 名称 | | `password` | WiFi 密码(已脱敏) | | `enabled` | WiFi 开关状态 | | `target_iccid` | 目标ICCID | | `switch_mode` | 切卡模式(0自动/1手动) | ### 4.5 轮询与实名 | 字段 | 说明 | |---|---| | `enable_polling` | 轮询开关 | | `realname_policy` | 实名策略(none/before_order/after_order) | | `real_name_status` | 实名状态(0未实名/1已实名) | ## 5. 兼容性说明 历史日志中 `before_data` 可能是资产快照而不是操作内容。接口已做归一化处理: - 自动抽取并返回 `operation_content_before/after` - 当历史数据缺少“变更前操作内容”时,会按“变更后字段”与资产快照尽量回填 - 历史日志中的 `后台用户#ID`、`代理用户#ID` 等占位名称,接口会尽量按当前账号资料补全为可读名称 因此,前端无需再自行解析 `before_data/after_data` 的多种历史格式。 ## 6. 前端处理建议 建议前端按以下优先级渲染变更明细: 1. 遍历 `operation_content_after` 的字段键作为“变更项集合” 2. 字段名展示优先使用 `operation_fields_desc[key]`,没有则回退为 `key` 3. 变更前值读取 `operation_content_before[key]` 4. 变更后值读取 `operation_content_after[key]` 5. 当前值为 `null` 时按“未知/未记录”展示,不要直接当空字符串 `before_data/after_data` 建议只用于问题排查,不参与主界面渲染。