Appearance
Java System 平台管理
路径:packages/server-java/src/main/java/com/xichen/server/system/
API 前缀:/api/v1/system/*
契约:contracts/openapi/rbac-api.yaml + contracts/openapi/platform-api.yaml
Controller 一览
| Controller | 前缀 | 主要能力 |
|---|---|---|
| SystemUserController | /users | 用户 CRUD、角色/岗位分配、重置密码、Excel 导入导出 |
| SystemRoleController | /roles | 角色 CRUD、分配权限、分配部门(数据范围) |
| SystemMenuController | /menus | 菜单树 CRUD |
| SystemPermissionController | /permissions | 权限码 CRUD(分页 + keyword 搜索) |
| SystemDeptController | /depts | 部门树 CRUD |
| SystemPostController | /posts | 岗位 CRUD |
| SystemDictTypeController | /dict/types | 字典类型 |
| SystemDictDataController | /dict/data | 字典数据(含 GET /type/{dictType} 按类型拉取) |
| SystemConfigController | /configs | 系统参数(含 GET /key/{configKey}) |
| SystemNoticeController | /notices | 通知公告 |
| SystemFileController | /files | 文件上传、列表、下载、删除 |
| SystemDatabaseController | /database | POST /init 数据库初始化 |
用户模块要点
| 端点 | 权限 | 说明 |
|---|---|---|
GET /users | system:user:list | 分页列表,支持 keyword;受 数据权限 过滤 |
GET /users/export | system:user:export | EasyExcel 导出 |
POST /users/import | system:user:import | Excel 导入 |
PUT /users/{id}/roles | system:user:update | 分配角色 |
PUT /users/{id}/posts | system:user:update | 分配岗位 |
PUT /users/{id}/reset-password | system:user:resetPwd | 重置密码 |
角色模块要点
| 端点 | 说明 |
|---|---|
GET /roles/{id} | 返回 RoleDetailDto,含 deptIds、permissionIds |
PUT /roles/{id}/permissions | 覆盖绑定权限 ID 列表 |
PUT /roles/{id}/depts | 自定义数据范围时绑定部门 |
权限与菜单
- 权限(
sys_permission):独立表,角色通过sys_role_permission绑定 - 菜单(
sys_menu):permission字段为字符串,与权限码对齐,用于前端路由与入口控制 - 种子数据:操作日志 / 登录日志 / 定时任务菜单挂在 系统管理 下,路由仍为
/monitor/*
文件模块
- 上传:
POST /files/upload(multipart) - 下载:
GET /files/download/**— Security 白名单,无需登录 - 存储路径:
app.upload.path(默认./uploads)
字典与参数(分页配置示例)
| 字典 type | 用途 |
|---|---|
sys_page_size | 分页可选条数:10 / 30 / 50 / 100 |
| 参数 key | 用途 |
|---|---|
sys.page.defaultSize | 列表默认每页条数 |
种子见 DatabaseInitService.seedDictData() / seedConfigs();已有库可执行 contracts/sql/migrations/006_page_settings.sql。
数据库初始化
DatabaseInitService(system/service/DatabaseInitService.java):
- 执行
classpath:db/drop.sql - 执行
classpath:db/schema.sql - 写入种子:部门、admin 用户/角色、全部 permission、菜单、字典、参数、演示定时任务
由 SystemDatabaseController 暴露为 POST /api/v1/system/database/init。
操作审计
带 @Log 注解的写操作会由 monitor/aspect/OperLogAspect 写入 sys_oper_log(见 Monitor)。
关键 Service
| Service | 职责 |
|---|---|
| SystemUserService | 用户 CRUD、导入导出、数据权限 |
| SystemRoleService | 角色、权限/部门分配 |
| SystemMenuService | 菜单树 |
| SystemPermissionService | 权限码分页 |
| DataScopeService | 数据范围 SQL 过滤 |
| DatabaseInitService | drop + schema + seed |