46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# 2026-06-08 工作日志
|
||
|
||
## 代码质量审计 & 安全修复
|
||
|
||
### 已完成的 P0/P1 修复
|
||
|
||
1. **移除硬编码敏感凭据**(P0 安全红线)
|
||
- `application-dev.yml`:邮件密码、阿里云短信 AK/SK、SnailJob Token、MySQL 密码 → 改为 `${ENV_VAR:}` 占位符
|
||
- `application.yml`:MQTT Broker 密码、JWT 密钥 → 改为环境变量引用
|
||
- `application-prod.yml`:SnailJob Token → 环境变量引用
|
||
|
||
2. **Git 仓库清理**
|
||
- 更新 `.gitignore`:添加 `.idea/`、`*.iml`、`.vscode/`、`.env`、OS 临时文件
|
||
- 创建 `.env.example` 模板文件,供团队参考配置
|
||
|
||
3. **修复 N+1 查询**(AppDeviceServiceImpl.deleteWithValidByIds)
|
||
- 将 for 循环逐条 delete 改为 `QueryWrapper.in("device_id", ids)` 批量删除
|
||
|
||
4. **修复 AppSchedule 重复字段**
|
||
- 移除与 BaseEntity 冲突的 `createTime` 字段定义(父类已有 @TableField fill=INSERT)
|
||
|
||
5. **DromaraApplication 日志规范化**
|
||
- `System.out.println` → `@Slf4j` + `log.info()`
|
||
|
||
6. **DeviceDataHandler 代码清理**
|
||
- 被注释的死代码改为结构化 TODO 注释,明确后续实现路径
|
||
|
||
7. **application.yml 格式修复**
|
||
- 移除重复的 `--- # mqtt配置信息` 行
|
||
|
||
8. **修复 Spring 循环依赖**(MqttCommandAckService)
|
||
- 循环链:MqttClientManager → MqttMessageDispatcher → MqttCommandAckService → MqttClientManager
|
||
- 方案:MqttCommandAckService 中对 MqttClientManager 加 @Lazy,因为 publish() 仅在 retryExpiredCommands() 运行时调用,非构造阶段必须
|
||
|
||
### 待处理
|
||
|
||
- [ ] P1: 补齐 app_device 等 5 张表的 DDL 脚本(task #3)
|
||
- [ ] P1: 搭建单元测试框架(task #6)
|
||
- [ ] P2: 编写团队编码规范文档
|
||
- [ ] 确认线上环境已同步更新凭据配置
|
||
|
||
### 技术备忘
|
||
|
||
- 环境变量默认值写法:`${VAR_NAME:defaultValue}` — dev 环境保留弱默认值方便本地开发,prod 必须强制覆盖
|
||
- 环境变量模板 `.env.example` 已纳入 `.gitignore` 保护
|