文件
jw-beauty/server
Guoguo 6b91ebe35d feat(diagnosis): 按新协议实现多光谱诊断算法+分区差异化下发+报告面罩图
- 新协议《协议简述-添加扫描时光色》落地: FFE4 Byte17 高3位=扫描光色(1红/2红外/3紫外/4暖黄),
  低5位保留贴合状态; Byte18=0xFF 故障; auto-scan 按光色分桶采集(旧固件无标识归 red 桶降级)
- diagnosis.js 重写: PD极性(值大=吸收多,固件已确认) NR=本区/本色5区平均-1;
  每区4色argmax>0.10判定; 3路PD区几何平均+MAD剔奇异(3σ对n=3失效,审计实证);
  严重度0.05/0.15/0.30仅展示; 全参数走 diagnosis_config 热调(极性/阈值/PD映射/亮度)
- buildVendorCommand 支持 plan 多区多色单命令下发(每IO独立 红/红外/紫外/暖黄);
  builder层安全硬上限 治疗亮度≤204(80%) 时长≤600s
- 区域映射修正: 掩码=IO纵列 左0x01/中上0x02/中0x04/中下0x08/右0x10,
  修复 treatment-setup/manual/treating/getRegionName/i18n 共7处标签错位, FULL_FACE 0x7F→0x1F
- 扫描报告页: 新增分区面罩示意图(5区按推荐光着色+模式名+严重度,点击跳光疗介绍),
  推荐护理改一条命令多色下发(亮度204); 扫描中设备故障即时中止
- schema.sql diagnosis_config 种子更新(新结构); i18n 清理死键,中英对齐25/24键
2026-07-28 04:36:51 -07:00
..

Hox 腾讯云函数后端

本目录是 Hox 项目的腾讯云后端骨架,目标架构为:腾讯云函数 SCF Node.js + 腾讯云数据库 MySQL + 腾讯云 COS。

配置

本地配置文件为 .env,不会提交到 Git。提交用模板为 .env.example

当前已按项目默认值预置:

配置
COS Bucket jw-bucket-1426323813
地域 ap-guangzhou
数据库 jw_beauty
数据库用户 root
临时后台账号 admin
临时后台密码 admin

你需要补充 .env 中的真实值:

  • TENCENT_SECRET_ID
  • TENCENT_SECRET_KEY
  • DB_HOST
  • DB_PASSWORD
  • WECHAT_APPID
  • WECHAT_SECRET
  • JWT_SECRET
  • ADMIN_JWT_SECRET

本地运行

cd server
npm install
npm run db:init
npm start

健康检查:

curl http://localhost:3000/health

SCF 入口

腾讯云函数入口:

index.main_handler

HTTP 触发器或函数 URL 需要透传:

  • HTTP method
  • path
  • headers
  • queryStringParameters
  • body

已实现接口

小程序接口:

  • POST /api/v1/auth/login
  • POST /api/v1/auth/refresh
  • GET /api/v1/user/profile
  • PUT /api/v1/user/profile
  • POST /api/v1/user/phone
  • POST /api/v1/device/bind
  • POST /api/v1/device/unbind
  • GET /api/v1/device/list
  • GET /api/v1/device/:device_id
  • GET /api/v1/device/command/pending
  • POST /api/v1/device/event
  • GET /api/v1/subscription
  • POST /api/v1/subscription/purchase
  • POST /api/v1/subscription/verify
  • GET /api/v1/treatment/history
  • POST /api/v1/treatment/sync
  • GET /api/v1/firmware/latest

管理后台接口:

  • POST /api/v1/admin/login
  • GET /api/v1/admin/dashboard
  • GET /api/v1/admin/devices
  • GET /api/v1/admin/devices/:device_id
  • POST /api/v1/admin/devices/:device_id/command
  • POST /api/v1/admin/devices/:device_id/unbind
  • GET /api/v1/admin/users
  • GET /api/v1/admin/users/:user_id
  • GET /api/v1/admin/subscriptions
  • POST /api/v1/admin/subscriptions
  • GET /api/v1/admin/records
  • GET /api/v1/admin/logs
  • GET /api/v1/admin/settings
  • POST /api/v1/admin/settings
  • GET /api/v1/admin/devices/:device_id/commands
  • GET /api/v1/admin/firmware
  • POST /api/v1/admin/firmware
  • POST /api/v1/admin/firmware/:firmware_id/status

数据库

表结构在:

sql/schema.sql

初始化脚本会创建表并插入临时管理员账号。

重要说明

  • 当前微信支付只保留接口骨架,未接入真实微信支付回调。
  • /api/v1/device/command/pending 已接入 device_commands,小程序拉取后执行 BLE 指令并回传结果。
  • /api/v1/firmware/latest 会读取 firmware_files 并生成 COS 签名 URL,后台可通过固件接口登记 COS 对象 key。
  • 生产环境必须替换 admin/admin 和所有默认 secret。