# 系统管理API
**本文档引用的文件**
- [viewsh-module-system-api/pom.xml](file://viewsh-module-system/viewsh-module-system-api/pom.xml)
- [AdminUserApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/user/AdminUserApi.java)
- [PermissionApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/permission/PermissionApi.java)
- [RoleApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/permission/RoleApi.java)
- [DeptApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dept/DeptApi.java)
- [PostApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dept/PostApi.java)
- [DictDataApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dict/DictDataApi.java)
- [LoginLogApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/logger/LoginLogApi.java)
- [OperateLogApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/logger/OperateLogApi.java)
- [MailSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/mail/MailSendApi.java)
- [NotifyMessageSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/notify/NotifyMessageSendApi.java)
- [SmsCodeApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/sms/SmsCodeApi.java)
- [SmsSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/sms/SmsSendApi.java)
- [ApiConstants.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/enums/ApiConstants.java)
## 目录
1. [简介](#简介)
2. [项目结构](#项目结构)
3. [核心组件](#核心组件)
4. [架构概览](#架构概览)
5. [详细组件分析](#详细组件分析)
6. [依赖关系分析](#依赖关系分析)
7. [性能考虑](#性能考虑)
8. [故障排除指南](#故障排除指南)
9. [结论](#结论)
10. [附录](#附录)
## 简介
本文件为系统管理模块的全面API接口文档,覆盖用户管理、部门管理、权限管理、字典管理、日志管理等核心功能。文档基于实际代码实现,提供RESTful风格的接口定义、请求参数、响应格式以及典型调用流程,帮助开发者快速集成和使用系统管理能力。
## 项目结构
系统管理模块采用标准的微服务分层架构,API层位于viewsh-module-system/viewsh-module-system-api中,通过OpenFeign对外暴露RPC服务,统一前缀为/system,版本号为1.0.0。模块间通过FeignClient进行声明式调用,接口文档由springdoc-openapi提供支持。
```mermaid
graph TB
subgraph "系统管理API模块"
A[AdminUserApi
管理员用户RPC接口]
B[PermissionApi
权限RPC接口]
C[RoleApi
角色RPC接口]
D[DeptApi
部门RPC接口]
E[PostApi
岗位RPC接口]
F[DictDataApi
字典数据RPC接口]
G[LoginLogApi
登录日志RPC接口]
H[OperateLogApi
操作日志RPC接口]
I[MailSendApi
邮件发送RPC接口]
J[NotifyMessageSendApi
站内信发送RPC接口]
K[SmsCodeApi
短信验证码RPC接口]
L[SmsSendApi
短信发送RPC接口]
end
subgraph "系统常量"
M[ApiConstants
服务名与前缀定义]
end
A --> M
B --> M
C --> M
D --> M
E --> M
F --> M
G --> M
H --> M
I --> M
J --> M
K --> M
L --> M
```
**图表来源**
- [viewsh-module-system-api/pom.xml](file://viewsh-module-system/viewsh-module-system-api/pom.xml#L1-L49)
- [ApiConstants.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/enums/ApiConstants.java#L1-L24)
**章节来源**
- [viewsh-module-system-api/pom.xml](file://viewsh-module-system/viewsh-module-system-api/pom.xml#L1-L49)
- [ApiConstants.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/enums/ApiConstants.java#L1-L24)
## 核心组件
系统管理API模块包含以下核心组件:
### 服务常量定义
- 服务名称:system-server
- API前缀:/infra/api/system
- 版本号:1.0.0
- 服务端口:默认8080
### 统一返回格式
所有接口均采用CommonResult包装响应,包含状态码、消息和数据体,确保前后端交互的一致性。
### 参数校验支持
- 使用Jakarta Validation进行参数校验
- 支持嵌套对象和集合参数的校验
- 自动参数绑定和错误处理
**章节来源**
- [ApiConstants.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/enums/ApiConstants.java#L1-L24)
## 架构概览
系统管理API采用微服务架构,通过FeignClient实现模块间的RPC调用。所有接口遵循RESTful设计原则,使用HTTP方法表达操作语义,路径采用名词复数形式。
```mermaid
sequenceDiagram
participant Client as 客户端应用
participant API as 系统管理API
participant Service as 系统服务
participant DB as 数据库
Client->>API : HTTP请求
API->>API : 参数校验
API->>Service : Feign RPC调用
Service->>DB : 数据库操作
DB-->>Service : 查询结果
Service-->>API : 业务结果
API-->>Client : CommonResult包装响应
```
**图表来源**
- [viewsh-module-system-api/pom.xml](file://viewsh-module-system/viewsh-module-system-api/pom.xml#L25-L44)
## 详细组件分析
### 用户管理接口
用户管理提供管理员用户的查询、校验和关联查询功能。
#### 接口定义
- 获取单个用户:GET /infra/api/system/user/get?id={userId}
- 批量获取用户:GET /infra/api/system/user/list?ids={userIds}
- 获取用户下属:GET /infra/api/system/user/list-by-subordinate?id={userId}
- 按部门获取用户:GET /infra/api/system/user/list-by-dept-id?deptIds={deptIds}
- 按岗位获取用户:GET /infra/api/system/user/list-by-post-id?postIds={postIds}
- 校验用户有效性:GET /infra/api/system/user/valid?ids={userIds}
#### 关键特性
- 支持批量查询优化,减少网络往返
- 提供用户Map转换工具方法
- 内置用户有效性校验逻辑
- 支持层级查询(下属用户)
```mermaid
classDiagram
class AdminUserApi {
+getUser(id) CommonResult~AdminUserRespDTO~
+getUserList(ids) CommonResult~AdminUserRespDTO[]~
+getUserListBySubordinate(id) CommonResult~AdminUserRespDTO[]~
+getUserListByDeptIds(deptIds) CommonResult~AdminUserRespDTO[]~
+getUserListByPostIds(postIds) CommonResult~AdminUserRespDTO[]~
+validateUserList(ids) CommonResult~Boolean~
+getUserMap(ids) Map~Long,AdminUserRespDTO~
}
class AdminUserRespDTO {
+Long id
+String nickname
+String status
+Date createTime
}
AdminUserApi --> AdminUserRespDTO : 返回
```
**图表来源**
- [AdminUserApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/user/AdminUserApi.java#L28-L96)
**章节来源**
- [AdminUserApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/user/AdminUserApi.java#L1-L97)
### 部门管理接口
部门管理提供部门信息的查询、校验和层级查询功能。
#### 接口定义
- 获取单个部门:GET /infra/api/system/dept/get?id={deptId}
- 批量获取部门:GET /infra/api/system/dept/list?ids={deptIds}
- 校验部门有效性:GET /infra/api/system/dept/valid?ids={deptIds}
- 获取子部门:GET /infra/api/system/dept/list-child?id={deptId}
#### 关键特性
- 支持部门层级关系查询
- 提供部门Map转换工具方法
- 内置部门有效性校验
- 支持递归子部门查询
```mermaid
classDiagram
class DeptApi {
+getDept(id) CommonResult~DeptRespDTO~
+getDeptList(ids) CommonResult~DeptRespDTO[]~
+validateDeptList(ids) CommonResult~Boolean~
+getChildDeptList(id) CommonResult~DeptRespDTO[]~
+getDeptMap(ids) Map~Long,DeptRespDTO~
}
class DeptRespDTO {
+Long id
+String name
+Integer sort
+Long parentId
+String status
}
DeptApi --> DeptRespDTO : 返回
```
**图表来源**
- [DeptApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dept/DeptApi.java#L21-L56)
**章节来源**
- [DeptApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dept/DeptApi.java#L1-L57)
### 岗位管理接口
岗位管理提供岗位信息的查询和校验功能。
#### 接口定义
- 校验岗位有效性:GET /infra/api/system/post/valid?ids={postIds}
- 获取岗位列表:GET /infra/api/system/post/list?ids={postIds}
#### 关键特性
- 支持批量岗位校验
- 提供岗位Map转换工具方法
- 空集合安全处理
```mermaid
classDiagram
class PostApi {
+validPostList(ids) CommonResult~Boolean~
+getPostList(ids) CommonResult~PostRespDTO[]~
+getPostMap(ids) Map~Long,PostRespDTO~
}
class PostRespDTO {
+Long id
+String name
+String code
+Integer sort
+String status
}
PostApi --> PostRespDTO : 返回
```
**图表来源**
- [PostApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dept/PostApi.java#L22-L45)
**章节来源**
- [PostApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dept/PostApi.java#L1-L46)
### 权限管理接口
权限管理提供角色权限查询和用户角色关联查询功能。
#### 接口定义
- 获取角色用户ID列表:GET /infra/api/system/permission/user-role-id-list-by-role-id?roleIds={roleIds}
- 校验角色有效性:GET /infra/api/system/role/valid?ids={roleIds}
```mermaid
classDiagram
class PermissionApi {
+getUserRoleIdListByRoleIds(roleIds) CommonResult~Set~Long~~
}
class RoleApi {
+validRoleList(ids) CommonResult~Boolean~
}
PermissionApi --> RoleApi : 依赖
```
**图表来源**
- [PermissionApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/permission/PermissionApi.java#L18-L27)
- [RoleApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/permission/RoleApi.java#L16-L25)
**章节来源**
- [PermissionApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/permission/PermissionApi.java#L1-L27)
- [RoleApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/permission/RoleApi.java#L1-L25)
### 字典管理接口
字典管理提供字典数据的校验功能。
#### 接口定义
- 校验字典数据有效性:GET /infra/api/system/dict-data/valid?dictType={dictType}&values={values}
#### 关键特性
- 支持按字典类型和值集合的批量校验
- 返回布尔结果表示校验通过性
**章节来源**
- [DictDataApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/dict/DictDataApi.java#L1-L32)
### 日志管理接口
日志管理提供登录日志创建和操作日志分页查询功能。
#### 登录日志接口
- 创建登录日志:POST /infra/api/system/login-log/create
- 请求体:LoginLogCreateReqDTO
- 响应:CommonResult
#### 操作日志接口
- 获取操作日志分页:GET /infra/api/system/operate-log/page
- 查询参数:OperateLogPageReqDTO
- 响应:CommonResult>
```mermaid
sequenceDiagram
participant Client as 客户端
participant LoginLog as 登录日志API
participant OperateLog as 操作日志API
participant Service as 日志服务
Client->>LoginLog : POST /login-log/create
LoginLog->>Service : 创建登录日志
Service-->>LoginLog : 返回结果
LoginLog-->>Client : CommonResult
Client->>OperateLog : GET /operate-log/page
OperateLog->>Service : 分页查询操作日志
Service-->>OperateLog : 返回分页结果
OperateLog-->>Client : CommonResult
```
**图表来源**
- [LoginLogApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/logger/LoginLogApi.java#L20-L24)
- [OperateLogApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/logger/OperateLogApi.java#L21-L25)
**章节来源**
- [LoginLogApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/logger/LoginLogApi.java#L1-L25)
- [OperateLogApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/logger/OperateLogApi.java#L1-L26)
### 通知公告接口
通知公告提供站内信的发送功能。
#### 接口定义
- 发送站内信给管理员:POST /infra/api/system/notify/send/send-single-admin
- 发送站内信给会员:POST /infra/api/system/notify/send/send-single-member
```mermaid
flowchart TD
Start([开始发送站内信]) --> ChooseUser{"选择用户类型"}
ChooseUser --> |管理员| SendAdmin["发送给管理员"]
ChooseUser --> |会员| SendMember["发送给会员"]
SendAdmin --> Validate["参数校验"]
SendMember --> Validate
Validate --> CallAPI["调用通知发送API"]
CallAPI --> Return["返回消息ID"]
Return --> End([结束])
```
**图表来源**
- [NotifyMessageSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/notify/NotifyMessageSendApi.java#L20-L28)
**章节来源**
- [NotifyMessageSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/notify/NotifyMessageSendApi.java#L1-L29)
### 邮件短信发送接口
邮件短信发送提供邮件和短信的发送功能。
#### 邮件发送接口
- 发送邮件给管理员:POST /infra/api/system/mail/send/send-single-admin
- 发送邮件给会员:POST /infra/api/system/mail/send/send-single-member
#### 短信发送接口
- 发送短信给管理员:POST /infra/api/system/sms/send/send-single-admin
- 发送短信给会员:POST /infra/api/system/sms/send/send-single-member
#### 短信验证码接口
- 发送验证码:POST /infra/api/system/oauth2/sms/code/send
- 使用验证码:PUT /infra/api/system/oauth2/sms/code/use
- 校验验证码:GET /infra/api/system/oauth2/sms/code/validate
```mermaid
classDiagram
class MailSendApi {
+sendSingleMailToAdmin(reqDTO) CommonResult~Long~
+sendSingleMailToMember(reqDTO) CommonResult~Long~
}
class SmsSendApi {
+sendSingleSmsToAdmin(reqDTO) CommonResult~Long~
+sendSingleSmsToMember(reqDTO) CommonResult~Long~
}
class SmsCodeApi {
+sendSmsCode(reqDTO) CommonResult~Boolean~
+useSmsCode(reqDTO) CommonResult~Boolean~
+validateSmsCode(reqDTO) CommonResult~Boolean~
}
MailSendApi --> SmsSendApi : 服务同类
SmsSendApi --> SmsCodeApi : 功能互补
```
**图表来源**
- [MailSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/mail/MailSendApi.java#L18-L28)
- [SmsSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/sms/SmsSendApi.java#L16-L28)
- [SmsCodeApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/sms/SmsCodeApi.java#L22-L36)
**章节来源**
- [MailSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/mail/MailSendApi.java#L1-L29)
- [SmsSendApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/sms/SmsSendApi.java#L1-L29)
- [SmsCodeApi.java](file://viewsh-module-system/viewsh-module-system-api/src/main/java/com/viewsh/module/system/api/sms/SmsCodeApi.java#L1-L37)
## 依赖关系分析
系统管理API模块依赖于多个基础设施组件,形成完整的微服务生态。
```mermaid
graph TB
subgraph "外部依赖"
A[SpringDoc OpenAPI
接口文档生成]
B[Jakarta Validation
参数校验]
C[OpenFeign
声明式HTTP客户端]
D[Hutool
Java工具类库]
end
subgraph "内部模块"
E[CommonResult
统一响应封装]
F[AutoTrans
自动翻译]
G[RpcConstants
RPC常量]
end
subgraph "系统管理API"
H[用户管理]
I[部门管理]
J[权限管理]
K[日志管理]
L[通知服务]
end
A --> H
B --> H
C --> H
D --> H
E --> H
F --> H
G --> H
```
**图表来源**
- [viewsh-module-system-api/pom.xml](file://viewsh-module-system/viewsh-module-system-api/pom.xml#L25-L44)
**章节来源**
- [viewsh-module-system-api/pom.xml](file://viewsh-module-system/viewsh-module-system-api/pom.xml#L1-L49)
## 性能考虑
- 批量查询优化:用户、部门、岗位接口支持批量查询,减少网络开销
- 缓存策略:建议在上层服务实现适当的缓存机制
- 参数校验:前置参数校验减少无效请求
- 连接池管理:合理配置数据库连接池大小
## 故障排除指南
- 服务不可用:检查system-server服务状态和网络连通性
- 参数校验失败:确认请求参数格式和必填字段
- 权限不足:验证调用方权限和角色配置
- 数据不一致:检查缓存同步和事务一致性
## 结论
系统管理API模块提供了完整的系统管理能力,包括用户、部门、权限、字典、日志等核心功能。通过标准化的接口设计和统一的响应格式,为上层应用提供了稳定可靠的服务支撑。
## 附录
### API调用示例
以下为典型接口调用的示例格式:
#### 用户查询示例
```
GET /infra/api/system/user/list?ids=1,2,3
Response: CommonResult>
```
#### 部门校验示例
```
GET /infra/api/system/dept/valid?ids=101,102
Response: CommonResult
```
#### 日志查询示例
```
GET /infra/api/system/operate-log/page?page=1&size=10&businessType=1
Response: CommonResult>
```
### 错误码规范
- 200:请求成功
- 400:参数校验失败
- 401:未授权
- 403:权限不足
- 500:服务器内部错误