|
|
|
# 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年
|
|
|
|
- 分支目的:规范化代码结构和实现
|
|
|
|
- 主要更新:
|
|
|
|
- 代码结构优化
|
|
|
|
- 命名规范统一
|
|
|
|
- 注释完善
|
|
|
|
- 文档更新
|