2.0 KiB
2.0 KiB
2026-06-08 工作日志
代码质量审计 & 安全修复
已完成的 P0/P1 修复
-
移除硬编码敏感凭据(P0 安全红线)
application-dev.yml:邮件密码、阿里云短信 AK/SK、SnailJob Token、MySQL 密码 → 改为${ENV_VAR:}占位符application.yml:MQTT Broker 密码、JWT 密钥 → 改为环境变量引用application-prod.yml:SnailJob Token → 环境变量引用
-
Git 仓库清理
- 更新
.gitignore:添加.idea/、*.iml、.vscode/、.env、OS 临时文件 - 创建
.env.example模板文件,供团队参考配置
- 更新
-
修复 N+1 查询(AppDeviceServiceImpl.deleteWithValidByIds)
- 将 for 循环逐条 delete 改为
QueryWrapper.in("device_id", ids)批量删除
- 将 for 循环逐条 delete 改为
-
修复 AppSchedule 重复字段
- 移除与 BaseEntity 冲突的
createTime字段定义(父类已有 @TableField fill=INSERT)
- 移除与 BaseEntity 冲突的
-
DromaraApplication 日志规范化
System.out.println→@Slf4j+log.info()
-
DeviceDataHandler 代码清理
- 被注释的死代码改为结构化 TODO 注释,明确后续实现路径
-
application.yml 格式修复
- 移除重复的
--- # mqtt配置信息行
- 移除重复的
-
修复 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保护