
1. 获取地址https://fifteen.xiaobias.com/source/1882. 项目简介线上辅导班系统是一个基于Spring Boot和MyBatis-Plus框架开发的Web应用系统。项目主要为一个在线教育平台提供后台管理功能和前台用户服务。项目目标为用户学生提供一个浏览课程、公开课、师资力量并进行课程报名、论坛交流的线上学习平台同时为管理员提供一个对课程、报名、论坛、用户等信息进行全面后台管理的系统。核心功能用户端浏览公开课/课程、课程报名、课程留言、课程收藏、论坛发帖/回帖、个人中心信息维护。管理端管理课程、公开课、师资力量信息审核课程报名管理论坛帖子管理用户管理系统基础数据如课程类型、轮播图等。3. 技术栈后端基础框架: Spring Boot (版本2.2.2.RELEASE)持久层框架: MyBatis-Plus (版本2.3), MyBatis (版本2.1.1), JDBC安全框架: Apache Shiro (版本1.3.2)数据库: MySQL (驱动版本5.7.32-log)工具库: Apache Commons Lang3, Commons IO, Hutool, Fastjson, validation-api其他: 集成了百度人工智能SDK (java-sdk4.4.1)用于人脸比对等功能。前端管理后台:核心框架: Vue.js (2.x)UI库: Element UI (通过element-ui引入)路由: Vue Router (hash模式)HTTP库: Axios图表: ECharts构建工具: Vue CLI用户前台:UI框架: Layui核心库: Vue.js (通过CDN引入用于数据渲染), jQuery组件库: Element UI (部分使用), ECharts地图: 高德地图API (VueAMap)4. 详细介绍系统主要分为两个部分用户端和管理端。用户端功能模块用户端的前端页面位于src/main/resources/front/front/pages/目录下功能入口在主框架index.html中定义。主要模块包括公开课 (gongkaike)功能: 展示线上公开课列表和详情。实现:列表页 (list.html): 按类型筛选公开课支持名称搜索。详情页 (detail.html): 展示公开课的图片、介绍和视频文件。GongkaikeController.java提供后端API支持分页查询、详情查看和保存。课程 (kecheng)功能: 核心业务模块展示付费或特定的课程信息并支持用户报名、留言和收藏。实现:列表页 (list.html): 按课程类型、名称、老师进行筛选。详情页 (detail.html): 展示课程的详细信息老师、开课日期、上课时间、课程介绍等并提供“立即报名课程”按钮、留言功能和收藏/取消收藏功能。报名后数据会进入课程报名表等待审核。相关Controller:KechengController.java(课程管理)、KechengBaomingController.java(报名处理)、KechengLiuyanController.java(留言处理)、KechengCollectionController.java(收藏处理)。师资力量 (shizililiang)功能: 展示师资团队信息。实现:list.html展示教师卡片包含头像、姓名、擅长课程等信息。detail.html展示教师的详细介绍。论坛 (forum)功能: 提供一个用户社区用户可以发布帖子、回复其他用户的帖子。实现:列表页 (list.html): 展示所有父级帖子super_ids为空可以按帖子类型筛选。详情页 (detail.html): 展示帖子内容和评论forum_state_types为 2 的回帖。ForumController.java提供后端API区分普通用户和管理员发帖。个人中心 (center)功能: 用户个人信息维护。实现:src/main/resources/front/front/pages/yonghu/center.html页面用户可以修改头像、姓名、联系方式等并查看自己的课程收藏列表。管理端功能模块管理端是一个独立的单页应用 (SPA)位于src/main/resources/admin/admin/目录。模块和权限通过在src/main/resources/admin/admin/src/utils/menu.js文件中配置。基础数据管理功能: 管理系统中的字典数据如公开课类型、课程类型。实现: 对应dictionaryGongkaike和dictionaryKecheng路由通过DictionaryService实现字典数据的增删改查。课程管理功能: 对课程、课程留言、课程收藏、课程报名进行全面管理。实现:课程管理 (kecheng路由): 支持增删改查、上下架管理。课程报名管理 (kechengBaoming路由): 为管理员提供“审核”功能可以变更报名状态待审核/同意/拒绝。课程留言和收藏管理: 支持查看和删除操作。师资力量管理功能: 管理师资介绍信息。实现:ShizililiangController.java提供后端CRUD接口。论坛管理功能: 管理论坛帖子。实现: 对forum表进行管理支持查看、修改、删除。用户管理功能: 管理系统前台用户。实现:YonghuController.java提供后端接口管理端可以进行增删改查、重置密码等操作。轮播图管理功能: 管理系统前台的首页轮播图。实现: 管理config表数据。数据库设计核心表结构 (db.sql)yonghu: 用户表存储账户、密码、姓名、手机号、头像等。kecheng: 课程表存储课程名称、图片、类型、老师、开课日期、上架状态、逻辑删除字段(kecheng_delete)等。gongkaike: 公开课表存储名称、照片、类型、视频、介绍。shizililiang: 师资力量表存储老师姓名、毕业学校、教学年限、头像等。kecheng_baoming: 课程报名表关联用户和课程并记录审核状态(kecheng_baoming_yesno_types)。kecheng_liuyan/kecheng_collection: 课程的留言表和收藏表。forum: 论坛表通过super_ids字段区分主帖和回帖forum_state_types区分帖子状态。dictionary: 通用字典表用于存储各种枚举类型如课程类型、性别、上下架状态等。config: 系统配置表用于存储轮播图地址等配置信息。users: 管理员表默认账户为admin密码为admin。5. 部分代码5.1 核心配置文件application.yml展示了数据库连接、MyBatis-Plus配置和文件上传限制等关键配置。# application.ymlspring:datasource:driverClassName:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://127.0.0.1:3306/xianshangfudaoban?useUnicodetruecharacterEncodingutf-8useJDBCCompliantTimezoneShifttrueuseLegacyDatetimeCodefalseserverTimezoneGMT%2B8username:rootpassword:rootservlet:multipart:max-file-size:1000MBmax-request-size:1000MB#mybatis-plusmybatis-plus:mapper-locations:classpath*:mapper/*.xmltypeAliasesPackage:com.entityglobal-config:id-type:1# 逻辑删除配置logic-delete-value:-1logic-not-delete-value:0configuration:map-underscore-to-camel-case:truecache-enabled:false5.2 Spring Boot 主启动类xianshangfudaobanApplication.java包含SpringBootApplication注解和MapperScan配置是典型的Spring Boot项目入口。packagecom;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.web.servlet.ServletComponentScan;SpringBootApplicationServletComponentScan(valuecom.ServletContextListener)MapperScan(basePackages{com.dao})publicclassxianshangfudaobanApplication{publicstaticvoidmain(String[]args){SpringApplication.run(xianshangfudaobanApplication.class,args);}}5.3 通用权限拦截器AuthorizationInterceptor.java实现了Token验证和跨域处理是系统安全控制的关键。// AuthorizationInterceptor.java (核心逻辑)ComponentpublicclassAuthorizationInterceptorimplementsHandlerInterceptor{OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{// 支持跨域请求response.setHeader(Access-Control-Allow-Origin,request.getHeader(Origin));// ...IgnoreAuthannotation;if(handlerinstanceofHandlerMethod){annotation((HandlerMethod)handler).getMethodAnnotation(IgnoreAuth.class);}else{returntrue;}// 不需要验证权限的方法直接放过if(annotation!null){returntrue;}// 从header中获取token并验证Stringtokenrequest.getHeader(LOGIN_TOKEN_KEY);TokenEntitytokenEntitytokenService.getTokenEntity(token);if(tokenEntity!null){// ... 设置session信息returntrue;}// token无效返回未登录错误// ...returnfalse;}}5.4 通用字典转换方法dictionaryConvert这是系统中的一个关键方法位于DictionaryServiceImpl.java用于将数据库存数字编码如1,2动态转换成前端可读的文字描述如 “男”“女”。// DictionaryServiceImpl.javapublicvoiddictionaryConvert(Objectobj,HttpServletRequestrequest){// 获取监听器中缓存的字典表ServletContextservletContextrequest.getServletContext();MapString,MapInteger,StringdictionaryMap(MapString,MapInteger,String)servletContext.getAttribute(dictionaryMap);// 遍历对象中所有以 Types 结尾的整数字段for(Strings:fieldNameList){Fieldtypes...// 获取Types字段Fieldvalueobj.getClass().getDeclaredField(s.replace(Types,Value));// 获取对应的Value字段// 根据Types字段的值从字典Map中查找对应的文字描述intiInteger.parseInt(String.valueOf(types.get(obj)));// ... 构建字典表key (如: sex_types)Strings2dictionaryMap.get(sbf.toString()).get(i);// 将文字描述赋值给Value字段value.set(obj,s2);}}6. 部分截图***7. 项目总结这个“线上辅导班系统”是一个功能相对完整的教学类Web应用很好地展示了如何使用当前流行的技术栈Spring Boot MyBatis-Plus Vue/Layui来构建一个包含前后端的完整项目。优点架构清晰代码结构层次分明将Controller、Service、DAO、Entity分离符合企业级开发规范。前后端分离管理端采用Vue Element UI实现了前后端分离的开发模式有利于团队协作和后期维护。功能完备涵盖了在线教育平台的核心业务流程从展示课程到报名、审核、互动形成了一个闭环。细节处理使用了逻辑删除、字典表映射、统一异常处理、Token鉴权等设计体现了良好的工程化思维。技术全面项目集成了文件上传、在线视频播放、百度AI、ECharts图表等多种技术组件应用场景丰富。总体而言该项目是一个非常优秀的学习和参考范本尤其适合希望了解Spring Boot完整Web应用开发流程的开发者。通过阅读这份源码可以清晰地掌握如何设计数据库、构建RESTful API、实现后台管理以及开发用户交互界面。