欢迎光临
我们一直在努力

校园一体化管理系统 1、开发方案(试行)

校园一体化管理系统 私有化专属开发方案(单MySQL架构)

文档说明

  • 适配场景:私有化部署,学校内网断网运行、低配服务器、无外网依赖、满足教育等保2.0合规要求。具体而言:
    • 学校内网断网运行:系统设计为完全离线运行模式,不依赖任何外部网络连接。所有功能模块(包括用户认证、数据同步、文件上传下载、报表生成等)均可在无互联网环境下正常工作。系统启动时自动检测网络状态,并切换到纯离线模式,避免因网络中断导致业务中断。

    • 低配服务器适配:针对中小学常见的低配置服务器环境(如4核CPU、8GB内存、500GB硬盘),系统进行了全方位优化:

      • 数据库层面采用MySQL单实例架构,减少多数据库的资源消耗
      • 内存使用优化,前端采用Blazor WebAssembly减少服务器渲染压力
      • 定时任务智能调度,避免高峰时段集中执行
      • 提供Redis队列降级方案,在内存不足时可切换为文件队列
    • 无外网依赖:彻底移除所有对外部服务的强依赖:

      • 前端资源全部本地打包,无CDN引用
      • 关闭版本自动更新检测
      • 短信、邮件等通知组件可完全关闭或替换为站内消息
      • 所有API接口均为内网地址,不调用任何外部API
    • 教育等保2.0合规要求:系统从设计层面满足等保2.0三级安全要求:

      • 身份鉴别:支持密码复杂度策略、多因素认证、登录失败锁定
      • 访问控制:基于角色的细粒度权限控制,支持IP白名单限制
      • 安全审计:完整操作日志记录,关键操作二次确认,日志留存3年
      • 数据完整性:数据库字段级加密,传输过程HTTPS加密
      • 数据保密性:学生隐私数据脱敏展示,敏感信息加密存储
      • 备份恢复:自动定时备份,支持一键恢复,备份文件加密存储
      • 恶意代码防范:文件上传安全扫描,XSS/SQL注入全局过滤
  • 技术架构: MySQL8.0 作为唯一业务数据库;Redis缓存、RabbitMQ可选轻量化降级
  • 部署模式双适配:私有化单校独立实例 / 云端多租户SaaS(配置开关切换两套逻辑)
  • 业务模块:教务(高优)、教学教研(次优)、轻量化德育(低优)
  • 跨模块交互:同步Core抽象契约调用 + 异步领域事件总线(本地内存/消息队列双模式)
  • 一、项目整体概述

    1.1 项目目标

  • 全离线内网可用,无强制外网依赖,适配中小学私有化本地部署;
  • 架构轻量化,降低客户服务器硬件门槛,运维简单;
  • 单MySQL统一承载全部业务数据,规避多数据库运维成本;
  • 完善离线安装、离线升级、本地备份恢复,售后交付成本低;
  • 完整等保、学生隐私脱敏、操作审计,满足教育局安全检查;
  • 模块化低耦合,支持后期按需增减业务功能。
  • 1.2 技术栈清单(私有化优化版)

    后端

    • 主框架:ASP.NET Core 8 WebAPI
    • ORM:SqlSuagr(MySQL)
    • 数据库:MySQL 8.0(唯一存储介质)
    • 缓存/分布式锁/轻量队列:Redis
    • 分布式消息队列:RabbitMQ(可选,低配机器切换RedisQueue降级)
    • 定时任务:Quartz.NET(任务持久化至MySQL)
    • 认证授权:JWT + 本地离线License授权
    • 日志:Serilog(本地磁盘存储)
    • 序列化:System.Text.Json

    前端

    • 框架:Blazor WebAssembly
    • UI组件:Ant Design Blazor
    • 资源策略:全部静态资源本地打包,无CDN外网依赖

    文件存储

    • 默认:本地磁盘目录
    • 可选拓展:内网NAS共享文件夹
    • 弃用公有OSS强依赖,仅作为可选配置

    部署交付

    • Windows:一键图形化安装程序
    • Linux:一键Shell离线部署脚本
    • 升级:离线Zip增量升级包,后台可视化执行

    二、解决方案项目分层结构

    (第一版目录结构 项目、功能划分)

    SaaSCampus.sln
    ├─ 01.Core 【核心底层,所有项目依赖,区分私有化/SaaS双模式】
    │ ├─ DeploymentSwitch // 部署模式全局开关:私有化单校 / SaaS多租户
    │ ├─ SaaSTenant // 多租户上下文,私有化模式自动屏蔽TenantId过滤逻辑
    │ ├─ AuthPermission // JWT认证、RBAC权限、IP白名单、离线License校验
    │ ├─ DomainEvent // 领域事件总线(本地内存总线优先,MQ可选)
    │ ├─ DataBase
    │ │ └─ MySqlBaseDbContext // 唯一数据库上下文,统一实体基类
    │ ├─ Repository // MySQL通用仓储、分页、事务、分表工具封装
    │ ├─ ServiceContract // 跨模块同步查询抽象契约(解耦核心)
    │ │ ├─ IEduQueryService.cs
    │ │ ├─ ITeachingQueryService.cs
    │ │ └─ IMoralQueryService.cs
    │ ├─ MessageQueue // MQ统一封装、Redis降级队列、消费幂等、失败重放表
    │ ├─ GlobalFilter // 全局异常、参数校验、统一返回、XSS过滤
    │ ├─ Security // 隐私数据加密、脱敏工具、审计日志基类
    │ └─ EntityBase // 全局MySQL实体基类
    │ ├─ SaaS模式:TenantId、CreatorId、CreateTime、UpdateTime、IsDeleted
    │ └─ 私有化模式:移除TenantId字段,自动适配
    ├─ 02.Common 【通用工具库,离线私有化适配】
    │ ├─ ExcelHelper // 离线导入导出,脱敏开关
    │ ├─ FileHelper // 本地/NAS文件管理、上传鉴权、自动清理临时文件
    │ ├─ RedisCache // 缓存雪崩/击穿/穿透防护、分布式锁
    │ ├─ QuartzTask // 定时任务持久化、断点续跑、并发互斥锁
    │ ├─ BackupHelper // MySQL本地自动备份、加密、一键恢复
    │ ├─ DeployHelper // 安装初始化、离线升级、数据库迁移回滚
    │ ├─ SerializeHelper // 统一序列化工具
    │ └─ NotifyHelper // 内网消息推送,屏蔽外网短信强制依赖
    ├─ 03.Module.Edu 【教务模块|最高优先级】
    │ ├─ Entity // MySQL实体,大文本拆分附属表
    │ ├─ Dto // 入参/出参DTO,敏感字段自动脱敏
    │ ├─ Repository // 数据仓储实现
    │ ├─ Service
    │ │ ├─ BusinessService // 学籍、排课、考勤、考务、成绩业务
    │ │ └─ QueryService // 实现Core IEduQueryService 对外查询契约
    │ ├─ Event // 教务领域事件实体
    │ └─ Controller // 模块API控制器
    ├─ 04.Module.Teaching 【教学教研模块|次优先级】
    │ ├─ Entity、Dto、Repository、Service、Event、Controller 同教务结构
    │ └─ QueryService 实现Core ITeachingQueryService
    ├─ 05.Module.Moral 【轻量化德育模块|低优先级】
    │ ├─ Entity、Dto、Repository、Service、Event、Controller 同教务结构
    │ └─ QueryService 实现Core IMoralQueryService
    ├─ 06.Api.Host 【API启动入口,一体化单进程】
    │ ├─ Program.cs
    │ ├─ Extensions // 模块注册扩展、部署模式初始化
    │ └─ Middleware // 内网IP拦截、租户、日志、跨域中间件
    └─ 07.Client.Blazor 【前端全离线打包】
    ├─ PlatformTool // 平台运营工具(生成离线License、升级包)
    └─ SchoolAdmin // 校内管理端(私有化客户唯一使用端)
    ├─ 系统管理员面板:配置、备份、升级、监控、License导入
    ├─ 教务/教研/德育主任面板
    ├─ 班主任/任课教师面板
    ├─ 学生独立端
    └─ 家长端

    (更改目录结构 DDD?? 2026年7月14日 20:25:11)

    SchoolSaas.sln
    ├─ Client.Blazor # 前端项目(外网独立部署,Blazor‑WebAssembly非托管模式 .NET8)
    │ ├─ Pages # 业务页面组件,按模块划分文件夹
    │ │ ├── SystemManage # 系统管理员页面:配置、备份、升级、监控、License导入
    │ │ ├── EduPage # 教务/教研/德育主任页面
    │ │ ├── TeacherPage # 班主任、任课教师页面
    │ │ ├── StudentPage # 学生独立端页面
    │ │ └─ ParentPage # 家长端页面
    │ ├─ SharedComponents # 公共UI组件
    │ │ ├── PermissionButton.razor # 权限受控按钮组件(后端权限标识控制显示)
    │ │ ├── CommonTable.razor # 通用分页表格组件
    │ │ ├── FileUpload.razor # 文件上传组件
    │ │ └─ ModalDialog.razor # 弹窗公共组件
    │ ├─ HttpServices # 统一封装HttpClient请求服务
    │ │ ├── HttpInterceptor.cs # 请求拦截器:自动附加Bearer‑Token、统一解析返回结果、Token过期跳转登录
    │ │ ├── EduApiService.cs # 教务模块请求服务
    │ │ ├── TeachingApiService.cs # 教研模块请求服务
    │ │ └─ MoralApiService.cs # 德育模块请求服务
    │ ├─ PlatformTool # 平台运营工具(新增,对应原有Core里版本校验)
    │ │ └── LicenseCheck.cs # 读取后端License,校验私有化授权有效期
    │ └─ wwwroot
    │ └─ appsettings.json # 配置外网API接口地址,仅保存域名,无密钥

    ├─ SchoolSaas.Api # 后端API项目(ASP.NET‑Core 8,内网部署,外网通过Yarp+IP白名单访问)
    │ ├─ Controllers # 控制器,只返回DTO,禁止返回数据库Entity实体
    │ │ ├── SystemController.cs # 系统管理接口
    │ │ ├── EduController.cs # 教务模块接口
    │ │ ├── TeachingController.cs # 教研模块接口
    │ │ └─ MoralController.cs # 德育模块接口
    │ ├─ Filters # 全局过滤器(对应Core层GlobalFilter、Security校验逻辑)
    │ │ ├── PermissionFilter.cs # JWT、RBAC权限校验、IP白名单校验(内网放行、外网严格校验)
    │ │ ├── GlobalExceptionFilter.cs # 全局异常过滤器:内网输出堆栈、外网屏蔽异常详情
    │ │ ├── RequestAuditFilter.cs # 审计日志:记录外网IP、操作账号、请求参数
    │ │ └── ValidateFilter.cs # 参数校验、XSS过滤
    │ ├─ Extensions # 新增:服务注册扩展(原Core模块初始化逻辑)
    │ │ ├── ServiceRegister.cs # 批量注入Repository、Service、SqlSugar、Redis、Hangfire
    │ │ └── DeployModeExtension.cs # 部署模式初始化:私有化单校 / SaaS‑多租户模式切换
    │ ├─ Middleware # 新增:中间件(原Core中间件逻辑)
    │ │ ├── YarpProxyMiddleware.cs # Yarp反向代理,外网IP限流、https证书处理
    │ │ └─ TenantMiddleware.cs # 解析当前租户信息
    │ └─ Program.cs # 程序入口:注册SqlSugar、JWT、CORS跨域、Hangfire定时任务、全局过滤器

    ├─ SchoolSaas.Application # 应用服务层(业务逻辑层)
    │ ├─ Services # 各个模块业务Service
    │ │ ├── BusinessService # 业务实现(对应原有Module模块)
    │ │ │ ├── ISystemService.cs & SystemService.cs
    │ │ │ ├── IEduService.cs & EduService.cs # 学籍、排课、成绩业务
    │ │ │ ├── ITeachingService.cs & TeachingService.cs # 教研业务
    │ │ │ └── IMoralService.cs & MoralService.cs # 德育考勤业务
    │ │ └─ QueryService # 跨模块查询服务契约实现(对应Core里ServiceContract)
    │ │ ├── IEduQueryService.cs
    │ │ ├── ITeachingQueryService.cs
    │ │ └─ IMoralQueryService.cs
    │ └─ Dtos # 入参DTO和返回DTO,后续同步至Shared打包Nuget给前端使用
    │ ├── InputDtos # 前端传入参数模型
    │ └─ OutputDtos # 返回前端数据模型,敏感字段自动脱敏

    ├─ SchoolSaas.Domain # 领域层(对应原01‑Core核心底层,把核心定义全部移入Domain)
    │ ├─ Entities # SqlSugar‑Entity实体类,对应数据库表
    │ │ ├── BaseEntity.cs # 全局实体基类:CreatorId、CreateTime、UpdateTime、IsDeleted(SqlSugar自动赋值)
    │ │ ├── ITenantEntity.cs # 租户接口:TenantId;私有化模式自动关闭TenantId过滤
    │ │ ├── EduEntities # 教务相关实体(Student、Class、Score)
    │ │ ├── TeachingEntities # 教研相关实体
    │ │ └─ MoralEntities # 德育相关实体
    │ ├─ Enums # 系统枚举(部署模式、角色类型、学籍状态、考勤状态)
    │ │ ├── DeployMode.cs // 枚举:PrivateSingleSchool私有化模式 / SaaSMultiTenant多租户模式
    │ │ └── BusinessEnums // 业务枚举
    │ ├─ DomainEvents # 领域事件(原Core.DomainEvent)
    │ │ ├── IEventBus.cs
    │ │ ├── LocalEventBus.cs // 私有化默认本地内存事件总线
    │ │ ├── MqEventBus.cs // 预留MQ模式,多集群部署启用
    │ │ └── EventModels // 事件实体:成绩提交事件、新增学生事件
    │ ├─ TenantContext # 新增(原Core‑SaaSTenant租户逻辑)
    │ │ ├── CurrentTenant.cs // 获取当前租户ID、登录用户信息
    │ │ └─ SqlSugarTenantFilter.cs // SqlSugar全局租户过滤器,根据DeployMode自动启用/关闭TenantId条件
    │ └─ AuthContract # 新增(原Core‑AuthPermission)
    │ ├── JwtModel.cs
    │ ├── PermissionModel.cs
    │ └── LicenseModel.cs // 私有化授权模型

    ├─ SchoolSaas.Infrastructure # 基础设施层(封装SqlSugar、Redis、工具类、定时任务)
    │ ├─ Repository # 基于SqlSugar实现仓储BaseRepository(原Core.DataBase逻辑)
    │ │ ├── IBaseRepository.cs
    │ │ ├── BaseRepository.cs // 封装分页、联表查询、批量操作、Lambda查询
    │ │ ├── UnitOfWork.cs // 工作单元,统一事务提交回滚
    │ │ └── DbSetup.cs // SqlSugar初始化:Code‑First、读写分离配置、种子数据初始化
    │ ├─ Cache # Redis缓存封装(原Core.MessageQueue、Common.RedisCache)
    │ │ ├── RedisHelper.cs // 缓存雪崩、击穿防护,分布式锁
    │ │ └── RedisMqProvider.cs // Redis降级消息队列、失败重试
    │ └─ CommonTools # 文件操作、加解密、公共工具类(对应02‑Common全部工具)
    │ ├── FileHelper.cs // 本地/NAS文件管理、自动清理临时文件
    │ ├── ExcelHelper.cs // Excel导入导出
    │ ├── BackupHelper.cs // MySQL定时备份、加密恢复
    │ ├── SerializeHelper.cs // 序列化工具
    │ ├── QuartzHelper.cs // Hangfire定时任务封装(成绩统计、考勤汇总任务)
    │ ├── NotifyHelper.cs // 内网消息推送
    │ └─ SecurityHelper.cs // 密码加密、数据脱敏、审计日志(原Core‑Security)

    └─ SchoolSaas.Shared # 公共类库,打包私有Nuget包
    ├─ ResultModel.cs // 统一返回模型 Result<T>
    ├─ SharedDtos // 将Application.Dtos同步到此项目,供前后端共用
    ├─ CommonEnums // Domain里的枚举同步至此,前端Blazor引用
    └─ GlobalConsts.cs // 全局常量、正则、分页公共模型
    规则:Client.Blazor和API项目仅通过Nuget引用SchoolSaas.Shared;前后端无项目引用,彻底解耦

    项目引用强制约束

  • Core:无业务模块引用;
  • Common:可被Core、所有业务模块、Api.Host引用;
  • 业务模块(Edu/Teaching/Moral):仅依赖Core、Common,禁止互相引用;
  • Api.Host:引用全部底层与业务模块,统一DI注册;
  • 前端:无任何外网静态资源、接口请求全部内网地址。
  • 三、数据库设计(仅MySQL8.0,私有化专项优化)

    3.1 整体存储规划

    全部业务、文本、附件元数据、操作日志、统计快照统一存入MySQL;
    本地磁盘/NAS仅存储真实文件(教案附件、图片、微课),数据库只存文件路径元数据。

    3.2 核心数据表分层

  • 系统基础表(sys_前缀)
    • sys_user、sys_role、sys_menu、sys_permission:账号权限
    • sys_attachment:全局附件元数据表,全业务复用
    • sys_operation_log_yyyyMM:按月分表,操作审计日志(合规留存3年)
    • sys_task_record:定时任务执行记录
    • sys_message:站内离线消息
    • sys_upgrade_log:系统升级、数据库迁移记录
    • sys_backup_record:数据库本地备份记录
  • 教务业务表(edu_前缀)
    年级、班级、学生、教师、学籍、排课、考勤、考试、成绩;
    大文本拆分附属表:edu_student_note(学生长篇备注)
  • 教研业务表(teaching_前缀)
    教研组、教案主表+教案内容附属表、作业、听课记录、资源库元数据
  • 德育业务表(moral_前缀)
    德育配置、积分记录、违纪、班级量化、评优归档表
  • 定时统计快照表(stat_前缀):月度/年度汇总报表,降低实时查询压力
  • 3.3 私有化专属优化点

  • 双模式字段自动适配
    • SaaS多租户:所有业务表联合索引 IX_TenantId_Id,强制过滤租户;
    • 私有化单校:自动移除TenantId字段,索引简化;
  • 大文本优化
    所有LONGTEXT类型单独拆分子表,主列表查询不加载大文本,详情页按需查询;
  • 日志按月自动分表
    程序启动自动检测并创建当月日志分表,后台提供一键归档旧日志功能;
  • 学年数据归档
    毕业年级数据一键迁移至归档表,日常查询过滤归档数据,提升查询速度;
  • 数据库备份机制
    后台可视化配置自动备份周期,备份文件加密存储,支持整库/单表一键恢复;
  • 索引规范
    私有化单校统一索引:主键ID、创建时间、班级/学生关联ID;
  • 权限隔离:MySQL账号仅本地127.0.0.1访问,禁止外网连接。
  • 四、多模块数据交互方案

    4.1 同步实时查询(高频基础数据读取)

    适用场景:教研读取班级学生、德育读取学籍、跨模块基础数据联动查询

  • Core层定义无实现抽象契约接口(IEduQueryService等);
  • 对应业务模块实现契约接口;
  • 其他模块仅注入抽象接口,内存DI调用,强类型DTO交互;
  • 私有化强化行级数据权限:班主任仅可查询本班学生,接口内置数据过滤,杜绝越权;
  • Redis缓存高频查询结果,减少MySQL频繁查询压力。
  • 4.2 异步事件联动(数据变更、批量统计、通知)

    适用场景:新增学生初始化德育积分、考试结束生成统计、班级删除联动清理作业/教案

  • 领域事件实体统一继承Core BaseDomainEvent;
  • 双分发策略(私有化默认本地内存总线,无需启动RabbitMQ):
    • 低配服务器:内存总线本地消费,零中间件依赖;
    • 大数据量场景:切换RabbitMQ,消息持久化防断电丢失;
    • 最低配降级:Redis队列替代RabbitMQ,减少部署组件;
  • 消费失败数据存入mysql异常表,后台可视化手动重放,无需操作中间件;
  • 内置幂等校验,防止重复执行造成数据错乱。
  • 4.3 消息统一规范

    外层统一JSON消息头,Body为强类型实体序列化,禁止手写裸JSON;
    私有化关闭MQ外网端口,仅本地进程通信。

    五、私有化部署专属核心功能模块

    5.1 离线License授权模块(P0必做)

  • 平台运营工具导出离线授权文件(加密);
  • 私有化系统后台导入License,管控:可使用模块、在校学生上限、使用有效期;
  • 完全断网运行,无需联网校验;到期自动切换只读模式,仅支持查询,禁止新增修改;
  • License操作全程记录审计日志。
  • 5.2 一键安装&离线升级模块(P0必做)

  • 安装向导:可视化配置数据库、文件存储路径、管理员账号、队列模式选择;
  • 环境自检:自动校验磁盘、内存、端口、数据库连通性,拦截部署故障;
  • 离线升级:上传Zip增量升级包,执行前自动备份数据库;升级失败自动回滚数据库与程序;
  • 版本兼容校验,禁止跨大版本直接升级;
  • 支持一键重置初始化(仅新客户使用)。
  • 5.3 本地文件存储管理(P0必做)

  • 双存储模式:本地文件夹 / 内网NAS共享目录;
  • 文件分层存储:教案、作业图片、头像、临时导出文件分类隔离;
  • 访问鉴权:所有文件请求携带登录校验,无永久直链,防止隐私泄露;
  • 定时清理临时文件、过期附件,防止磁盘占满;
  • 后台配置全局存储容量上限,超量自动告警管理员。
  • 5.4 轻量化内置运维监控面板(P1同步开发)

    无第三方监控组件,全部内置后台页面:

  • 服务器资源监控:CPU、内存、磁盘使用率;
  • 数据库监控:连接数、慢SQL、数据表容量预警;
  • 定时任务执行记录、队列堆积、消费失败统计;
  • 系统内置告警:磁盘不足、数据库断开、授权即将到期,站内消息通知管理员;
  • 全量日志打包下载,方便售后排查问题。
  • 5.5 等保安全&学生隐私模块(P0必做)

  • 账号安全策略
    • 密码复杂度、90天强制改密、连续5次登录锁定;
    • 内网IP白名单,仅办公网段登录后台;
    • 关键操作(批量删除、清空成绩)二次弹窗确认;
  • 隐私数据处理
    • 数据库身份证、手机号AES加密存储;
    • 页面展示自动脱敏,Excel导出支持一键脱敏开关;
    • 敏感数据导出、查看单独留存审计日志,留存3年;
  • 内网传输安全
    • 支持离线导入本地CA证书,全站HTTPS加密;
    • 接口防刷限流、IP黑名单自动封禁恶意访问;
    • 全局XSS过滤,拦截恶意脚本输入。
  • 5.6 离线无外网适配(全功能内嵌)

  • 前端所有JS、CSS、字体本地打包,无CDN、外网资源依赖;
  • 打印、成绩单、奖状模板全部内置本地,断网正常导出打印;
  • 关闭所有外网接口:版本联网检测、在线短信、公有云资源库;
  • 短信、推送组件可关闭,无外网不抛出异常。
  • 六、定时任务私有化适配优化

  • Quartz任务持久化存入MySQL,服务器重启自动恢复未完成任务;
  • 大统计任务(全校月度德育/教学汇总)凌晨低峰执行,白天降低并发;
  • 任务增加分布式锁,多开服务不会重复执行;
  • 后台可视化手动触发任意定时任务,无需操作服务器命令;
  • 内置任务执行日志,失败标记并告警。
  • 七、开发实施顺序(分五期,适配私有化交付节奏)

    一期:底层基座(阻塞所有业务开发,优先完成)

  • Core核心层:部署模式切换、MySQL上下文、权限、离线License、事件总线、队列封装、隐私加密工具;
  • Common通用工具:一键备份、离线升级、文件管理、Redis缓存防护;
  • Api.Host启动项目、中间件、DI扩展;
  • 基础系统表迁移脚本、安装初始化逻辑。
  • 二期:核心业务模块(最高优先级)

  • Module.Edu 教务全模块开发;
  • Blazor校内教务配套页面、系统管理员配置面板;
  • 内置运维监控、数据库备份恢复功能。
  • 三期:次核心业务模块

  • Module.Teaching 教学教研模块开发;
  • 前端教研资源库、作业、听课管理页面;
  • 文件NAS存储适配、离线打印模板管理。
  • 四期:次要业务模块 + 安全合规完善

  • Module.Moral 轻量化德育模块;
  • 完整等保安全功能:IP白名单、数据脱敏、审计日志;
  • 离线安装程序、离线升级包功能开发。
  • 五期:交付配套工具

  • PlatformTool平台运营工具(生成离线License、制作升级包);
  • 全套部署文档、客户使用手册、数据库运维手册;
  • 全系统bug修复、性能优化、低配服务器适配调优。
  • 八、编码与部署约束规范

    开发编码约束

  • 所有实体继承Core统一EntityBase,自动适配私有化/SaaS双模式;
  • 禁止硬编码外网地址、第三方云服务;所有外部依赖做成可关闭配置项;
  • 跨模块查询仅允许使用Core抽象契约接口,禁止模块间项目引用;
  • 同步查询禁止使用消息队列,仅数据异步联动使用事件总线;
  • 敏感字段统一使用加密/脱敏工具,禁止明文存储展示学生隐私;
  • 大文本统一拆分附属表,列表查询禁止加载LONGTEXT字段。
  • 私有化部署约束

  • 默认一体化单进程运行(API+定时任务+队列消费),简化客户部署;
  • 提供双队列方案:低配RedisQueue、标准RabbitMQ,安装时可选;
  • 所有配置文件本地化,无远程配置中心;后台可视化修改配置无需重启;
  • 数据库禁止公网访问,仅本地127.0.0.1连接;
  • 所有日志、备份、文件路径可自定义,支持映射本地移动硬盘、内网NAS。
  • 九、风险与优化兜底方案

  • 服务器硬件性能不足:提供低配MySQL参数模板、队列降级、定时任务限流;
  • 学校完全断网:全功能离线可用,无任何强制联网校验;
  • 数据库误操作:自动定时备份、一键恢复、毕业数据归档隔离;
  • 学生隐私泄露:全链路脱敏、数据库加密、文件访问鉴权、操作审计;
  • 升级故障:升级前强制备份,失败自动回滚数据库与程序;
  • 磁盘空间占满:文件自动清理、存储容量预警、日志自动归档。
  • 赞(0)
    未经允许不得转载:171主机测评 » 校园一体化管理系统 1、开发方案(试行)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址