# 用户管理系统 **Repository Path**: hyo-ja/user-management-system ## Basic Information - **Project Name**: 用户管理系统 - **Description**: Project includes: admin warehouse management - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-01 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: Csharp ## README # 用户管理系统 / User Management System ## 项目简介 / Project Overview 本项目是一个前后端分离的用户管理系统,支持用户、角色、权限、资源的灵活管理,采用现代领域驱动设计(DDD)与事件驱动架构,适合企业后台、权限控制等场景。 This project is a user management system based on a separated frontend-backend architecture, supporting flexible management of users, roles, permissions, and resources. It adopts modern Domain-Driven Design (DDD) and event-driven architecture, suitable for enterprise admin panels and access control scenarios. --- ## 技术栈 / Tech Stack ### 后端 / Backend - **语言/框架**:.NET 8 (ASP.NET Core Web API) - **ORM/数据访问**:Dapper + Entity Framework Core(混合使用,Dapper用于高性能中间表操作) - **数据库**:PostgreSQL - **依赖注入**:Microsoft.Extensions.DependencyInjection - **领域事件**:MediatR - **API 文档**:Swagger ### 前端 / Frontend - **框架**:Vue 3 - **UI 组件库**:Element Plus - **可视化**:ECharts, vue-echarts - **路由管理**:vue-router - **构建工具**:Vite - **HTTP 客户端**:Axios --- ## 架构亮点 / Architecture Highlights - **领域驱动设计(DDD)**:核心业务逻辑聚合在领域服务与实体中。 - **事件驱动**:用户注册、角色创建等关键操作通过领域事件自动触发后续业务(如分配默认角色/权限)。 - **高性能中间表操作**:多对多关系(如用户-角色、角色-权限)采用 Dapper 直接操作中间表,兼顾性能与灵活性。 - **解耦扩展**:所有自动分配逻辑均通过事件处理器实现,便于后续扩展和维护。 --- ## 主要功能 / Main Features ### 用户管理 / User Management - 用户注册、登录、登出 - 用户的增删改查(CRUD) - 启用/禁用、头像上传、密码修改 - 用户分配/移除角色(支持事件驱动自动分配默认角色) ### 角色与权限管理 / Role & Permission Management - 角色的增删改查 - 权限的增删改查 - 角色分配权限(支持事件驱动自动分配默认权限) - 权限分配资源(如菜单、API、按钮) ### 认证与安全 / Authentication & Security - Token 认证(JWT) - CORS 支持 ### 数据可视化与仪表盘 / Dashboard & Visualization - 数据总览、趋势图表、饼图、公告与待办 --- ## 领域事件与自动分配 / Domain Events & Auto Assignment - **用户注册后**:自动分配默认角色(通过 `UserRegisteredEvent` 及其 Handler 实现,Dapper 插入中间表)。 - **角色创建后**:自动分配默认权限(通过 `RoleCreatedEvent` 及其 Handler 实现,Dapper 插入中间表)。 所有事件处理器均通过 MediatR 自动注册和发现,业务解耦,易于扩展。 --- ## 目录结构 / Project Structure ``` backend/ src/ admin.api/ # Web API 启动入口 admin.application/ # 应用层(服务、领域事件、Handler、DTO等) Handler/ # 领域事件处理器 Notifications/ # 领域事件与通知 Services/ # 业务服务 admin.core/ # 核心领域模型(实体、接口等) admin.infrastructure/ # 基础设施(DbContext、仓储实现等) frontend/ demo-vue-project/ # 前端 Vue3 项目 ``` --- ## 数据库结构(核心表)/ Database Structure (Core Tables) - **AppUser**:用户表 - **AppRole**:角色表 - **AppPermission**:权限表 - **AppResource**:资源表 - **AppRoleAppUser**:用户-角色中间表 - **AppPermissionAppRole**:角色-权限中间表 --- ## 环境与部署 / Environment & Deployment ### 后端 / Backend - 运行环境:.NET 8 - 默认端口:`http://localhost:5113` - 数据库:PostgreSQL(配置见 `appsettings.json`) - 启动方式: 1. 进入 `backend/src/admin.api` 目录 2. 执行 `dotnet run` ### 前端 / Frontend - Node.js 16+ 推荐 - 启动方式: 1. 进入 `frontend/demo-vue-project` 目录 2. 执行 `npm install` 3. 执行 `npm run dev` - 默认端口:`http://localhost:5173` --- ## 接口说明 / API Overview - 用户相关:`/api/User`(GET/POST/PUT/DELETE,启用/禁用/分配角色/修改密码等) - 认证相关:`/api/Auth/login`、`/api/Auth/register` - 角色与权限相关:`/api/Role`、`/api/Permission` - 所有接口返回统一格式: ```json { "code": 200, "message": "操作成功", "data": {} } ``` --- ## 其他说明 / Additional Notes - 前后端均支持本地开发与调试,接口地址可在前端 `src/api/auth.js` 和后端 `appsettings.json` 配置。 - Swagger API 文档可通过后端启动后访问 `/swagger`。 - 如需自定义数据库连接,请修改 `appsettings.json` 中的 `ConnectionStrings`。 - 领域事件与 Handler 可按需扩展,支持更多自动化业务场景。