# rdms-system-api
**概述**
本模块定义了 System(系统)模块对其他模块开放的公共 RPC API 面。它是一个纯 API 的 jar 包:包含 Feign 客户端接口、请求/响应 DTO,以及枚举/常量。不包含 controller 或 service 的实现。
**这里包含什么**
- 位于 `com.njcn.rdms.module.system.api.*` 下的 Feign 客户端接口
- 位于 `com.njcn.rdms.module.system.api.*.dto` 下的 DTO
- 位于 `com.njcn.rdms.module.system.enums.*` 下的系统枚举和常量
**API 分组**
- `config`:`ConfigApi`,用于根据 key 读取配置值
- `dept`:`DeptApi` 和 `PostApi`,用于部门与岗位数据及校验
- `dict`:`DictDataApi`,用于字典数据校验(继承 `DictDataCommonApi`)
- `file`:`FileApi`,用于文件创建与预签名 URL
- `logger`:`LoginLogApi` 和 `OperateLogApi`(继承 `OperateLogCommonApi`)
- `notify`:`NotifyMessageSendApi`,用于站内消息发送
- `permission`:`PermissionApi`(继承 `PermissionCommonApi`)以及 `RoleApi`
- `user`:`AdminUserApi`,用于管理员用户查询与校验
- `websocket`:`WebSocketSenderApi`,用于推送 WebSocket 消息
**关键常量**
- `ApiConstants.NAME = "system-server"`(必须与 system 服务的 `spring.application.name` 保持一致)
- `ApiConstants.PREFIX = "/rpc-api/system"`
- `ApiConstants.VERSION = "1.0.0"`
**用法**
1. 在调用方模块中添加依赖。
```xml
com.njcn
rdms-system-api
```
2. 在调用方服务中启用 Feign 客户端扫描。
```java
@EnableFeignClients(basePackages = "com.njcn.rdms.module.system.api")
```
3. 注入并调用 API 接口。
```java
@Resource
private AdminUserApi adminUserApi;
public AdminUserRespDTO loadUser(Long id) {
return adminUserApi.getUser(id).getCheckedData();
}
```
**备注**
- 所有方法都返回 `CommonResult`。按需使用 `getCheckedData()` 或 `checkError()`。
- 有些 API 提供了默认的辅助方法(例如 `FileApi.createFile(...)`、`WebSocketSenderApi.send(...)`)。
- `DictDataApi`、`OperateLogApi`、`PermissionApi` 继承了来自 `rdms-framework` 的通用 RPC 接口。