文件
jw-beauty/docs/reviews/代码质量审计报告-20260428.md
T
Guoguo 88adee7743 docs: add audit report and prioritized action items
- 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)
2026-04-28 09:01:18 -07:00

3.4 KiB
原始文件 Blame 文件历史

代码质量审计报告

审计时间: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

已修复的问题

Server13 项)

  1. JWT 密钥生产环境强制校验(不允许默认值)
  2. 订阅 verify 改为 admin-only(堵免费订阅漏洞)
  3. 设备命令结果上报增加设备归属校验
  4. 设备事件上报增加设备归属校验
  5. 护理记录同步增加设备归属校验
  6. 移除 admin token 从请求 body 读取
  7. 管理员设置接口增加 key 白名单
  8. 管理员创建订阅增加用户存在性校验
  9. COS getObjectUrl 改为 callback-based Promise
  10. 固件检查增加版本比较逻辑
  11. 绑定返回真实订阅状态(替代硬编码 trial)
  12. 分页参数增加边界保护(pageSize 上限 100
  13. 提取公共工具函数(limitClause, toMysqlDate, formatDate

小程序(14 项)

  1. 扫描 PD 假数据替换为占位符
  2. 护理完成标记为 client_timer 来源
  3. mock.js 禁用
  4. auto-scan 增加 onUnload 清理 BLE 监听器
  5. wear-check 增加 onUnload 清理 BLE 监听器
  6. ble-connect 增加 onUnload 清理 BLE 监听器
  7. index 页 ble.off 传入具体回调(不再清除所有监听器)
  8. subscription status 类型统一为数字
  9. BLE 扫描回调累积修复(offBluetoothDeviceFound
  10. 历史统计数据跨页累加
  11. subscribe-success 从参数读取实际套餐信息
  12. treatment-done 从参数读取实际护理模式
  13. BLE 断连检测(onBLEConnectionStateChange
  14. 购买流程替换为联系管理员弹窗

Admin 管理后台(16 项)

  1. AdminLayout 退出功能修复(require->import, logout->clearToken
  2. 删除全部 mock 数据和 getMockData 函数
  3. Dashboard 假数据替换为真实 API 调用
  4. Dashboard monthly_revenue 替换为 subscription_count
  5. 订阅统计 || 改为 ?? 修复 0 值显示
  6. Token 增加 7 天过期校验
  7. 设备状态码统一("库存"改为"未激活"
  8. 用户页"记录"链接指向正确页面
  9. 订阅 createForm.user_id 类型修复
  10. 所有 catch 块增加错误提示 Toast
  11. 订阅状态文本统一
  12. 删除无效的"记住登录状态"复选框
  13. 提取公共 CSS 到 common.css(减少 900+ 行重复)
  14. 提取 formatDate 到 utils/format.js
  15. AdminLayout 显示真实管理员名称
  16. 移除未使用的 uview-plus 依赖

剩余差距

详见 docs/planning/12-待办事项决策分类.md,分为:

  • 需要硬件团队确认的 6 项(BLE 协议细节)
  • 需要产品团队确认的 6 项(功能范围)
  • 需要运维确认的 5 项(部署配置)
  • 可独立完成的 P0 共 6 项、P1 共 8 项、P2 共 6 项