2 changed files with 158 additions and 2 deletions
@ -1,3 +1,159 @@ |
|||||||
# NonDetainmentSoft |
# NonDetainmentSoft |
||||||
|
|
||||||
非羁押人员管理系统 |
非羁押人员管理系统 |
||||||
|
|
||||||
|
## 1. 项目概述 |
||||||
|
ATS.NonCustodial.Admin 是一个基于 .NET 9.0 开发的后端管理系统,主要用于非监禁人员管理业务,提供案件管理、业务申请、设备管理等功能模块。系统采用分层架构设计,具有良好的扩展性和可维护性。 |
||||||
|
|
||||||
|
## 2. 技术栈 |
||||||
|
- 开发框架 :.NET 9.0 |
||||||
|
- ORM框架 :Entity Framework Core 9.0.8 |
||||||
|
- 数据库 :MySQL |
||||||
|
- 身份认证 :JWT / IdentityServer4 |
||||||
|
- 依赖注入 :Autofac |
||||||
|
- 实时通信 :SignalR |
||||||
|
- 任务调度 :Quartz |
||||||
|
- API文档 :Swagger |
||||||
|
- 缓存 :Redis |
||||||
|
- 日志 :Serilog |
||||||
|
- 数据映射 :AutoMapper |
||||||
|
## 3. 项目架构 |
||||||
|
项目采用典型的分层架构设计,各层职责明确: |
||||||
|
|
||||||
|
``` |
||||||
|
src/ |
||||||
|
├── 1.datas/ # 数据层 |
||||||
|
│ ├── ATS.NonCustodial.DbMigrations/ # 数据库迁移 |
||||||
|
│ ├── ATS.NonCustodial.Domain/ # 领域模型 |
||||||
|
│ └── ATS.NonCustodial.EntityFrameworkCore/ # EF Core 实现 |
||||||
|
├── 2.services/ # 业务服务层 |
||||||
|
│ └── ATS.NonCustodial.Application/ # 应用服务实现 |
||||||
|
├── 3.contracts/ # 接口层 |
||||||
|
│ └── ATS.NonCustodial.Application.Contracts/ # 服务接口定义 |
||||||
|
├── 4.apps/ # 应用层 |
||||||
|
│ └── ATS.NonCustodial.Admin.Api/ # Web API 应用 |
||||||
|
└── 5.shared/ # 共享层 |
||||||
|
├── ATS.NonCustodial.Admin.Jobs/ # 定时任务 |
||||||
|
├── ATS.NonCustodial.AdminUi/ # 管理UI组件 |
||||||
|
├── ATS.NonCustodial.AuditLogging/ # 审计日志 |
||||||
|
├── ATS.NonCustodial.Domain.Shared/ # 领域共享 |
||||||
|
├── ATS.NonCustodial.DynamicApi/ # 动态API |
||||||
|
└── ATS.NonCustodial.Shared/ # 通用工具 |
||||||
|
``` |
||||||
|
|
||||||
|
## 4. 核心模块 |
||||||
|
### 4.1 案件管理模块 |
||||||
|
负责非监禁人员案件的创建、查询、更新和删除,包含案件信息、监管人员和被监管人员管理。 |
||||||
|
|
||||||
|
主要实体: |
||||||
|
|
||||||
|
- AppCaseManagement :案件管理实体 |
||||||
|
- AppCaseSupervisor :监管人员实体 |
||||||
|
- AppCaseSupervisedPerson :被监管人员实体 |
||||||
|
### 4.2 业务申请模块 |
||||||
|
处理被监管人员的各类业务申请,如请假、外出活动等,包含申请提交、审核、统计等功能。 |
||||||
|
|
||||||
|
主要服务: |
||||||
|
|
||||||
|
- AppBusinessApplicationService :业务申请服务 |
||||||
|
- 提供申请创建、查询、审核、统计等功能 |
||||||
|
### 4.3 设备管理模块 |
||||||
|
管理与被监管人员关联的电子设备,如定位设备等。 |
||||||
|
|
||||||
|
主要服务: |
||||||
|
|
||||||
|
- AppDeviceManagementService :设备管理服务 |
||||||
|
### 4.4 用户权限管理 |
||||||
|
处理系统用户、角色和权限的管理。 |
||||||
|
|
||||||
|
主要服务: |
||||||
|
|
||||||
|
- RoleService :角色管理服务 |
||||||
|
- UserService :用户管理服务 |
||||||
|
### 4.5 文件管理模块 |
||||||
|
提供文件上传、下载、管理功能,支持多种文件类型。 |
||||||
|
|
||||||
|
主要配置: |
||||||
|
|
||||||
|
- UploadConfigConfiguration :文件上传配置,支持头像、图片、资料等类型 |
||||||
|
## 5. 系统配置 |
||||||
|
### 5.1 数据库配置 |
||||||
|
系统使用 MySQL 数据库,配置位于 appsettings.json 的 ConnectionStringsConfiguration 节点: |
||||||
|
|
||||||
|
``` |
||||||
|
"ConnectionStringsConfiguration": { |
||||||
|
"AdminAuditLogDbConnection": "Server=localhost;database=fsl_cs;uid=root;pwd=sa@admin;...", |
||||||
|
"AdminDbConnection": "Server=localhost;database=fsl_cs;uid=root;pwd=sa@admin;..." |
||||||
|
}, |
||||||
|
"DatabaseProviderConfiguration": { |
||||||
|
"ProviderType": "MySql" |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
### 5.2 身份认证配置 |
||||||
|
支持 JWT 和 IdentityServer4 两种认证方式,JWT 配置如下: |
||||||
|
|
||||||
|
``` |
||||||
|
"JwtConfiguration": { |
||||||
|
"Issuer": "http://127.0.0.1:8006", |
||||||
|
"Audience": "http://127.0.0.1:8006", |
||||||
|
"SymmetricSecurityKey": "ertJKl#521*a@790asD&1#0123456789", |
||||||
|
"Expires": 1440, |
||||||
|
"RefreshTokenExpires": 1440 |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
### 5.3 文件上传配置 |
||||||
|
定义了多种文件类型的上传规则: |
||||||
|
|
||||||
|
``` |
||||||
|
"UploadConfigConfiguration": { |
||||||
|
"Avatar": { |
||||||
|
"UploadPath": "../upload/admin/avatar", |
||||||
|
"RequestPath": "/upload/admin/avatar", |
||||||
|
"MaxSize": 1048576 |
||||||
|
}, |
||||||
|
"Image": { |
||||||
|
"UploadPath": "../upload/admin/image", |
||||||
|
"RequestPath": "/upload/admin/image", |
||||||
|
"MaxSize": 10485760 |
||||||
|
}, |
||||||
|
"MaterialManager": { |
||||||
|
"UploadPath": "../upload/admin/materials", |
||||||
|
"RequestPath": "/upload/admin/materials" |
||||||
|
} |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
## 6. 服务启动流程 |
||||||
|
1. 入口点 : Program.cs 调用 HostApp.Run() 方法启动服务 |
||||||
|
2. 配置加载 :通过 ConfigHelper 加载配置文件 |
||||||
|
3. 依赖注入 :使用 Autofac 注册服务组件 |
||||||
|
4. 数据库初始化 :应用数据库迁移和种子数据 |
||||||
|
5. 中间件配置 :配置认证授权、CORS、路由等中间件 |
||||||
|
6. 服务运行 :启动 Web 服务器和 SignalR 服务 |
||||||
|
## 7. 关键特性 |
||||||
|
### 7.1 动态 API |
||||||
|
使用自定义的 DynamicApi 属性自动生成 API 接口,简化开发流程。 |
||||||
|
|
||||||
|
### 7.2 实时通信 |
||||||
|
通过 SignalR 实现监管人员和系统之间的实时消息推送和通知。 |
||||||
|
|
||||||
|
### 7.3 审计日志 |
||||||
|
系统内置审计日志功能,记录用户操作和系统事件。 |
||||||
|
|
||||||
|
### 7.4 定时任务 |
||||||
|
使用 Quartz 框架实现系统定时任务,如数据同步、状态更新等。 |
||||||
|
|
||||||
|
### 7.5 多数据库支持 |
||||||
|
通过 EF Core 支持多种数据库,当前使用 MySQL。 |
||||||
|
|
||||||
|
## 8. 部署配置 |
||||||
|
系统支持 Docker 容器化部署,提供了 Dockerfile 用于构建镜像。默认监听端口为 8006。 |
||||||
|
|
||||||
|
## 9. 安全措施 |
||||||
|
- JWT/IdentityServer4 身份认证 |
||||||
|
- 基于角色的访问控制 |
||||||
|
- 输入验证和防注入 |
||||||
|
- CORS 跨域配置 |
||||||
|
- 请求限流(使用 AspNetCoreRateLimit) |
||||||
Loading…
Reference in new issue