Appearance
micro-java System 平台与 RBAC
模块:packages/micro-java/system-service
端口:8082
API 前缀:/api/v1/system/*(经 Gateway 转发)
与 server-java System API 对齐(从单体同步 Controller/Service,并保留 MQ / Seata 扩展)。
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 | 字典数据 |
| SystemConfigController | /configs | 系统参数 |
| SystemNoticeController | /notices | 通知公告 |
| SystemFileController | /files | 文件上传、列表、下载、删除 |
| SystemDatabaseController | /database | POST /init 数据库初始化 |
用户模块要点
| 端点 | 权限 | 说明 |
|---|---|---|
GET /users | system:user:list | 分页 + keyword;DataScopeService 数据权限过滤 |
GET /users/export | system:user:export | EasyExcel 导出 |
POST /users/import | system:user:import | Excel 导入 |
PUT /users/{id}/roles | system:user:update | 分配角色(@GlobalTransactional Seata 演示) |
PUT /users/{id}/posts | system:user:update | 分配岗位 |
PUT /users/{id}/reset-password | system:user:resetPwd | 重置密码 |
创建用户:写入 DB 后 UserEventPublisher 发布 UserCreatedEvent(RabbitMQ / Kafka)。
角色模块要点
| 端点 | 说明 |
|---|---|
GET /roles/{id} | 返回 RoleDetailDto,含 deptIds、permissionIds |
PUT /roles/{id}/permissions | 覆盖绑定权限 |
PUT /roles/{id}/depts | 自定义数据范围时绑定部门 |
文件模块
- 上传:
POST /files/upload(multipart) - 下载:
GET /files/download/**— Security 白名单,无需登录 - 存储:
app.upload.path/UPLOAD_PATH(默认./uploads)
数据库初始化
DatabaseInitService 读 system-service/src/main/resources/db/drop.sql、schema.sql:
- 删表 → 建表
- 种子:部门、admin、53 条权限、完整菜单、字典、参数、演示定时任务
bash
curl -X POST http://localhost:8080/api/v1/system/database/init受 app.database-init.allow-web-init / DB_INIT_ALLOW_WEB 控制;无需登录。
init 与 monitor-service
init 会写入 sys_job 种子,但 Quartz 在 monitor-service 进程。init 后请重启 monitor-service 以加载定时任务。
操作审计
带 @Log 的写操作由 xichen-common 的 OperLogAspect 写入 sys_oper_log。
数据源
spring.datasource 直连 MySQL(与 auth-service 相同),环境变量:DB_HOST、DB_PORT、DB_NAME、DB_USER、DB_PASSWORD。
微服务扩展
| 能力 | 说明 |
|---|---|
| RabbitMQ / Kafka | 用户创建事件,见 中间件 |
| Seata | assignRoles 的 @GlobalTransactional;无 TC 时 SEATA_ENABLED=false |