--- title: 埃学习 date: 2026-05-27 --- # 一、项目背景   为解决企业内部线下培训成本高、进度难追踪的问题,开发了一套企业在线学习平台,用于员工课程学习、在线考试、培训计划管理与数据统计分析,已全面接入企业微信工作台。 # 二、系统架构 ![架构图](../images/aixuexi_arch.png) # 三、核心模块 ## 3.1 员工端 1. 课程学习(视频播放、进度记录、课程评论) 2. 在线考试(随机试卷、自动阅卷) 3. 学习记录和统计 ## 3.2 管理员端 1. 课程管理(视频上传、章节管理) 2. 培训计划管理(按部门/岗位下发) 3. 考试与题库管理 4. 人员与组织管理 5. 员工学习数据统计 # 四、技术栈 | 层级 | 技术 | |---|---| | **前端** | Vue 3、Element Plus、Vue Router、Pinia、DPlayer (视频播放)、@vue-office (文档预览)、ECharts (数据可视化)| | **后端** | Spring Boot 3、Spring MVC、Sa-Token (鉴权)、MyBatis-Plus | | **中间件** | Redis、企业微信 SDK | | **存储** | MySQL 8.0 (业务数据)、AList (视频/文件资源存储) | | **视频处理** | Java JAVE 2 (FFmpeg 封装,视频压缩转码) | | **运维** | Docker、Fluent Bit (日志采集)、OpenObserver (日志可视化) | # 五、核心设计 - 基于 Spring Boot 3 + MyBatis‑Plus 构建稳定的后端架构,通过 Sa‑Token 实现接口级鉴权,保障系统安全与权限可控。 - 集成企业微信 SDK,实现企业微信工作台免登录认证;通过企业微信消息通知机制,自动推送学习任务与提醒。 - 设计课程、学习计划与考试等核心业务模型,支持批量下发培训任务;实现随机组卷、自动阅卷与成绩统计,并自动提醒员工完成学习任务。 - 基于 JAVE2(FFmpeg)实现视频自动压缩与转码,适配多终端播放;采用 AList 作为统一文件存储平台,集中管理音视频及课件资源。 - 基于 Vue 3 + Element Plus + Pinia 构建管理员端与员工端页面,集成 vue‑office 实现多格式文档在线预览,集合ECharts实现多维度数据分析。 - 使用 Docker 容器化部署,结合 Fluent Bit + OpenObserver 构建统一日志监控体系,提升系统可观测性与运维效率。 # 六、难点/亮点 ## 5.1 公网视频播放卡顿 * 问题   服务器公网带宽小,高清视频并发播放严重卡顿。 * 方案   上传视频后,使用JAVE2调用FFmpeg将视频统一压缩为720p的清晰度视频。 * 效果   视频体积减少60%+,公网环境播放流畅。 ## 5.2 学习进度防作弊 * 问题   员工学习视频课程时,可通过拖动进度条快速完成课程,无法真实反映学习行为,存在“刷课”风险。 * 方案   根据管理员设定的课程学习时长,在员工学习时,启动定时器;每分钟会保存学习时长至数据库中,下次学习时,直接跳转至上次学习进度;课程是否完成已定时器结束为准。 * 效果   有效防止通过拖拽进度条刷课,保证学习时长真实可信;同时支持断点续学,避免重复学习,满足企业培训考核与合规审计要求。 ## 5.3 学习计划通知 * 问题   培训计划、考试通知无法及时触达员工,导致培训参与率低、管理成本高。 * 方案   在发布培训计划时,调用企业微信消息推送接口,自动向指定员工发送应用消息通知;结合定时任务,对未完成培训的人员进行周期性提醒。 * 效果   培训通知实时触达,未读提醒显著提高培训完成率;管理员无需手动维护人员信息,降低了系统运维成本。 # 七、成果 1. 平台全面替代线下培训,年度培训计划完成率由 60% 提升至 95% 以上,满足了企业合规培训要求。 2. 过视频压缩方案解决了公网带宽瓶颈,结合企业微信自动化通知,大幅降低人工催办成本,整体培训运营成本下降约 40%。 3. 实现了学习进度防作弊与学习记录全跟踪,为公司提供精准的数据统计报表,支撑人才盘点与绩效评估。