# MangerCenter **Repository Path**: stoneson/manger-center ## Basic Information - **Project Name**: MangerCenter - **Description**: 基于ruoyi 微服务版 融合后生成的单应用版本 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-01-29 - **Last Updated**: 2026-01-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Manger-Center 本项目是基于若依(RuoYi)微服务版本改造的单应用权限管理系统。保留了若依强大的权限控制体系,并针对国产化加密算法(SM2、SM3)及多数据库环境进行了深度定制与优化。 ## 技术栈 * **核心框架**: Spring Boot * **持久层框架**: MyBatis-Plus (支持 Join 联表查询) * **数据库连接**: Druid (支持多数据源) * **缓存框架**: Redis + Redisson * **加密算法**: SM2 (非对称加解密), SM3 (密码哈希加盐) * **定时任务**: Quartz * **API文档**: Swagger * **前端框架**: Vue3 + Element Plus ## 项目结构 项目采用模块化设计,主要包含以下核心模块: ``` ├── auth # 登录认证模块 │ ├── config # 验证码配置 │ ├── controller # 登录、Token、登出接口 │ └── service # 登录逻辑、密码校验(SM3) ├── common # 公共核心模块 │ ├── common-core # 基础工具类、常量定义、响应封装(R/AjaxResult)、异常处理 │ ├── common-dao # 数据访问层(Mapper),包含多数据库(XML/SQL)配置 │ ├── common-entity # 实体类(Entity)、请求/响应对象(Request/Response/VO) │ ├── common-datasource # 多数据源配置与动态切换 │ ├── common-redis # Redis及Redisson分布式锁配置 │ ├── common-security # 安全模块(SM2解密过滤器、权限注解、Token管理) │ ├── common-log # AOP操作日志 │ └── common-swagger # Swagger接口文档配置 ├── job # 定时任务模块 │ ├── controller # 任务管理与日志查询接口 │ ├── domain # 任务实体 │ ├── mapper # 任务数据访问 │ └── service # 任务调度逻辑 ├── server # 程序启动入口 │ ├── config # 全局配置类 │ └── resources # 配置文件(application.yml) ├── system # 业务系统模块 │ ├── controller # 系统管理接口(用户、角色、菜单、机构、字典) │ ├── aspect # 日志切面 │ └── service # 业务逻辑实现 ├── ui # Vue3 前端项目源码 └── sql # 数据库脚本(MySQL, DM, SQLServer) ``` ### 模块详解 * **auth (认证中心)**: * 提供 `/auth/login` 登录接口。 * 实现验证码生成与校验。 * **密码安全**: 采用 `SM3` 算法对密码进行哈希处理,并结合随机盐值,确保密码安全。 * 提供 Token 生成与刷新机制。 * **common-security (安全核心)**: * `DecryptFilter`: 全局过滤器,支持对前端加密(SM2)的请求参数进行解密。 * 权限注解: `@RequiresLogin`, `@RequiresPermissions`, `@RequiresRoles`。 * 全局异常处理: 统一处理认证与权限异常。 * **common-datasource (多数据源)**: * 支持配置多个数据源(默认集成 MySQL, DM, SQLServer)。 * 通过 `@DS("db_name")` 注解切换数据源(例如在 Service 层指定访问 `system` 库或 `job` 库)。 * **system (业务服务)**: * **用户管理**: 用户的增删改查,密码策略(修改、忘记密码、锁定)。 * **角色权限**: 配置角色及分配菜单/数据权限。 * **机构管理**: 管理医院/机构信息,支持多级子机构。 * **字典管理**: 统一管理下拉选项数据。 * **系统日志**: 记录用户操作日志。 ## 主要特性 1. **SM2 加解密支持**: 系统内置 SM2 公私钥加解密机制,适用于对敏感数据传输有高安全要求的场景。 2. **SM3 加盐认证**: 登录密码采用国密 SM3 算法哈希存储,兼容传统 MD5 配置,但安全性更高。 3. **多数据库兼容**: 原生支持 MySQL、达梦(DM)、SqlServer,通过配置切换,无需修改业务代码。 4. **幂等性支持**: 基于 Redisson 的分布式锁机制,保障接口幂等性。 5. **前后端分离**: 后端提供标准 RESTful API,前端基于 Vue3 构建。 ## 环境要求 * JDK 1.8+ * Redis 3.0+ * MySQL 5.7+ / DM 8+ / SQLServer 2012+ * Maven 3.0+ * Node.js 16+ (用于构建前端) ## 快速开始 ### 1. 数据库初始化 根据你使用的数据库类型,执行 `sql` 目录下的脚本: * `sql/mysql/`: MySQL 数据库脚本 * `sql/dm/`: 达梦数据库脚本 * `sql/sqlserver/`: SQLServer 数据库脚本 ### 2. 后端配置 修改 `server/src/main/resources/application.yml` 配置数据库连接信息及 Redis 连接。 **启用 SM2 解密** (可选): 如果前端请求需要加密传输,请在配置文件中配置 SM2 密钥对: ```yaml encrypt: sm2: enabled: true public-key: xxxx private-key: xxxx ``` ### 3. 运行项目 直接运行 `com.victor.server.ServerApplication` 的 main 方法。 访问 Swagger UI: `http://localhost:8080/swagger-ui/index.html` ### 4. 前端启动 进入 `ui` 目录: ```bash npm install npm run dev ``` 默认登录账号:`a1 / 1qaz@WSX` ## 注意事项 * **Mapper 警告**: 本项目使用了 `mybatis-plus-join` 插件进行联表查询,如果未引入该依赖,需在 `pom.xml` 中添加或使用传统的 Mapper XML 文件配置。 * **多数据源**: Service 实现类上使用了 `@DS` 注解来指定数据源,请注意不要遗漏。