- docs/reviews/代码质量审计报告-20260428.md: full audit results and fix summary - docs/planning/12-待办事项决策分类.md: action items split by decision owner (hardware team / product team / ops / independent)
3.4 KiB
3.4 KiB
代码质量审计报告
审计时间:2026-04-28 审计范围:server/、miniprogram/、admin-console/ 全部源码 + 设计文档合规性
审计结果总览
代码质量(修复前 -> 修复后)
| 模块 | 修复前 CRITICAL | 修复后 CRITICAL | 修复的问题数 |
|---|---|---|---|
| Server 后端 | 4 | 0 | 13 |
| 小程序 | 7 | 0 | 14 |
| Admin 管理后台 | 5 | 0 | 16 |
| 文档一致性 | 6 | 3 (已知差距) | 3 |
42 个文件修改,+495 / -1216 行(净减少 721 行),经两轮独立审查验证通过。
文档合规校验
| 校验维度 | 符合 | 部分符合 | 未实现 |
|---|---|---|---|
| BLE 通信协议 | 4/10 | 2/10 | 2/10 |
| API 接口 | 9/17 | 6/17 | 2/17 |
| 数据库表结构 | 0/8 | 6/8 | 2/8 |
| 安全与鉴权 | 4/15 | 4/15 | 7/15 |
| 小程序业务流程 | 3/9 | 6/9 | 0/9 |
| 管理后台功能 | 5/9 | 4/9 | 0/9 |
已修复的问题
Server(13 项)
- JWT 密钥生产环境强制校验(不允许默认值)
- 订阅 verify 改为 admin-only(堵免费订阅漏洞)
- 设备命令结果上报增加设备归属校验
- 设备事件上报增加设备归属校验
- 护理记录同步增加设备归属校验
- 移除 admin token 从请求 body 读取
- 管理员设置接口增加 key 白名单
- 管理员创建订阅增加用户存在性校验
- COS getObjectUrl 改为 callback-based Promise
- 固件检查增加版本比较逻辑
- 绑定返回真实订阅状态(替代硬编码 trial)
- 分页参数增加边界保护(pageSize 上限 100)
- 提取公共工具函数(limitClause, toMysqlDate, formatDate)
小程序(14 项)
- 扫描 PD 假数据替换为占位符
- 护理完成标记为 client_timer 来源
- mock.js 禁用
- auto-scan 增加 onUnload 清理 BLE 监听器
- wear-check 增加 onUnload 清理 BLE 监听器
- ble-connect 增加 onUnload 清理 BLE 监听器
- index 页 ble.off 传入具体回调(不再清除所有监听器)
- subscription status 类型统一为数字
- BLE 扫描回调累积修复(offBluetoothDeviceFound)
- 历史统计数据跨页累加
- subscribe-success 从参数读取实际套餐信息
- treatment-done 从参数读取实际护理模式
- BLE 断连检测(onBLEConnectionStateChange)
- 购买流程替换为联系管理员弹窗
Admin 管理后台(16 项)
- AdminLayout 退出功能修复(require->import, logout->clearToken)
- 删除全部 mock 数据和 getMockData 函数
- Dashboard 假数据替换为真实 API 调用
- Dashboard monthly_revenue 替换为 subscription_count
- 订阅统计 || 改为 ?? 修复 0 值显示
- Token 增加 7 天过期校验
- 设备状态码统一("库存"改为"未激活")
- 用户页"记录"链接指向正确页面
- 订阅 createForm.user_id 类型修复
- 所有 catch 块增加错误提示 Toast
- 订阅状态文本统一
- 删除无效的"记住登录状态"复选框
- 提取公共 CSS 到 common.css(减少 900+ 行重复)
- 提取 formatDate 到 utils/format.js
- AdminLayout 显示真实管理员名称
- 移除未使用的 uview-plus 依赖
剩余差距
详见 docs/planning/12-待办事项决策分类.md,分为:
- 需要硬件团队确认的 6 项(BLE 协议细节)
- 需要产品团队确认的 6 项(功能范围)
- 需要运维确认的 5 项(部署配置)
- 可独立完成的 P0 共 6 项、P1 共 8 项、P2 共 6 项