基本功能完成,下一步开始美化UI
This commit is contained in:
@@ -38,6 +38,29 @@ components:
|
||||
password:
|
||||
type: string
|
||||
description: "密码 (敏感字段;前端掩码显示)"
|
||||
groupIds:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
description: "所属用户组ID列表"
|
||||
UserGroup:
|
||||
type: object
|
||||
required: ["id", "name", "createdAt"]
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
isSystem:
|
||||
type: boolean
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
memberCount:
|
||||
type: integer
|
||||
description: "成员数量"
|
||||
QuestionCategory:
|
||||
type: object
|
||||
required: ["id", "name", "createdAt"]
|
||||
@@ -119,6 +142,9 @@ components:
|
||||
endAt:
|
||||
type: string
|
||||
format: date-time
|
||||
selectionConfig:
|
||||
type: string
|
||||
description: "JSON string storing original selection of userIds and groupIds"
|
||||
Pagination:
|
||||
type: object
|
||||
required: ["page", "limit", "total", "pages"]
|
||||
@@ -353,9 +379,39 @@ paths:
|
||||
in: query
|
||||
schema:
|
||||
type: integer
|
||||
- name: "keyword"
|
||||
in: query
|
||||
schema:
|
||||
type: string
|
||||
description: "搜索关键词(姓名/手机)"
|
||||
responses:
|
||||
"200":
|
||||
description: "User list"
|
||||
post:
|
||||
summary: "创建用户 (管理员)"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: ["name", "phone", "password"]
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
password:
|
||||
type: string
|
||||
groupIds:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "User created"
|
||||
delete:
|
||||
summary: "删除用户 (管理员)"
|
||||
security:
|
||||
@@ -374,6 +430,120 @@ paths:
|
||||
"200":
|
||||
description: "Deleted"
|
||||
|
||||
/api/admin/users/{id}:
|
||||
put:
|
||||
summary: "更新用户 (管理员)"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
phone:
|
||||
type: string
|
||||
password:
|
||||
type: string
|
||||
groupIds:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "User updated"
|
||||
|
||||
/api/admin/user-groups:
|
||||
get:
|
||||
summary: "获取用户组列表"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
responses:
|
||||
"200":
|
||||
description: "Group list"
|
||||
post:
|
||||
summary: "创建用户组"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: ["name"]
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Group created"
|
||||
|
||||
/api/admin/user-groups/{id}:
|
||||
put:
|
||||
summary: "更新用户组"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Group updated"
|
||||
delete:
|
||||
summary: "删除用户组"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Group deleted"
|
||||
|
||||
/api/admin/user-groups/{id}/members:
|
||||
get:
|
||||
summary: "获取用户组成员"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Group members"
|
||||
|
||||
/api/admin/users/export:
|
||||
get:
|
||||
summary: "导出用户 (管理员)"
|
||||
@@ -557,11 +727,12 @@ paths:
|
||||
- AdminBearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
description: "Create task with mixed selection of users and groups (system handles de-duplication)"
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: ["name", "subjectId", "startAt", "endAt", "userIds"]
|
||||
required: ["name", "subjectId", "startAt", "endAt"]
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
@@ -577,6 +748,10 @@ paths:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
groupIds:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Created"
|
||||
@@ -594,10 +769,30 @@ paths:
|
||||
type: string
|
||||
requestBody:
|
||||
required: true
|
||||
description: "Update task with mixed selection (system handles de-duplication)"
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
subjectId:
|
||||
type: string
|
||||
startAt:
|
||||
type: string
|
||||
format: date-time
|
||||
endAt:
|
||||
type: string
|
||||
format: date-time
|
||||
userIds:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
groupIds:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Updated"
|
||||
@@ -646,3 +841,144 @@ paths:
|
||||
responses:
|
||||
"200":
|
||||
description: "Config updated"
|
||||
|
||||
/api/admin/configs:
|
||||
get:
|
||||
summary: "获取所有系统配置"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
responses:
|
||||
"200":
|
||||
description: "All configs"
|
||||
|
||||
/api/admin/password:
|
||||
put:
|
||||
summary: "修改管理员密码"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: ["oldPassword", "newPassword"]
|
||||
properties:
|
||||
oldPassword:
|
||||
type: string
|
||||
newPassword:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Password updated"
|
||||
|
||||
/api/admin/export/{type}:
|
||||
get:
|
||||
summary: "通用数据导出"
|
||||
description: "type: users, questions, records, answers"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "type"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
enum: ["users", "questions", "records", "answers"]
|
||||
responses:
|
||||
"200":
|
||||
description: "JSON export data"
|
||||
|
||||
/api/admin/restore:
|
||||
post:
|
||||
summary: "数据恢复"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
users:
|
||||
type: array
|
||||
questions:
|
||||
type: array
|
||||
records:
|
||||
type: array
|
||||
answers:
|
||||
type: array
|
||||
responses:
|
||||
"200":
|
||||
description: "Data restored"
|
||||
|
||||
/api/exam-tasks/user/{userId}:
|
||||
get:
|
||||
summary: "获取指定用户的考试任务"
|
||||
parameters:
|
||||
- name: "userId"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "User tasks"
|
||||
|
||||
/api/admin/tasks/{id}/users:
|
||||
get:
|
||||
summary: "获取任务分派的用户"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "id"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Task users"
|
||||
|
||||
/api/admin/active-tasks:
|
||||
get:
|
||||
summary: "获取当前活跃任务统计"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
responses:
|
||||
"200":
|
||||
description: "Active tasks stats"
|
||||
|
||||
/api/users/validate:
|
||||
post:
|
||||
summary: "验证用户信息(用于导入校验)"
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: ["phone"]
|
||||
properties:
|
||||
phone:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Validation result"
|
||||
|
||||
/api/users/name/{name}:
|
||||
get:
|
||||
summary: "根据姓名查找用户"
|
||||
security:
|
||||
- AdminBearerAuth: []
|
||||
parameters:
|
||||
- name: "name"
|
||||
in: "path"
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
description: "Users found"
|
||||
|
||||
Reference in New Issue
Block a user