You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
4 weeks ago | |
|---|---|---|
| .vscode | 3 months ago | |
| src | 4 weeks ago | |
| .dockerignore | 3 months ago | |
| .gitattributes | 3 months ago | |
| .gitignore | 3 months ago | |
| ATS.NonCustodial.Admin.sln | 3 months ago | |
| README.md | 2 months ago | |
| Temp.txt | 3 months ago | |
README.md
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. 服务启动流程
- 入口点 : Program.cs 调用 HostApp.Run() 方法启动服务
- 配置加载 :通过 ConfigHelper 加载配置文件
- 依赖注入 :使用 Autofac 注册服务组件
- 数据库初始化 :应用数据库迁移和种子数据
- 中间件配置 :配置认证授权、CORS、路由等中间件
- 服务运行 :启动 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)