ManageServer API开发手册

接口说明
项目 内容
文档名称 ManageServer API开发手册
服务访问地址 ly.zhenyou.top
接口前缀 /api/user
适用对象 适用于 App 端、前端联调、测试验收、接口对接及实施交付。
文档依据 依据 project-docs/API_DOCUMENT.mdproject-docs/API_PATHS_REFERENCE.md 当前实现整理。

1. 文档说明

本文档用于说明 ManageServer 当前用户端接口的调用方式、数据结构与业务约束,覆盖认证、用户信息、设备管理、训练管理及审计查询等核心能力。本文档面向研发、测试、实施及第三方集成团队,作为接口联调、验收测试与交付使用的统一依据。

2. 服务地址与测试账号

类型 账号 昵称 说明
管理员测试账号 admin_01 管理员账号 用于管理端相关联调与权限验证。
普通用户测试账号 test_user_01 测试用户 用于用户端设备、训练、审计等功能验证。
说明:当前文档仅记录测试内置账号标识,账号密码请以实际测试环境下发信息为准。

3. 调用规范

事项 说明
协议与地址 当前测试环境访问地址为 ly.zhenyou.top
接口前缀 用户端接口统一以 /api/user 为前缀。
鉴权方式 除注册、登录外,其余接口均需在请求头中携带 JWT:Authorization: Bearer <accessToken>
数据格式 请求与响应统一采用 application/json
时间格式 日期时间字段统一采用 ISO-8601 格式,例如 2026-03-14T15:10:00
权限说明 用户端接口面向已登录账号开放;设备绑定、解绑、换绑及设默认等用户操作仅允许 ROLE_USER 调用。

4. 统一响应结构

系统接口统一返回以下 JSON 结构:

{
  "code": 0,
  "message": "success",
  "data": {}
}
字段 类型 说明
code int 业务状态码,0 表示成功,其余表示失败或异常。
message string 结果说明信息,成功时通常返回 success
data object / array / null 业务数据主体;无返回数据时一般为 null

4.1 常见错误码

错误码说明
400请求参数错误
401未认证或令牌无效
403无访问权限
500系统内部错误
1001用户名已存在
1002用户不存在
1003用户状态不可用
1004用户名或密码错误
1006原密码错误
2001设备不存在
2002设备状态不可用
2003设备已被其他用户绑定
2004已达到设备绑定上限
2005设备绑定关系不存在
2006设备编号或序列号已存在
2007仅普通用户可以绑定、解绑或设置默认设备
3001训练记录不存在
3002训练状态不允许当前操作
3003训练设备未绑定到当前用户
3004训练通道不存在
3005训练指标定义不存在

5. 接口总览

模块 主要接口
认证模块 /api/user/auth/register/api/user/auth/login/api/user/auth/logout/api/user/auth/change-password/api/user/auth/refresh-token
用户模块 /api/user/me/api/user/profile/api/user/avatar/api/user/username
设备模块 /api/user/devices/bind/api/user/devices/unbind/api/user/devices/rebind/api/user/devices/default/api/user/devices/my/api/user/devices/current/api/user/devices/{deviceId}
训练模块 /api/user/trainings 及其子路径
审计模块 /api/user/audit/login-logs/api/user/audit/operation-logs/api/user/audit/trainings/{trainingId}/events

6. 认证模块

认证模块用于完成用户注册、登录、退出登录、密码变更及访问令牌刷新,是用户访问系统的基础能力。
接口名称 方法 路径 说明
用户注册POST/api/user/auth/register注册普通用户账号,成功后返回用户 ID。
用户登录POST/api/user/auth/login使用用户名和密码登录,成功后返回访问令牌。
退出登录POST/api/user/auth/logout当前会话主动退出,并记录审计日志。
修改密码POST/api/user/auth/change-password修改当前用户密码,需提供原密码。
刷新令牌POST/api/user/auth/refresh-token换发新的访问令牌。

6.1 用户注册

POST ly.zhenyou.top/api/user/auth/register

{
  "username": "test_user_01",
  "password": "123456",
  "nickname": "测试用户"
}
{
  "code": 0,
  "message": "success",
  "data": 1
}

6.2 用户登录

POST ly.zhenyou.top/api/user/auth/login

{
  "username": "test_user_01",
  "password": "123456"
}
{
  "code": 0,
  "message": "success",
  "data": {
    "userId": 1,
    "username": "test_user_01",
    "nickname": "测试用户",
    "accessToken": "xxx",
    "tokenType": "Bearer",
    "expiresIn": 7200
  }
}

7. 用户模块

用户模块用于维护当前登录用户的个人资料,包括基本信息查询、资料更新、头像更新和用户名修改。
接口名称 方法 路径 说明
查询当前用户信息GET/api/user/me查询当前登录用户基础档案信息。
更新个人资料PUT/api/user/profile修改昵称、手机号、邮箱、性别、生日等信息。
更新头像PUT/api/user/avatar修改头像地址。
修改用户名PUT/api/user/username修改当前登录用户名。

7.1 查询当前用户信息

GET ly.zhenyou.top/api/user/me
Authorization: Bearer <accessToken>
{
  "code": 0,
  "message": "success",
  "data": {
    "id": 1,
    "username": "test_user_01",
    "nickname": "测试用户",
    "phone": null,
    "email": null,
    "avatarUrl": null,
    "gender": null,
    "birthday": null,
    "status": "NORMAL",
    "lastLoginTime": "2026-03-14T11:00:00"
  }
}

7.2 更新个人资料

PUT ly.zhenyou.top/api/user/profile
Authorization: Bearer <accessToken>

{
  "nickname": "新昵称",
  "phone": "13800138000",
  "email": "demo@test.com",
  "gender": 1,
  "birthday": "1998-01-01"
}

8. 设备模块

设备模块用于管理普通用户与设备之间的绑定关系,包括绑定、解绑、换绑、设置默认设备以及查询本人设备信息。
接口名称 方法 路径 说明
绑定设备POST/api/user/devices/bind将设备绑定到当前普通用户账号。
解绑设备POST/api/user/devices/unbind解除指定设备与当前用户的绑定关系。
换绑设备POST/api/user/devices/rebind将旧设备解绑并将新设备绑定到当前用户。
设置默认设备POST/api/user/devices/default在已绑定设备中设置默认设备。
查询我的设备列表GET/api/user/devices/my查询当前用户已绑定的全部设备。
查询当前默认设备GET/api/user/devices/current查询当前用户默认设备。
查询我的设备详情GET/api/user/devices/{deviceId}查询当前用户指定设备详情。

8.1 绑定设备

POST ly.zhenyou.top/api/user/devices/bind
Authorization: Bearer <accessToken>

{
  "deviceId": "DEV-001",
  "setAsDefault": true
}
业务约束:

8.2 解绑设备

POST ly.zhenyou.top/api/user/devices/unbind
Authorization: Bearer <accessToken>

{
  "deviceId": "DEV-001",
  "unbindReason": "测试解绑"
}

8.3 换绑设备

POST ly.zhenyou.top/api/user/devices/rebind
Authorization: Bearer <accessToken>

{
  "oldDeviceId": "DEV-001",
  "newDeviceId": "DEV-002",
  "setAsDefault": true,
  "unbindReason": "更换设备"
}

8.4 查询我的设备列表

GET ly.zhenyou.top/api/user/devices/my
Authorization: Bearer <accessToken>
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 1,
      "deviceId": "DEV-001",
      "deviceSn": "SN-001",
      "deviceName": "测试设备1",
      "deviceType": "EMG4",
      "channelCount": 4,
      "status": "NORMAL",
      "onlineStatus": "OFFLINE",
      "isDefault": true,
      "bindTime": "2026-03-14T11:10:00"
    }
  ]
}

9. 训练模块

训练模块用于完成训练全流程管理,包括训练创建、启动、过程指标保存、最终指标保存、原始文件索引登记、结束、中断、列表查询、详情查询、删除、重算与统计。
接口名称 方法 路径 说明
创建训练POST/api/user/trainings创建训练记录,初始状态为 PENDING
开始训练POST/api/user/trainings/{id}/start将训练状态切换为 RUNNING
保存过程指标POST/api/user/trainings/{id}/metric-snapshots保存训练过程中的指标快照。
保存最终指标POST/api/user/trainings/{id}/final-metrics保存或更新训练最终指标结果。
保存原始文件索引POST/api/user/trainings/{id}/raw-files登记原始文件索引信息,不保存文件本体。
结束训练POST/api/user/trainings/{id}/finish正常完成训练并写入结果摘要。
中断训练POST/api/user/trainings/{id}/interrupt中断训练流程。
查询我的训练列表GET/api/user/trainings查询当前用户全部训练记录。
查询训练详情GET/api/user/trainings/{id}查询指定训练完整详情。
删除训练DELETE/api/user/trainings/{id}逻辑删除训练记录。
重算最终指标POST/api/user/trainings/{id}/recalculate根据已有快照重新计算最终指标。
训练统计GET/api/user/trainings/statistics查询训练统计概览。

9.1 创建训练

POST ly.zhenyou.top/api/user/trainings
Authorization: Bearer <accessToken>

{
  "deviceId": "DEV-001",
  "stationId": null,
  "trainingType": "RELAX",
  "sampleRate": 1000,
  "remark": "首次训练"
}
业务约束:训练设备必须已绑定到当前用户;创建成功后训练状态为 PENDING

9.2 保存过程指标

POST ly.zhenyou.top/api/user/trainings/{id}/metric-snapshots
Authorization: Bearer <accessToken>

{
  "items": [
    {
      "channelNo": 1,
      "metricCode": "RMS",
      "windowNo": 0,
      "snapshotTime": "2026-03-14T15:10:00",
      "metricValue": 12.3456,
      "metricStatus": "CALCULATED"
    }
  ]
}
业务约束:仅 RUNNING 状态允许保存;metricCode 必须为已启用指标定义。

9.3 保存最终指标

POST ly.zhenyou.top/api/user/trainings/{id}/final-metrics
Authorization: Bearer <accessToken>

{
  "items": [
    {
      "channelNo": 1,
      "metricCode": "RMS",
      "metricValue": 15.6789,
      "metricText": null,
      "metricStatus": "CALCULATED",
      "algorithmVersion": "v1.0.0"
    }
  ]
}

9.4 保存原始文件索引

POST ly.zhenyou.top/api/user/trainings/{id}/raw-files
Authorization: Bearer <accessToken>

{
  "items": [
    {
      "fileType": "RAW_EMG",
      "filePath": "/data/emg/session-1.raw",
      "fileHash": "sha256-demo",
      "fileSize": 102400,
      "sampleRate": 1000,
      "durationMs": 30000,
      "storageType": "LOCAL"
    }
  ]
}
说明:该接口仅保存原始文件索引信息,不直接上传文件本体。

9.5 结束训练

POST ly.zhenyou.top/api/user/trainings/{id}/finish
Authorization: Bearer <accessToken>

{
  "remark": "训练正常完成",
  "resultSummary": {
    "overallScore": 92.5,
    "conclusion": "状态稳定"
  }
}

9.6 查询我的训练列表

GET ly.zhenyou.top/api/user/trainings
Authorization: Bearer <accessToken>
{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 1,
      "sessionNo": "TS202603141510001234",
      "deviceId": "DEV-001",
      "deviceName": "测试设备1",
      "channelCount": 4,
      "trainingType": "RELAX",
      "status": "COMPLETED",
      "startTime": "2026-03-14T15:10:00",
      "endTime": "2026-03-14T15:10:30",
      "durationMs": 30000,
      "sampleRate": 1000,
      "createdAt": "2026-03-14T15:09:58"
    }
  ]
}

9.7 查询训练详情

返回内容通常包括:

9.8 重算最终指标

POST ly.zhenyou.top/api/user/trainings/{id}/recalculate
Authorization: Bearer <accessToken>

{
  "algorithmVersion": "recalculate-v1"
}
说明:当前版本会基于过程指标快照求平均值后回写最终指标表。

9.9 训练统计

返回内容通常包括:

10. 审计模块

审计模块用于支撑用户级行为留痕与训练过程追踪,包括登录日志、操作审计日志及训练事件日志查询。
接口名称 方法 路径 说明
查询我的登录日志GET/api/user/audit/login-logs查询当前用户的登录历史记录。
查询我的操作审计日志GET/api/user/audit/operation-logs查询当前用户的操作留痕记录。
查询训练事件日志GET/api/user/audit/trainings/{trainingId}/events查询指定训练会话的事件日志。

10.1 查询我的登录日志

GET ly.zhenyou.top/api/user/audit/login-logs
Authorization: Bearer <accessToken>

10.2 查询我的操作审计日志

GET ly.zhenyou.top/api/user/audit/operation-logs
Authorization: Bearer <accessToken>

10.3 查询训练事件日志

GET ly.zhenyou.top/api/user/audit/trainings/{trainingId}/events
Authorization: Bearer <accessToken>

11. 管理端接口

管理端接口用于后台运营、设备管理、用户管理、训练审计及安全控制。根据角色不同分为管理员接口与超级管理员接口两类,调用时应使用对应权限账号获取访问令牌。

11.1 访问说明

类别 路径前缀 访问角色 说明
管理端接口 /api/admin ROLE_ADMINROLE_SUPER_ADMIN 用于普通后台管理。管理员仅可查看普通用户相关数据。
超级管理员接口 /api/superadmin ROLE_SUPER_ADMIN 用于全局账号、权限、安全与全量审计管理。

11.2 管理员接口

分类 方法 路径 说明
仪表盘GET/api/admin/dashboard/overview查询管理端概览统计信息。
用户GET/api/admin/users查询普通用户列表,不包含管理员和超级管理员。
用户GET/api/admin/users/{userId}查询指定普通用户详情。
用户GET/api/admin/users/{userId}/trainings查询指定普通用户训练列表,支持 statusdeviceIdtrainingType 筛选。
设备GET/api/admin/devices查询设备池列表。
设备POST/api/admin/devices新增设备。
设备GET/api/admin/devices/{deviceId}查询设备详情。
设备GET/api/admin/devices/{deviceId}/bindings查询设备归属历史。
设备PUT/api/admin/devices/{deviceId}编辑设备信息。
设备POST/api/admin/devices/{deviceId}/disable/enable启用或禁用设备。
设备POST/api/admin/devices/{deviceId}/assign/unbind分配设备给普通用户或解除绑定关系。
训练GET/api/admin/trainings查询普通用户训练记录。
审计GET/api/admin/audit/login-logs/api/admin/audit/operation-logs查询普通用户全量登录日志和操作日志,支持筛选。
审计GET/api/admin/audit/users/{userId}/login-logs/api/admin/audit/users/{userId}/operation-logs按普通用户查询定向日志,适合问题排查。

11.2.1 管理端鉴权示例

Authorization: Bearer <adminToken>

11.2.2 新增设备示例

POST ly.zhenyou.top/api/admin/devices
Authorization: Bearer <adminToken>

{
  "deviceId": "DEV-002",
  "deviceSn": "SN-002",
  "deviceName": "测试设备2",
  "deviceType": "EMG8",
  "channelCount": 8,
  "model": "EMG-Model-B",
  "firmwareVersion": "1.0.0",
  "hardwareVersion": "1.0.0",
  "bluetoothMac": "AA:BB:CC:DD:EE:FF",
  "wirelessInfo": "BLE",
  "manufactureDate": "2026-03-01",
  "remark": "后台新增设备"
}

11.2.3 分配设备示例

POST ly.zhenyou.top/api/admin/devices/DEV-002/assign
Authorization: Bearer <adminToken>

{
  "userId": 2,
  "setAsDefault": true
}
业务说明:

11.2.4 设备归属历史

GET ly.zhenyou.top/api/admin/devices/DEV-002/bindings
Authorization: Bearer <adminToken>
返回该设备的完整绑定历史,包括绑定账号、账号角色、默认设备标记、绑定时间、解绑时间、解绑原因及历史状态等信息。

11.2.5 审计查询说明

接口 筛选参数
/api/admin/audit/login-logs usernameloginTypesuccessstartTimeendTime
/api/admin/audit/operation-logs usernamemoduleoperationTyperesultStatusstartTimeendTime
管理员仅可查看普通用户日志;若目标 userId 属于管理员或超级管理员,接口应返回拒绝访问或用户不可见。