Skip to content

凌云用户中心 · API 参考手册

提示

本文为凌云用户中心后端 REST API 官方参考文档,覆盖用户鉴权、资料、文件上传及管理员运营接口。前端(React / Vue)与第三方系统均应以此为准。

版本:v1.0.0|最后更新:2025-11-16|维护人:@mlinyun

1. 基本信息

项目要素描述
基础 URLhttps://<domain>/api(本地调试:http://localhost:8100/api
接口风格RESTful + JSON
编码格式UTF-8
认证方式HttpSession(基于 Cookie);管理员接口需 admin 角色
速率限制通过 @RateLimit 注解控制(详见对应接口)
文档形式Markdown(本手册) + Knife4j 在线文档 /doc.html

1.1 公共请求要求

说明
Content-TypeJSON 接口:application/json;上传接口:multipart/form-data
Cookie登录后必须携带 JSESSIONID 才能访问受限接口
字符编码所有文本字段均为 UTF-8

1.2 统一响应格式 BaseResponse<T>

字段类型说明
successboolean业务是否成功
codeint状态码,参见错误码表
messagestring描述信息
dataT具体数据载荷,可为对象/数组/原始类型
json
{
  "success": true,
  "code": 20000,
  "message": "操作成功",
  "data": {}
}

1.3 错误码(ResultCodeEnum

CodeMessage场景
20000成功请求成功
40000请求参数错误DTO 校验失败、格式不合法
40100未登录Session 失效或未携带 Cookie
40101无权限非管理员访问管理端接口
40300禁止访问账号被封禁等场景
40400请求的资源不存在ID 未命中、路由不存在
50000服务器内部错误未捕获异常
50001操作失败业务执行失败(通用)

2. 系统健康

2.1 健康检查

说明
URLGET /health
鉴权
用途监控探针、自检

响应示例

json
{
  "success": true,
  "code": 20000,
  "message": "成功",
  "data": "OK"
}

3. 用户鉴权与会话

限流:注册(同 IP 300s 内 ≤3 次)、登录(同 IP 60s 内 ≤5 次)、密码修改(同用户 300s 内 ≤3 次)。

3.1 用户注册

说明
URLPOST /user/register
鉴权
请求体application/json
字段类型必填说明
userAccountstring4-16 位字母/数字/下划线,唯一
userPasswordstring8-20 位,需包含大小写 + 数字 + 特殊字符
checkPasswordstringuserPassword 一致
planetCodestring长度 ≤6,唯一

响应Long(新用户 ID)。

请求示例

json
{
  "userAccount": "LingYun01",
  "userPassword": "Password..1024",
  "checkPassword": "Password..1024",
  "planetCode": "00001"
}

3.2 用户登录

说明
URLPOST /user/login
鉴权
请求体application/json
响应UserLoginVO(脱敏用户信息)
字段类型必填说明
userAccountstring登录账号
userPasswordstring登录密码
json
{
  "userAccount": "Admin01",
  "userPassword": "Admin..1024"
}

3.3 获取当前登录用户

说明
URLGET /user/loginUserInfo
鉴权已登录用户
响应UserLoginVO

3.4 用户注销

说明
URLPOST /user/logout
鉴权已登录用户
响应Boolean

3.5 修改密码

说明
URLPOST /user/updatePassword
鉴权已登录用户
请求体application/json
字段类型必填说明
idlong当前用户 ID(服务端校验)
rawPasswordstring原始密码
newPasswordstring新密码(同注册校验)
checkPasswordstringnewPassword 一致

响应Boolean


4. 用户资料与文件

4.1 更新个人资料

说明
URLPOST /user/updateUserInfo
鉴权已登录用户
请求体application/json
字段类型必填说明
idlong当前用户 ID
userNamestring昵称
userAvatarstring头像 URL(通常由上传接口生成)
userProfilestring个人简介
userGenderint0/1/2
userPhonestring手机号
userEmailstring邮箱

响应Boolean

4.2 上传头像

说明
URLPOST /file/upload/avatar
鉴权已登录用户
请求体multipart/form-data,字段 file
限制JPG / JPEG / PNG / GIF;≤2MB;魔数校验、防伪造
响应String(可访问的头像 URL)

4.3 管理员重置用户密码

说明
URLPOST /user/adminResetUserPassword
鉴权管理员
请求体application/json
字段类型必填说明
idlong目标用户 ID
newPasswordstring新密码(会重新加密后写入)

响应Boolean


5. 管理员用户运营接口

所有接口需管理员登录态,且通过 @AuthCheck(mustRole = admin) 及限流保护(60s 内 10~30 次不等)。

5.1 分页检索用户

说明
URLPOST /user/adminGetUserInfoByPage
请求体AdminQueryUserRequest
响应Page&lt;UserVO&gt;

关键参数:

字段说明
current / pageSize分页配置,建议 pageSize ≤ 50
sortField / sortOrder排序字段,如 createTime + descend
userAccount, userName, userRole, userStatus, userGender, userPhone, userEmail, planetCode过滤条件
createTimeStart, createTimeEnd时间范围

5.2 查看用户详情

说明
URLPOST /user/getUserById
请求体{ "id": 1899878538809757698 }
响应User(包含密码哈希,谨慎展示)

5.3 新增用户

说明
URLPOST /user/addUser
请求体AdminAddUserRequest(与注册字段类似,可设置角色/资料)
响应Long(新用户 ID)

5.4 更新用户

说明
URLPOST /user/adminUpdateUserInfo
请求体AdminUpdateUserInfoRequest
响应Boolean

5.5 逻辑删除用户

说明
URLPOST /user/deleteUserById
请求体{ "id": 1899878538809757698 }
响应Boolean(设置 is_delete,账号可复用)

5.6 封禁 / 解封用户

说明
URLPOST /user/adminBanOrUnbanUser
请求体{ "id": 1899878538809757698, "userStatus": 1 }(1=封禁,0=解封)
响应Boolean

6. 数据模型摘要

6.1 UserLoginVO

字段类型说明
idlong用户 ID
userAccountstring登录账号
userNamestring显示昵称
userAvatarstring头像 URL
userProfilestring简介
userRolestringuser / admin
userGenderint0/1/2
userPhonestring手机号
userEmailstring邮箱
planetCodestring星球编号
editTime / createTime / updateTimedatetime时间字段

6.2 UserVO

UserLoginVO 基础上增加:userStatusisDelete、分页元信息等,供管理员列表使用。


7. 示例

7.1 登录成功

http
POST /api/user/login HTTP/1.1
Content-Type: application/json

{
  "userAccount": "Admin01",
  "userPassword": "Admin..1024"
}
json
{
  "success": true,
  "code": 20000,
  "message": "操作成功",
  "data": {
    "id": 1980484882008412161,
    "userAccount": "Admin01",
    "userName": "管理员",
    "userRole": "admin",
    "userAvatar": "/default_admin_avatar.png",
    "userProfile": "系统超级管理员,拥有所有权限"
  }
}

7.2 未登录访问受限接口

json
{
  "success": false,
  "code": 40100,
  "message": "未登录",
  "data": null
}

8. 变更记录

日期版本内容作者
2025-11-161.0.0基于 Knife4j 数据重新编排,采用专业文档格式ChatGPT

若新增或调整接口,请同步更新 Controller 注释、Knife4j 描述与本手册,保持多端一致性。

版权所有 © 2025 mlinyun    粤ICP备2025419292号-1