# 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)