# CellularManagement 项目说明 ## 项目概述 CellularManagement 是一个基于 Clean Architecture 架构的蜂窝网络管理系统。该项目采用领域驱动设计(DDD)原则,实现了高度模块化和可维护的代码结构。系统提供了完整的用户认证、权限管理、实时通信等功能,适用于大规模分布式部署场景。 ## 技术栈 - .NET 8.0 - 最新的 .NET 运行时和框架特性 - 高性能的异步编程模型 - 内置的依赖注入容器 - Entity Framework Core - 支持多种数据库提供程序 - 强大的 LINQ 查询功能 - 自动迁移和数据库版本控制 - ASP.NET Core - RESTful API 支持 - WebSocket 实时通信 - 中间件管道 - Clean Architecture - 清晰的层次结构 - 依赖倒置原则 - 领域驱动设计 - DDD (领域驱动设计) - 领域模型 - 聚合根 - 值对象 - 领域事件 - WebSocket - 实时双向通信 - 连接状态管理 - 消息广播 ## 项目结构 ``` CellularManagement/ ├── src/ │ ├── CellularManagement.Application/ # 应用层 │ │ ├── Common/ # 通用组件 │ │ ├── Features/ # 功能模块 │ │ └── Services/ # 应用服务 │ ├── CellularManagement.Domain/ # 领域层 │ │ ├── Entities/ # 领域实体 │ │ ├── Events/ # 领域事件 │ │ ├── Interfaces/ # 领域接口 │ │ └── ValueObjects/ # 值对象 │ ├── CellularManagement.Infrastructure/ # 基础设施层 │ │ ├── Persistence/ # 数据持久化 │ │ ├── Services/ # 基础设施服务 │ │ └── Identity/ # 身份认证 │ └── CellularManagement.WebApi/ # 表现层 │ ├── Controllers/ # API 控制器 │ ├── Middleware/ # 中间件 │ └── Filters/ # 过滤器 ``` ## 主要功能 ### 用户认证与授权 - JWT 令牌认证 - 基于标准的 JWT 规范 - 支持令牌刷新机制 - 自动令牌过期处理 - 基于角色的访问控制 (RBAC) - 灵活的角色定义 - 角色继承关系 - 动态角色分配 - 细粒度的权限管理 - 功能级权限控制 - 数据级权限控制 - 操作级权限控制 - 权限代码化存储 - 统一的权限标识符 - 权限分组管理 - 权限描述文档 - 多角色权限合并 - 自动权限去重 - 权限优先级处理 - 权限冲突解决 ### 角色管理 - 角色创建与编辑 - 角色权限分配 - 角色继承关系 - 角色用户管理 ### 缓存服务 - 分布式缓存支持 - 多级缓存策略 - 缓存自动失效 - 缓存预热机制 ### JWT令牌管理 - 令牌生成与验证 - 令牌刷新机制 - 令牌黑名单 - 安全策略配置 ### 密钥轮换服务 - 自动密钥轮换 - 密钥版本管理 - 密钥备份恢复 - 安全审计日志 ### WebSocket实时通信 - 实时消息推送 - 点对点消息 - 广播消息 - 分组消息 - 连接管理 - 连接状态监控 - 自动重连机制 - 心跳检测 - 消息管道处理 - 消息过滤 - 消息转换 - 消息路由 - 分布式WebSocket管理 - 集群支持 - 会话共享 - 负载均衡 - 性能监控 - 连接数统计 - 消息吞吐量 - 延迟监控 ## 角色管理模块 角色管理模块提供了完整的角色 CRUD 操作,采用 CQRS 模式实现,将命令和查询职责分离。 ### 功能特性 - 创建角色 - 删除角色 - 获取单个角色 - 获取所有角色 ### API 端点 | 方法 | 端点 | 描述 | |--------|-------------------|--------------| | POST | /api/roles/create | 创建新角色 | | DELETE | /api/roles/{id} | 删除角色 | | GET | /api/roles/{id} | 获取单个角色 | | GET | /api/roles | 获取所有角色 | ### 代码结构 ``` Features/Roles/ ├── Commands/ │ ├── CreateRole/ │ │ ├── CreateRoleCommand.cs │ │ ├── CreateRoleCommandHandler.cs │ │ └── CreateRoleResponse.cs │ ├── DeleteRole/ │ │ ├── DeleteRoleCommand.cs │ │ ├── DeleteRoleCommandHandler.cs │ │ └── DeleteRoleResponse.cs │ └── RoleCommandHandler.cs └── Queries/ ├── GetRole/ │ ├── GetRoleQuery.cs │ └── GetRoleResponse.cs ├── GetAllRolesQuery.cs └── RoleQueryHandler.cs ``` ### 设计模式 - CQRS(命令查询职责分离) - 单一职责原则 - 依赖注入 - 异常处理 - 日志记录 ## 开发环境要求 - .NET 8.0 SDK - 最新的 .NET 开发工具 - 跨平台支持 - Visual Studio 2022 或 VS Code - 完整的 IDE 支持 - 调试工具 - 代码分析 - SQL Server (可选,根据实际需求) - 支持其他数据库 - 数据迁移工具 ## 如何运行 1. 克隆项目 ```bash git clone http://47.120.42.247:13001/root/CellularManagement.git ``` 2. 还原依赖 ```bash dotnet restore ``` 3. 运行项目 ```bash dotnet run --project src/CellularManagement.WebApi ``` ## 项目特点 - 采用 Clean Architecture 架构,实现关注点分离 - 清晰的层次结构 - 依赖倒置原则 - 领域驱动设计 - 使用 DDD 设计模式,提高代码可维护性 - 领域模型 - 聚合根 - 值对象 - 模块化设计,便于扩展和维护 - 功能模块化 - 插件化架构 - 配置驱动 - 完善的依赖注入机制 - 自动注册 - 生命周期管理 - 作用域控制 - 实时通信支持 - WebSocket - 消息队列 - 事件总线 - 分布式架构支持 - 服务发现 - 负载均衡 - 配置中心 - 性能监控和指标收集 - 性能计数器 - 健康检查 - 日志追踪 ## 开发指南 ### 代码规范 - 遵循 C# 编码规范 - 使用 XML 文档注释 - 编写单元测试 - 代码审查流程 ### 分支管理 - master: 主分支,稳定版本 - develop: 开发分支 - feature/*: 功能分支 - hotfix/*: 紧急修复分支 ### 提交规范 - feat: 新功能 - fix: 修复 - docs: 文档 - style: 格式 - refactor: 重构 - test: 测试 - chore: 构建 ## 贡献指南 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 [MIT License](LICENSE) ## 分支说明 ### norm 分支 - 创建时间:2024年 - 分支目的:规范化代码结构和实现 - 主要更新: - 代码结构优化 - 命名规范统一 - 注释完善 - 文档更新