Skip to content

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/databasePOST /init 数据库初始化

用户模块要点

端点权限说明
GET /userssystem:user:list分页 + keyword;DataScopeService 数据权限过滤
GET /users/exportsystem:user:exportEasyExcel 导出
POST /users/importsystem:user:importExcel 导入
PUT /users/{id}/rolessystem:user:update分配角色(@GlobalTransactional Seata 演示)
PUT /users/{id}/postssystem:user:update分配岗位
PUT /users/{id}/reset-passwordsystem:user:resetPwd重置密码

创建用户:写入 DB 后 UserEventPublisher 发布 UserCreatedEvent(RabbitMQ / Kafka)。

角色模块要点

端点说明
GET /roles/{id}返回 RoleDetailDto,含 deptIdspermissionIds
PUT /roles/{id}/permissions覆盖绑定权限
PUT /roles/{id}/depts自定义数据范围时绑定部门

文件模块

  • 上传:POST /files/upload(multipart)
  • 下载:GET /files/download/** — Security 白名单,无需登录
  • 存储:app.upload.path / UPLOAD_PATH(默认 ./uploads

数据库初始化

DatabaseInitServicesystem-service/src/main/resources/db/drop.sqlschema.sql

  1. 删表 → 建表
  2. 种子:部门、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-commonOperLogAspect 写入 sys_oper_log

数据源

spring.datasource 直连 MySQL(与 auth-service 相同),环境变量:DB_HOSTDB_PORTDB_NAMEDB_USERDB_PASSWORD

微服务扩展

能力说明
RabbitMQ / Kafka用户创建事件,见 中间件
SeataassignRoles@GlobalTransactional;无 TC 时 SEATA_ENABLED=false

相关文档

Xichen Full Stack 内部文档