# rs-admin **Repository Path**: L_MH/rs-admin ## Basic Information - **Project Name**: rs-admin - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-28 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rs-admin 基于 Rust 的后台管理系统,采用清洁架构(Clean Architecture),技术栈:Salvo + SeaORM + sa-token-rust。 ## 技术栈 | 组件 | 版本 | 说明 | |------|------|------| | [Salvo](https://salvo.rs) | 0.92 | Web 框架 | | [SeaORM](https://www.sea-ql.org/SeaORM) | 2.0.0-rc.38 | ORM 框架 | | [sa-token-rust](https://github.com/sa-tokens/sa-token-rust) | 0.1.12 | 登录认证与权限管理 | | MySQL | - | 数据库 rs_admin | | bcrypt | 0.16 | 密码加密 | ## 清洁架构 ``` src/ ├── main.rs # 入口:依赖注入 + 路由注册 │ ├── domain/ # 领域层(核心业务规则,无外部依赖) │ ├── entities/ # SeaORM 实体模型(25 张表) │ │ ├── mod.rs │ │ ├── system_user.rs # sa_system_user → pub type SystemUser = Model; │ │ ├── system_role.rs # sa_system_role → pub type SystemRole = Model; │ │ ├── system_menu.rs │ │ ├── system_dept.rs │ │ ├── system_post.rs │ │ ├── system_dict_type.rs │ │ ├── system_dict_data.rs │ │ ├── system_config.rs │ │ ├── system_config_group.rs │ │ ├── system_attachment.rs │ │ ├── system_category.rs │ │ ├── system_login_log.rs │ │ ├── system_oper_log.rs │ │ ├── system_mail.rs │ │ ├── system_role_menu.rs │ │ ├── system_role_dept.rs │ │ ├── system_user_role.rs │ │ ├── system_user_post.rs │ │ ├── tool_crontab.rs │ │ ├── tool_crontab_log.rs │ │ ├── tool_generate_tables.rs │ │ ├── tool_generate_columns.rs │ │ ├── article.rs │ │ ├── article_banner.rs │ │ └── article_category.rs │ └── repositories/mod.rs # 仓储接口 (trait) │ ├── application/ # 应用层(用例编排) │ └── services/ │ ├── auth_service.rs # 登录认证、权限设置、登出 │ └── user_service.rs # 用户 CRUD 业务逻辑 │ ├── infrastructure/ # 基础设施层(外部依赖实现) │ ├── db.rs # 数据库连接初始化 │ └── persistence/ │ ├── user_repository.rs # UserRepository 实现 │ └── auth_repository.rs # AuthRepository 实现 │ ├── api/ # 表示层(HTTP 处理器) │ ├── response.rs # 统一响应格式 (ApiResponse / PageData) │ ├── login.rs # POST /api/login | POST /api/logout | GET /api/system/user/list │ └── user.rs # GET/POST/PUT/DELETE /api/system/user/* │ └── shared/ # 共享模块 ├── config.rs # 环境配置 (数据库/服务端口/Token) └── error.rs # 统一错误类型 (AppError) ``` ## 依赖方向 ``` api → application → domain ← infrastructure ``` - **domain** 不依赖任何其他层(纯业务规则) - **application** 依赖 domain,通过 trait 调用仓储 - **infrastructure** 实现 domain 中定义的仓储 trait - **api** 调用 application 层的 service,不直接访问数据库 ## 统一响应格式 成功响应: ```json {"code": 200, "message": "success", "data": {...}} ``` 分页响应: ```json { "code": 200, "message": "success", "data": { "total": 100, "items": [...], "page": 1, "page_size": 10 } } ``` 错误响应: ```json {"code": 400, "message": "用户名已存在"} ``` ## 快速开始 ### 1. 创建数据库 ```sql CREATE DATABASE rs_admin DEFAULT CHARACTER SET utf8mb4; ``` ### 2. 导入数据 ```bash mysql -u root -p123456 rs_admin < saiadmin-6.0.sql ``` ### 3. 配置环境变量(可选) ```bash export DATABASE_URL="mysql://root:123456@localhost:3306/rs_admin" export SERVER_HOST="0.0.0.0" export SERVER_PORT="8787" ``` ### 4. 启动服务 ```bash cargo run ``` 服务启动在 `http://0.0.0.0:8787` ### 5. 测试登录 ```bash curl -X POST http://localhost:8787/api/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"123456"}' ``` ## API 接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/login` | 用户登录 | | POST | `/api/logout` | 用户登出 | | GET | `/api/system/user/list` | 用户列表(分页) | | GET | `/api/system/user/read?id={id}` | 用户详情 | | POST | `/api/system/user/save` | 新增用户 | | PUT | `/api/system/user/update` | 修改用户 | | DELETE | `/api/system/user/destroy?ids={ids}` | 批量删除(软删除) | ## 错误码 | 错误类型 | 状态码 | 说明 | |----------|--------|------| | Auth | 401 | 认证失败 | | Permission | 403 | 权限不足 | | NotFound | 404 | 数据不存在 | | BadRequest | 400 | 参数错误 | | Database | 500 | 数据库错误 | | Internal | 500 | 内部错误 | ## 数据库表 | 表名 | 实体 | 说明 | |------|------|------| | sa_system_user | SystemUser | 用户表 | | sa_system_role | SystemRole | 角色表 | | sa_system_menu | SystemMenu | 菜单权限表 | | sa_system_dept | SystemDept | 部门表 | | sa_system_post | SystemPost | 岗位表 | | sa_system_dict_type | SystemDictType | 字典类型表 | | sa_system_dict_data | SystemDictData | 字典数据表 | | sa_system_config | SystemConfig | 系统配置表 | | sa_system_config_group | SystemConfigGroup | 配置分组表 | | sa_system_attachment | SystemAttachment | 附件表 | | sa_system_category | SystemCategory | 附件分类表 | | sa_system_login_log | SystemLoginLog | 登录日志表 | | sa_system_oper_log | SystemOperLog | 操作日志表 | | sa_system_mail | SystemMail | 邮件记录表 | | sa_system_role_menu | SystemRoleMenu | 角色-菜单关联表 | | sa_system_role_dept | SystemRoleDept | 角色-部门关联表 | | sa_system_user_role | SystemUserRole | 用户-角色关联表 | | sa_system_user_post | SystemUserPost | 用户-岗位关联表 | | sa_tool_crontab | ToolCrontab | 定时任务表 | | sa_tool_crontab_log | ToolCrontabLog | 任务执行日志表 | | sa_tool_generate_tables | ToolGenerateTables | 代码生成表 | | sa_tool_generate_columns | ToolGenerateColumns | 代码生成字段表 | | sa_article | Article | 文章表 | | sa_article_banner | ArticleBanner | 文章轮播图表 | | sa_article_category | ArticleCategory | 文章分类表 |