2.1 KiB
2.1 KiB
1. 数据库
- 1.1 创建
docs/sql/migrations/2026-06-29-operation-audit.sql(扩展sys_api_request_log/_his:tenant_no、business_title、business_type、business_id、oper_summary+ 索引) - 1.2 同步
docs/sql/shanxia2.0.sql
2. 后端 · 采集层
- 2.1 扩展
app/core/context.py:oper_log_metaContextVar(title/type/id/summary)→oper_log_context.py - 2.2 新增
app/core/oper_log_decorator.py:@oper_log(...)装饰器 - 2.3 更新
api_request_log_middleware.py:解析real_name、tenant_no;落库语义字段;推断兜底 - 2.4 更新
SysApiRequestLog/SysApiRequestLogHisORM
3. 后端 · 查询层
- 3.1 更新
oper_log.py:优先读落库语义列;列表支持businessId、businessTitle、tenant_noDB 筛选 - 3.2 更新
schemas/monitor/operlog.py与monitor.py请求体字段 - 3.3 更新
api_request_log_crud.py历史表字段(列表仍走 operlog API)
4. 后端 · 注解覆盖(首期)
- 4.1 CRM 客户写接口
@oper_log(增删改、公海、转移等) - 4.2 CRM 合同写接口
@oper_log(新增/修改/删除/导出/作废) - 4.3 配置项预留
API_REQUEST_LOG_EXCLUDE_PATHS(默认空)
5. 前端
- 5.1
api/monitor/operlog类型与查询参数扩展 - 5.2 操作日志列表页
views/system/operlog/index.vue(P01)+ 详情弹窗 - 5.3 路由
router/modules/sqxp.ts+ 菜单 SQL(system:operlog:list) - 5.4 CRM
CustomerDetailDialog、contract/detailTab 改为businessId查询
6. 验收与文档
- 6.1 冒烟:写操作落库姓名/语义/入参出参;管理页筛选;客户详情 Tab(需执行迁移并重启后端)
- 6.2 默认配置
API_REQUEST_LOG_ENABLED=true(config.py) - 6.3
./scripts/update-graph.sh backend(frontend 待有 import 变更后可再跑)
7. 后续(非本期阻塞)
- 7.1 定时任务:热数据归档至
sys_api_request_log_his - 7.2 运输计划 / 报销等模块
@oper_log全覆盖 - 7.3 响应体 PII 扩展脱敏规则