SAMS/doc/api.md

961 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# SAMS系统接口文档
## 1. 认证接口 (AuthController)
### 1.1 用户登录
- **接口路径**: `/login`
- **请求方式**: POST
- **请求参数**:
```json
{
"username": "string", // 用户名/学号/邮箱
"password": "string" // 密码
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "登录成功",
"data": "JWT令牌"
}
```
## 2. 系统管理接口 (sys)
### 2.1 用户管理 (UserController)
- **接口路径**: `/api/user`
- **功能**: 普通用户管理相关接口
#### 2.1.1 修改密码
- **接口路径**: `/api/user/change-password`
- **请求方式**: PUT
- **请求参数**:
```json
{
"userId": "number", // 用户ID
"oldPassword": "string", // 旧密码
"newPassword": "string" // 新密码
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "密码修改成功",
"data": null
}
```
#### 2.1.2 更新个人信息
- **接口路径**: `/api/user/profile`
- **请求方式**: PUT
- **请求参数**:
```json
{
"userId": "number", // 用户ID
"nickname": "string", // 昵称
"email": "string", // 邮箱
"avatar": "string" // 头像URL
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "个人信息更新成功",
"data": null
}
```
#### 2.1.3 获取用户详情
- **接口路径**: `/api/user/{userId}`
- **请求方式**: GET
- **路径参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": {
"userId": "number",
"username": "string",
"nickname": "string",
"email": "string",
"avatar": "string"
}
}
```
#### 2.1.4 上传头像
- **接口路径**: `/api/user/avatar`
- **请求方式**: POST
- **请求参数**:
- file: 头像文件MultipartFile
- **响应结果**: 返回上传后的头像URL字符串
### 2.2 管理员用户管理 (AdminUserController)
- **接口路径**: `/api/admin/user`
- **功能**: 管理员用户管理相关接口
#### 2.2.1 批量导入用户
- **接口路径**: `/api/admin/user/import`
- **请求方式**: POST
- **请求参数**:
```json
[
{
"username": "string",
"password": "string",
"email": "string",
"role": "string"
}
]
```
- **响应结果**:
```json
{
"code": 200,
"msg": "用户导入成功",
"data": null
}
```
#### 2.2.2 查询用户列表
- **接口路径**: `/api/admin/user/list`
- **请求方式**: GET
- **请求参数**:
- keyword: 关键字(可选,用于搜索用户名、学号、邮箱)
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"userId": "number",
"username": "string",
"email": "string",
"role": "string",
"status": "string"
}
]
}
```
#### 2.2.3 更新用户信息
- **接口路径**: `/api/admin/user/update`
- **请求方式**: PUT
- **请求参数**:
```json
{
"userId": "number",
"role": "string",
"status": "string",
"password": "string"
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "用户信息更新成功",
"data": null
}
```
#### 2.2.4 重置用户密码
- **接口路径**: `/api/admin/user/reset-password/{userId}`
- **请求方式**: PUT
- **路径参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "密码已重置为 123456",
"data": null
}
```
#### 2.2.5 封禁用户
- **接口路径**: `/api/admin/user/ban/{userId}`
- **请求方式**: PUT
- **路径参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "用户已封禁",
"data": null
}
```
#### 2.2.6 删除用户
- **接口路径**: `/api/admin/user/{userId}`
- **请求方式**: DELETE
- **路径参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "用户已删除",
"data": null
}
```
### 2.3 文件管理 (FileController)
- **接口路径**: `/api/file`
- **功能**: 文件上传下载相关接口
- **说明**: 该模块目前为空,待实现
## 3. 活动管理接口 (ams)
### 3.1 活动管理 (ActivityController)
- **接口路径**: `/api/admin/activity`
- **功能**: 活动创建、修改、查询等
- **权限要求**: 需要相应角色权限
#### 3.1.1 创建活动
- **接口路径**: `/api/admin/activity/create`
- **请求方式**: POST
- **权限要求**: USER, CLUB_ADMIN
- **请求参数**:
```json
{
"title": "string", // 活动标题
"description": "string", // 活动描述
"startTime": "string", // 开始时间
"endTime": "string", // 结束时间
"location": "string", // 活动地点
"maxParticipants": "number", // 最大参与人数
"clubId": "number" // 主办社团ID
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "活动创建成功,等待审批",
"data": null
}
```
#### 3.1.2 取消活动
- **接口路径**: `/api/admin/activity/cancel`
- **请求方式**: PUT
- **权限要求**: CLUB_ADMIN
- **请求参数**:
- actId: 活动ID
- **响应结果**:
```json
{
"code": 200,
"msg": "活动已取消",
"data": null
}
```
### 3.2 审批管理 (ApprovalController)
- **接口路径**: `/api/admin/approval`
- **功能**: 活动审批相关接口
- **权限要求**: 需要相应角色权限
#### 3.2.1 审批通过
- **接口路径**: `/api/admin/approval/approve`
- **请求方式**: POST
- **权限要求**: CLUB_ADMIN, DEPARTMENT_ADMIN, COLLEGE_ADMIN
- **请求参数**:
- apprId: 审批ID
- approverId: 审批人ID
- **响应结果**:
```json
{
"code": 200,
"msg": "审批已通过",
"data": null
}
```
#### 3.2.2 审批拒绝
- **接口路径**: `/api/admin/approval/reject`
- **请求方式**: POST
- **权限要求**: CLUB_ADMIN, DEPARTMENT_ADMIN, COLLEGE_ADMIN
- **请求参数**:
- apprId: 审批ID
- reason: 拒绝原因
- approverId: 审批人ID
- **响应结果**:
```json
{
"code": 200,
"msg": "审批已拒绝",
"data": null
}
```
### 3.3 评论管理 (CommentController)
- **接口路径**: `/api/comment`
- **功能**: 活动评论相关接口
- **权限要求**: 需要相应角色权限
#### 3.3.1 发表评论
- **接口路径**: `/api/comment/add`
- **请求方式**: POST
- **权限要求**: USER
- **请求参数**:
- userId: 用户ID
- actId: 活动ID
- content: 评论内容
- parentCommentId: 父评论ID可选用于回复
- **响应结果**:
```json
{
"code": 200,
"msg": "评论成功",
"data": null
}
```
#### 3.3.2 删除评论
- **接口路径**: `/api/comment/delete`
- **请求方式**: DELETE
- **权限要求**: USER, ADMIN
- **请求参数**:
- commentId: 评论ID
- userId: 用户ID
- isAdmin: 是否为管理员
- **响应结果**:
```json
{
"code": 200,
"msg": "评论已删除",
"data": null
}
```
#### 3.3.3 获取活动评论列表
- **接口路径**: `/api/comment/list`
- **请求方式**: GET
- **请求参数**:
- actId: 活动ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"commentId": "number",
"userId": "number",
"content": "string",
"createTime": "string"
}
]
}
```
#### 3.3.4 获取评论回复
- **接口路径**: `/api/comment/replies`
- **请求方式**: GET
- **请求参数**:
- parentCommentId: 父评论ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"commentId": "number",
"userId": "number",
"content": "string",
"createTime": "string"
}
]
}
```
### 3.4 反应管理 (ReactionController)
- **接口路径**: `/api/reaction`
- **功能**: 活动反应(点赞等)相关接口
- **权限要求**: 需要相应角色权限
#### 3.4.1 添加反应
- **接口路径**: `/api/reaction/add`
- **请求方式**: POST
- **权限要求**: USER
- **请求参数**:
- actId: 活动ID
- userId: 用户ID
- reactionType: 反应类型LIKE/DISLIKE
- **响应结果**:
```json
{
"code": 200,
"msg": "操作成功",
"data": null
}
```
#### 3.4.2 取消反应
- **接口路径**: `/api/reaction/remove`
- **请求方式**: DELETE
- **权限要求**: USER
- **请求参数**:
- actId: 活动ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "已取消点赞/点踩",
"data": null
}
```
#### 3.4.3 获取反应统计
- **接口路径**: `/api/reaction/stats`
- **请求方式**: GET
- **请求参数**:
- actId: 活动ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": {
"likes": "number",
"dislikes": "number"
}
}
```
#### 3.4.4 获取活动反应列表
- **接口路径**: `/api/reaction/list`
- **请求方式**: GET
- **权限要求**: ADMIN
- **请求参数**:
- actId: 活动ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"reactionId": "number",
"userId": "number",
"reactionType": "string",
"createTime": "string"
}
]
}
```
### 3.5 报名管理 (RegistrationController)
- **接口路径**: `/api/registration`
- **功能**: 活动报名相关接口
- **权限要求**: 需要相应角色权限
#### 3.5.1 报名活动
- **接口路径**: `/api/registration/register`
- **请求方式**: POST
- **权限要求**: USER
- **请求参数**:
- actId: 活动ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "报名成功",
"data": null
}
```
#### 3.5.2 取消报名
- **接口路径**: `/api/registration/cancel`
- **请求方式**: PUT
- **权限要求**: USER
- **请求参数**:
- actId: 活动ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "报名已取消",
"data": null
}
```
#### 3.5.3 活动签到
- **接口路径**: `/api/registration/attend`
- **请求方式**: PUT
- **权限要求**: USER
- **请求参数**:
- actId: 活动ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "签到成功",
"data": null
}
```
#### 3.5.4 获取我的报名列表
- **接口路径**: `/api/registration/my-registrations`
- **请求方式**: GET
- **权限要求**: USER
- **请求参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"registrationId": "number",
"actId": "number",
"userId": "number",
"status": "string",
"createTime": "string"
}
]
}
```
#### 3.5.5 获取活动报名列表
- **接口路径**: `/api/registration/list`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN
- **请求参数**:
- actId: 活动ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"registrationId": "number",
"actId": "number",
"userId": "number",
"status": "string",
"createTime": "string"
}
]
}
```
## 4. 社团管理接口 (sms)
### 4.1 社团管理 (ClubController)
- **接口路径**: `/api/admin/club`
- **功能**: 社团基本信息管理
- **权限要求**: 需要相应角色权限
#### 4.1.1 添加社团
- **接口路径**: `/api/admin/club/add`
- **请求方式**: POST
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN
- **请求参数**:
```json
{
"name": "string", // 社团名称
"description": "string", // 社团描述
"collegeId": "number", // 所属学院ID
"type": "string" // 社团类型
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "社团添加成功",
"data": null
}
```
#### 4.1.2 更新社团信息
- **接口路径**: `/api/admin/club/update`
- **请求方式**: PUT
- **权限要求**: ADMIN, CLUB_ADMIN
- **请求参数**:
```json
{
"clubId": "number", // 社团ID
"name": "string", // 社团名称
"description": "string", // 社团描述
"type": "string" // 社团类型
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "社团信息更新成功",
"data": null
}
```
#### 4.1.3 删除社团
- **接口路径**: `/api/admin/club/delete/{clubId}`
- **请求方式**: DELETE
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN
- **路径参数**:
- clubId: 社团ID
- **响应结果**:
```json
{
"code": 200,
"msg": "社团删除成功",
"data": null
}
```
#### 4.1.4 获取社团详情
- **接口路径**: `/api/admin/club/{clubId}`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN, CLUB_ADMIN
- **路径参数**:
- clubId: 社团ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": {
"clubId": "number",
"name": "string",
"description": "string",
"collegeId": "number",
"type": "string"
}
}
```
#### 4.1.5 查询社团列表
- **接口路径**: `/api/admin/club/list`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN, CLUB_ADMIN
- **请求参数**:
- keyword: 关键字(可选,用于搜索)
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"clubId": "number",
"name": "string",
"description": "string",
"collegeId": "number",
"type": "string"
}
]
}
```
### 4.2 社团成员管理 (ClubUserController)
- **接口路径**: `/api/admin/club/user`
- **功能**: 社团成员管理相关接口
- **权限要求**: 需要相应角色权限
#### 4.2.1 添加社团成员
- **接口路径**: `/api/admin/club/user/add`
- **请求方式**: POST
- **权限要求**: CLUB_ADMIN
- **请求参数**:
- clubId: 社团ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "成员已加入社团",
"data": null
}
```
#### 4.2.2 移除社团成员
- **接口路径**: `/api/admin/club/user/remove`
- **请求方式**: DELETE
- **权限要求**: CLUB_ADMIN, COLLEGE_ADMIN
- **请求参数**:
- clubId: 社团ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "成员已移除",
"data": null
}
```
#### 4.2.3 查询社团成员列表
- **接口路径**: `/api/admin/club/user/list`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN
- **请求参数**:
- clubId: 社团ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"userId": "number",
"username": "string",
"role": "string"
}
]
}
```
#### 4.2.4 查看我的社团成员
- **接口路径**: `/api/admin/club/user/my-club-members`
- **请求方式**: GET
- **权限要求**: CLUB_ADMIN
- **请求参数**:
- clubId: 社团ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"userId": "number",
"username": "string",
"role": "string"
}
]
}
```
### 4.3 学院管理 (CollegeController)
- **接口路径**: `/api/admin/college`
- **功能**: 学院信息管理相关接口
- **权限要求**: 需要相应角色权限
#### 4.3.1 添加学院
- **接口路径**: `/api/admin/college/add`
- **请求方式**: POST
- **权限要求**: ADMIN, COLLEGE_ADMIN
- **请求参数**:
```json
{
"name": "string", // 学院名称
"description": "string", // 学院描述
"code": "string" // 学院代码
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "学院添加成功",
"data": null
}
```
#### 4.3.2 更新学院信息
- **接口路径**: `/api/admin/college/update`
- **请求方式**: PUT
- **权限要求**: ADMIN, COLLEGE_ADMIN
- **请求参数**:
```json
{
"collegeId": "number", // 学院ID
"name": "string", // 学院名称
"description": "string", // 学院描述
"code": "string" // 学院代码
}
```
- **响应结果**:
```json
{
"code": 200,
"msg": "学院更新成功",
"data": null
}
```
#### 4.3.3 删除学院
- **接口路径**: `/api/admin/college/delete/{collegeId}`
- **请求方式**: DELETE
- **权限要求**: ADMIN, COLLEGE_ADMIN
- **路径参数**:
- collegeId: 学院ID
- **响应结果**:
```json
{
"code": 200,
"msg": "学院删除成功",
"data": null
}
```
#### 4.3.4 获取学院详情
- **接口路径**: `/api/admin/college/{collegeId}`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN
- **路径参数**:
- collegeId: 学院ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": {
"collegeId": "number",
"name": "string",
"description": "string",
"code": "string"
}
}
```
#### 4.3.5 获取我的学院信息
- **接口路径**: `/api/admin/college/my-college`
- **请求方式**: GET
- **权限要求**: DEPARTMENT_ADMIN
- **请求参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": {
"collegeId": "number",
"name": "string",
"description": "string",
"code": "string"
}
}
```
#### 4.3.6 查询学院列表
- **接口路径**: `/api/admin/college/list`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN
- **请求参数**:
- keyword: 关键字(可选,用于搜索)
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": [
{
"collegeId": "number",
"name": "string",
"description": "string",
"code": "string"
}
]
}
```
#### 4.3.7 指派学院负责人
- **接口路径**: `/api/admin/college/assign`
- **请求方式**: POST
- **权限要求**: ADMIN, COLLEGE_ADMIN
- **请求参数**:
- collegeId: 学院ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "负责人指派成功",
"data": null
}
```
#### 4.3.8 移除学院负责人
- **接口路径**: `/api/admin/college/remove`
- **请求方式**: DELETE
- **权限要求**: ADMIN, COLLEGE_ADMIN
- **请求参数**:
- collegeId: 学院ID
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "负责人移除成功",
"data": null
}
```
#### 4.3.9 获取学院负责人
- **接口路径**: `/api/admin/college/getleader/{collegeId}`
- **请求方式**: GET
- **权限要求**: ADMIN, COLLEGE_ADMIN, DEPARTMENT_ADMIN
- **路径参数**:
- collegeId: 学院ID
- **请求参数**:
- userId: 用户ID
- **响应结果**:
```json
{
"code": 200,
"msg": "success",
"data": {
"userId": "number",
"username": "string",
"role": "string"
}
}
```
## 通用说明
1. **认证方式**
- 除登录接口外,所有接口都需要在请求头中携带 JWT Token
- Token 格式:`Authorization: Bearer <token>`
2. **响应格式**
- 所有接口统一使用 `AjaxResult` 封装响应
- 成功响应示例:
```json
{
"code": 200,
"msg": "操作成功",
"data": {}
}
```
- 失败响应示例:
```json
{
"code": 500,
"msg": "操作失败",
"data": null
}
```
3. **请求方式**
- 查询类接口使用 GET
- 创建类接口使用 POST
- 更新类接口使用 PUT
- 删除类接口使用 DELETE
4. **数据格式**
- 请求和响应均使用 JSON 格式
- 日期时间格式统一使用 ISO 8601 标准