初始化1

This commit is contained in:
zg
2026-07-16 13:03:11 +08:00
parent 0bdfcbc1c8
commit e6b0f287cc
100 changed files with 12184 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
---
name: session-20260619-1
description: 2026-06-19 第1次会话 — 审计字段全栈实现:创建人/更新人/时间 + 按创建时间倒序 + DNS本地审计表
metadata:
type: session
date: 2026-06-19
sessionNumber: 1
startTime: 2026-06-19T23:00:00+08:00
---
# 2026-06-19 第1次会话
## 会话摘要
全栈实现了审计字段功能Nginx转发管理和DNS解析管理两张表增加创建人/时间/更新人/时间字段前端显示并按创建时间倒序排列。数据库迁移已执行Java后端和Vue前端已编译部署到10.1.1.170的Docker容器。
## 关键操作
### 1. 数据库迁移
- **做了什么**: 给 `forwarding_rules``dns_zone_config``certificates` 三张表新增 `created_by VARCHAR(100)``updated_by VARCHAR(100)` 列;新建 `dns_records` 本地审计表
- **SQL文件**: `sql/audit_migration.sql`(用存储过程+INFORMATION_SCHEMA安全检查列是否已存在
- **执行方式**: Python pymysql 脚本直连 10.1.1.122
- **结果**: 6个审计列全部添加成功dns_records表已创建
### 2. Java实体层改动
- **做了什么**: ForwardingRule.java、DnsZoneConfig.java、Certificate.java 三个实体新增 `createdBy`/`updatedBy` 字段(@TableField + FieldFill自动填充新建 DnsRecord.java 实体和 DnsRecordMapper.java
- **结果**: 编译通过
### 3. MyMetaObjectHandler 自动填充
- **做了什么**: 新增 `resolveOperator()` 方法从 UserContext 获取当前用户优先级userName > userId > "系统"insertFill 同时填充 createdAt/updatedAt/createdBy/updatedByupdateFill 同时填充 updatedAt/updatedBy
- **结果**: 用户操作自动记录创建人/更新人;定时任务等无用户上下文场景写入"系统"
### 4. 业务层改动
- **ForwardingRuleService.java**: listRules() 增加 `.orderByDesc(ForwardingRule::getCreatedAt)` — 最近创建排最前
- **新建 DnsRecordService.java**: 核心理念"阿里云DNS为权威数据源本地dns_records仅做审计追踪"listRecords()合并阿里云记录+本地审计字段addRecord/updateRecord/deleteRecord先操作阿里云再同步本地
- **DnsController.java**: 注入 DnsRecordService 替代直接调 PythonApiClient
### 5. 前端改动
- **NginxForwarding.vue**: 桌面表格新增"创建人"(width:100)和"创建时间"(width:160)列;移动端卡片新增创建人和创建时间行;新增 formatDate() 函数
- **DnsManagement.vue**: 同上
- **结果**: 历史数据(null)显示"-",新数据正确显示创建人名称和格式化时间
### 6. 部署
- **数据库**: 已在10.1.1.122:3306/nginxserver执行迁移QA/PROD同一数据库
- **Java后端**: JAR编译后部署到10.1.1.170 Docker容器 `nginx-server-nginx-server`重启成功端口4002正常
- **Vue前端**: dist编译后部署到10.1.1.170 Docker容器 `nginx-web-nginx-web`端口3002正常
- **Python API**: 无需改动
## 重要信息
### 部署架构10.1.1.170 Docker
| 容器 | 端口 | 镜像 |
|------|------|------|
| nginx-server-nginx-server | 4002 | mokee-nginx-server-nginx-server |
| nginx-web-nginx-web | 3002 | mokee-nginx-web-nginx-web |
| mokeegateway-mokee-gateway-gateway | 9000 | Mokee Gateway |
### 数据库
- MySQL 10.1.1.122:3306/nginxserverQA和PROD共用
- 新增表 `dns_records` — DNS记录本地审计
- 3张表新增审计列forwarding_rules、dns_zone_config、certificates
### 审计字段自动填充逻辑
- 优先取 UserContext.getUserName()网关X-User-Name头
- 其次取 UserContext.getUserId()网关X-User-Id头
- 都没有则填"系统"(定时任务场景)
## 涉及文件清单
| 文件 | 操作 | 说明 |
|------|------|------|
| `sql/audit_migration.sql` | 新增 | SQL迁移脚本安全添加列+建表) |
| `scripts/run_audit_migration.py` | 新增 | Python数据库迁移执行脚本 |
| `entity/DnsRecord.java` | 新增 | DNS记录本地审计实体 |
| `mapper/DnsRecordMapper.java` | 新增 | DNS记录Mapper |
| `service/DnsRecordService.java` | 新增 | DNS记录业务服务阿里云+本地合并) |
| `entity/ForwardingRule.java` | 改 | 新增 createdBy/updatedBy |
| `entity/DnsZoneConfig.java` | 改 | 新增 createdBy/updatedBy |
| `entity/Certificate.java` | 改 | 新增 createdBy/updatedBy |
| `config/MyMetaObjectHandler.java` | 改 | 新增 createdBy/updatedBy 自动填充 |
| `service/ForwardingRuleService.java` | 改 | listRules() 加 ORDER BY created_at DESC |
| `controller/DnsController.java` | 改 | 改用 DnsRecordService |
| `views/NginxForwarding.vue` | 改 | 新增创建人/创建时间列 + formatDate |
| `views/DnsManagement.vue` | 改 | 新增创建人/创建时间列 + formatDate |
## 待处理
- [ ] 用户通过网关登录后新增一条转发规则,验证创建人显示为实际用户名(而非"系统"
- [ ] 用户新增一条DNS记录验证创建人/时间正确显示
- [ ] 后续可考虑清理策略dns_records表中status=0的记录定期归档