Files
TARE-Learn/slidev/pages/day4/m4-audit-log.md
T
2026-07-02 10:04:32 +08:00

96 lines
2.7 KiB
Markdown

# 模块 4:审计日志设计
<div class="mt-6 text-sm">
工单是多人协作过程。关键动作必须能回答:谁、什么时候、对哪个工单、改了什么、结果如何。
</div>
<div class="grid grid-cols-3 gap-4 mt-8 text-sm">
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30 text-center">指派</div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-center">状态变更</div>
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30 text-center">优先级变更</div>
<div class="p-3 rounded-xl bg-purple-500/10 border border-purple-500/30 text-center">驳回</div>
<div class="p-3 rounded-xl bg-red-500/10 border border-red-500/30 text-center">关闭</div>
<div class="p-3 rounded-xl bg-gray-500/10 border border-gray-500/30 text-center">删除</div>
</div>
<!--
审计日志不是一句“修改了工单”。
指派、状态变更、优先级变更、驳回、关闭、删除都应该能追溯。
-->
---
# 审计日志字段表
<div class="mt-5 text-xs">
| 字段 | 含义 | 示例 |
|---|---|---|
| ticket_id | 工单 ID | WO-001 |
| operator | 操作人 | zhangsan |
| action | 操作动作 | assign / transition / edit |
| field_name | 字段名 | status / assignee |
| before_value | 修改前 | processing |
| after_value | 修改后 | pending_verify |
| result | 操作结果 | success / fail |
| operate_time | 操作时间 | 2026-06-29 10:00 |
| remark | 备注 | 提交验证说明 |
</div>
<!--
字段前后值是审计日志的关键。
如果只记录“用户修改了工单”,后续追责和排查都很困难。
-->
---
# 详情页操作记录
<div class="mt-5 text-sm">
| 展示字段 | 说明 |
|---|---|
| 操作时间 | 按时间倒序 |
| 操作人 | 当前登录用户 |
| 动作 | 指派、提交验证、驳回、关闭 |
| 变更内容 | status: processing -> pending_verify |
| 备注 | 处理说明、驳回原因 |
| 结果 | success / fail |
</div>
<!--
审计日志不只是后端写入,还要能在工单详情页被查看。
课堂验收时至少完成一次指派、一次提交验证、一次驳回,并能看到三条记录。
-->
---
# 审计日志 SOP
<div class="mt-5 text-sm">
```md
必须记录:
新增、编辑、删除、指派、状态变更、优先级变更、驳回、关闭。
展示位置:
工单详情页操作记录区域。
事务要求:
状态更新和日志写入在同一业务事务内完成。
验收:
执行状态变更、指派、驳回、关闭后,详情页能看到对应审计记录。
```
</div>
<!--
状态更新成功但日志失败,或者日志成功但状态失败,都会造成追溯问题。
所以 Service 层要明确事务边界。
-->