Technical System Architecture

分层系统架构与技术栈

真实还原系统分层架构拓扑:中心纵向贯穿浏览器前端、API安全鉴权、培训业务领域层、持久层及人大金仓数据库;侧边协同缓存与系统工具,并严格区分当前实现的 Web 班牌与预留的外部硬件适配器。

系统全局分层拓扑与通信边界

实线代表已上线的当前实现;虚线代表规划中的预留扩展接口

当前实现 (IMPLEMENTED) 预留接口 (RESERVED)
Browser / Frontend (浏览器客户端) Vue 2.6 · Element UI · Axios · 路由动态加载 sys_menu · Web 电子班牌路由 (/equip/board) HTTP / JSON (RESTful API) API & Security (接口网关与安全中枢) Spring Security 过滤器链 · JWT 无状态令牌解析 · RBAC 角色权限验证 (@PreAuthorize) 统一异常捕获 (GlobalExceptionHandler) · 身份证脱敏过滤器 (末4位掩码) Redis 缓存支撑 端口: 6379 (DB 0) • 用户登录 Token 缓存 • 验证码防重放缓存 • 权限路由元数据 System Tools & 审计 系统工具与合规底座 • Swagger 接口平台 • 操作日志 (OperLog) • 表单构建与代码生成 Training Domain (核心教务业务领域层) 主数据服务 (Master Data) 教师/学员/课程/教室/场地 排课调度引擎 (Scheduling) 四维预检 / Warning / 场地XOR 现场执行服务 (Execution) 报到强事务 / 考勤打卡幂等性 结训流转服务 (Completion) Plan状态流转 / 退训保护不变量 电子班牌与物联适配 当前实现 (CURRENT) Web 班牌路由 / 降级映射 预留接口 (RESERVED) 硬件闸机 / 班牌外部协议 Persistence (数据持久层与连接池) MyBatis 3.5 · PageHelper 分页插件 · Alibaba Druid 数据库连接池 (单主库配置) KingbaseES (生产主库) KingbaseES V009R003C018 (JDBC依赖 8.6.0) · 物理外键与唯一索引保障 · 21张业务表

架构设计原则与关键实现边界

明确当前生产可用能力与后续规划接口的边界,坚守工程事实真实性。

安全鉴权与敏感数据保护

CURRENT

无状态 JWT 机制:采用标准 Bearer Token 进行会话保持,服务端通过 Redis 维护令牌白名单;
脱敏治理:学员身份证在落库时保存散列与哈希,前端统一返回末4位掩码,杜绝明文传输;
权限管控:依托 RuoYi 标准注解 @PreAuthorize 实现按钮级权限拦截。

排课预检与强一致性保护

CURRENT

四维防重叠预检:将教师时间冲突作为阻断校验,教室/场地/班级重叠作为 Warning 预警由教务员决策;
零旁路保存:标准 POST 保存禁止 force/override 参数,保障排课合规;
场地 XOR 互斥:物理保证教室与实训场地二选一,不可并存或两空。

物联网设备与外部适配器边界

区分已实现 vs 预留

当前实现:提供标准 RESTful API 及 Web 电子班牌路由 /equip/board,课表根据教室班牌数量 (0/1/N) 智能映射 boardSn;
预留扩展 (RESERVED):物理硬件人脸打卡闸机适配协议、专属嵌入式班牌通讯协议预留接口规范,暂未接入实际物理硬件。