SCL-90 心理咨询小程序 · 后端服务

本地 Node.js + Express + MySQL(前后端分离框架)
服务运行中 · 数据库连接正常
这是 API 服务。小程序通过 /api/auth/mp/* 注册登录; Web 管理后台:/admin/(管理员 / 心理医生通过 /api/auth/console/login 登录;检测人账号不在后台账号体系内)
健康检查:/api/health

用户体系(两端分离)

表users 后台用户(管理员 / 心理医生) members 小程序端检测人
POST/api/auth/console/login 后台登录(不开放注册)
GET/api/auth/console/me 当前后台用户
POST/api/auth/mp/register 检测人注册(公开)
POST/api/auth/mp/login 检测人登录
GET/api/auth/mp/me 当前检测人
POST/api/auth/auto 测试自动登录(body.platform=admin|client)

主要接口

POST/api/admin/console-access 后台准入校验(需后台 token)
GET/api/admin/meta 角色与权限矩阵
GET/api/admin/stats 概览统计(按权限收窄范围)
GET/api/admin/audit-logs 后台操作审计日志
GET/api/clinician/my-clients 心理医生-我的客户(仅后台)
GET/api/users 用户列表(管理员;?platform=admin|client 分端,省略则合并)
GET/api/users/binding-overview 客户绑定工作台数据
PATCH/api/users/:id/role 分配角色(body.platform=)
PATCH/api/users/:id/bind-counselor 绑定心理医生(权限点 user:bind-counselor)
POST/api/users/binding-batch 批量绑定 / 批量解绑
PATCH/api/users/:id/permissions 账号级额外权限授予
PATCH/api/users/:id/active 启用/停用账号(body.platform=)
GET/api/assessments 测评列表(评分按权限剥离)
POST/api/assessments 提交测评(仅小程序端检测人)
GET/api/reports 报告模板列表
GET/api/reports/sections 报告章节与正文文本块(含固定块与停用块)
GET/api/reports/sections/variables 正文模板可用变量清单(后台编辑器用)
POST/api/reports/sections/preview 正文模板预览(虚构样本,仅后台)
POST/PUT/DEL/api/reports/sections[/:id] 章节 / 正文文本块维护(report:manage)
GET/api/reports/samples 报告样例(在线模板 + 章节目录,公开只读,供小程序访客浏览)
POST/api/reports/preview 单份报告(章节多选)(仅后台)
POST/api/reports/compare 多份报告对比(仅后台)
GET/api/report-instances 已生成报告(绑定检测人+检测结果)
POST/api/report-instances 为某次测评生成报告实例(仅后台)
PATCH/api/report-instances/:id 上架 / 下架报告实例(仅后台)
GET/api/districts 地区字典列表(省市区三级联动,只读)
POST/PATCH/DEL/api/districts[/:id] 后台维护行政区划(仅 admin,小程序端只读)
GET/api/dicts 通用字典列表(?symbols=GENDER,DEPT 批量取含条目 / ?withItems=1 附带条目)
GET/api/dicts/:symbol 按 symbol 取单个字典 + 其全部选项(如 GENDER)