版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringBoot+Vue的IT技能在线学习系统设计摘要在网络化信息化爆发式发展的现今,传统的线下职业技能教育产业会受到时间、空间等各方面因素的制约,存在着需要较高的教育成本等问题。而职业技能在线教育产品借力于互联网技术解决了这些问题,使最优秀的资源传播到四面八方,本文以高效可靠新颖的在线学习方式为目标,设计并且实现了在线学习系统。同时后续因项目运营推广用户量增加导致访问量的骤增,所以需要引入分布式部署与Redis缓存。而且因后续用户不断增加需要不断扩展系统功能,所以系统需要满足可扩展性需求,顾使用SpingCloud微服务架构并引入微服务消息中间件。而在web部分为了使后期维护更加方便、开发更加效率并且提高用户的使用体验所以使用现今十分流行框架Vue.js进行开发。关键词:在线学习;SpringCloud;Vue.js目录TOC\o"1-3"\h\u一、引言 一、引言1.1课题背景“互联网+教育”是随着当今科学技术的不断发展,互联网科技与教育领域相结合的一种新的教育形式[[]明理娃,周启微.浅谈互联网+大背景下的教育产业发展[J].时代金融,2018,000(005):317,322.]。传统的线下职业技能教育产业会受到时间、空间等各方面因素的制约,存在着较高的教育成本等问题。而职业技能在线教育产品借力于互联网技术解决了这些问题,使最优秀的资源传播到四面八方。[]明理娃,周启微.浅谈互联网+大背景下的教育产业发展[J].时代金融,2018,000(005):317,322.IIT技能学习平台以商家到用户的商业模式。就是商家自己录制视频,并将其放到自己拥有的学习平台上,用户按需购买观看视频。这种模式具有方便,快速的特性,商家只要录制高质量视频并做好推广即可快速发展获取盈利,拥有广阔的发展空间。1.2研究目的本文通过查询相关文献资料发现职业技能在线学习平台突破了人们时间、空间的制约限制,提升了用户学习的效率,解决了教学资源分配不均的问题,实现了真正意义上的实现了教学资源的共享化,降低了人们学习的门槛。使用SpringBoot、SpringCloud、Vue等前言框架技术与阿里云OSS、视频点播、微信登录、邮箱验证码、Redis、EasyExcel等众多流行的第三方中间件技术开发此系统,该系统可供需要学习这些IT知识的人使用。1.3国内现有状况分析随着互联网的普及,颠覆了各行各业原始经营模式,教育行业领域的经营模式也发生了重大的改变,由于在线学习平台对比传统线下教育产业先天具有的优势与特性,网络学习平台受到越来越多人的认可与使用,2020年中国基础教育在线行业融资额超过500亿元,超过了此前10年的融资总和,多家在线教育机构融资金额屡创新高。有研究机构预测,到2022年,在线教育的市场规模预计将达到1500亿元,且在线教育用户呈规模性放大的增长。[[]蔡杰.在线教育:引领教育业态创新[J].高科技与产业化,2014(11):32-36.[]蔡杰.在线教育:引领教育业态创新[J].高科技与产业化,2014(11):32-36.二、开发环境以及系统技术栈概述2.1系统开发环境以及使用工具概述IT技能在线学习系统需要安装JDK1.8+MySQL5.7++Node14.14.0的环境,后端开发使用现今最流行的java语言。后端使用集成开发工具IntelliJIDEA,前端使用集成开发工具VSCode,测试使用的是Chrome浏览器。IntelliJIDEA是用于java语言开发的集合开发环境,是业界公认的最好的开发工具之一,也是现在大多数公司中最为普遍使用的集成开发环境,尤其在智能化的代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是非常优秀的。[[]范凯.JavaonJoltAward[J].程序员,2008.[]范凯.JavaonJoltAward[J].程序员,2008.VSCode是是微软出的一款轻量级代码编辑器,具有开源,跨平台,轻量级等优势[[]BridgwaterA.JelasticReleasesPluginForIntelliJIDEA[J].][]BridgwaterA.JelasticReleasesPluginForIntelliJIDEA[J].MySql5.7是一个关系型数据库管理系统,采用标准化的SQL语言,开源免费,广泛地应用在中小型网站的开发,MYSQL数据库体积小、速度快、总体拥有成本低、开放源代码等优点,因此本系统选择MySql5.7作为关系型数据库[[]傅荣会.三种关系型数据库管理系统的比较研究——VisualFoxPro,Access和SQLServer[J].重庆三峡学院学报,2011,27(3):58-59.][]傅荣会.三种关系型数据库管理系统的比较研究——VisualFoxPro,Access和SQLServer[J].重庆三峡学院学报,2011,27(3):58-59.2.2系统技术栈系统开发过程中在开发过程中遵循约定优于配置的原则可以大大减少因版本冲突带来的种种问题,所以本系统在开发前需要对系统使用的技术与版本进行约定,本系统属于前后端分离项目以下将对系统后端和前端所使用技术进行说明:本系统后端语言选用java语言,使用SpingBoot作为系统容器,采用SpringCloud框架与OpenFien、Httpclient进行模块信息的传递,数据库选用Mysql进行持久化管理,采用MybatisPlus数据库管理框架进行自动化操作数据库,并且使用Lomback与Log4进行日志的管理与打印,引入Redius缓存提高系统性能,因本系统为前后端分离系统Api管理是十分重要的所以采用swaggerApi文档框架进行API文档管理与书写,在登录时需要用到Jwt令牌技术对用户的身份信息进行验证。同时在面临各种的业务场景时需要使用对应的技术进行功能实现,本系统最核心的功能是播放课程视频进行学习,所以从经济、可靠性等各方面进行分析最终选用现今是否成熟且流行的阿里云视频点播技术进行课程视频播放与管理。系统需要保存课程图片、教师头像有着存储的需求,选用阿里云OSS进行处理可以有效进行图片管理。平常管理员在导入课程目录的时候需要一个一个的输入这时对于效率来说无疑时十分低效的,考虑使用Poi进行EXCEL操作可以一键式导入以提高管理效率,用户在注册账号时需要获取验证码,因为本系统使用注册方式为Email账号注册所以使用Mail进行验证码的发送。同时在开发过程中使用插件可以使开发过程更加方便效率,所以面对时间格式的处理使用JodaTime工具进行处理,面对系统Io处理流使用CommonsIo工具进行,代码测试使用Junit进行,在面对前端传递过来的json数据需要处理其格式,采用Gson、Fastjson进行格式转换,系统后端具体技术栈约定见表2-1。本系统前端部分从组件化、模块化考虑使用Vue.js框架进行项目的搭建,同时客户端系统因考虑到系统的安全性、高效性所以使用Nuxt后端渲染技术搭建。同时为了使开发过程更加方便效率使用Element-Ui库,为了使用户可以即时观察到加载过程中的加载进度提高用户使用舒适性所以引入Nprogress进度条插件,使用JsCookie更加方便的获取存放在cookie中的用户验证信息,使用Echart进行数据可视化使数据一目了然进行观察,使用VueRouter路由进行前端页面跳转,使用AxiosHTTP库进行前后端的数据交互,系统前端具体技术栈约定见表2-2。表2-1后端技术栈约定技术类型版本SpringBoot容器2.2.2.RELEASESpringCloud框架Hoxton.SR1MySql关系型数据库5.7.0Lomback打印日志管理1.16.8Log4j打印日志信息1.2.17swaggerapi文档框架2.7.0MybatisPlus数据库管理框架3.0.5JodaTime日期时间工具2.10.1PoiEXCEL操作3.9CommonsFileupload文件上传1.3.1Jwt令牌身份验证0.7.0Redis非关系型数据库2.6Mail邮箱验证码1.4.7Fastjson数据格式转换1.2.28Gson数据格式转换2.8.2Junit测试工具4.12Httpclienthttp网络调用4.5.1CommonsIoIo流功能2.6AliyunSdkOss阿里云OSS存储服务器3.8.0AliyunJavaSdkCore阿里云核心SDK4.5.1AliyunJavaSdkVod阿里云视频点播核心SDK2.15.11AliyunSdkVodUpload阿里云视频点播上传1.4.13表2-1前端技术栈约定技术类型版本Vue前端渐进式框架2.5.17Nuxt前端服务器渲染框架2.0.0VueRouter前端路由3.0.1AxiosHTTP库0.21.1ElementUi基于Vue封装UI库2.15.1JsCookieCookie工具2.2.1Nprogress进度条插件0.2.0ECharts图表库5.0.0三、可行性分析现今在线学习系统已经成为人们汲取知识的重要途径之一,在线学习系统可对学习视频进行高效的管理,且用户可以获取学习资源,大大提高学习效率,所有有必要开发在线学习系统。在系统开发之前,我们需要从技术、安全、操作、经济、运行等多个纬度进行分析,确定系统是否可行。3.1技术可行性本系统后端使用以SpringBoot为基础的一套微服务方案SpringCloud开发的,使用分布式部署并且引入了Redius缓存具有较高的性能,使用微服务架构具有良好的可扩展性,且使用的阿里云生态也是现今企业比较流行使用的技术,数据库使用的是现今中小企业广泛使用的Mysql5.7。后台运营系统的前端开发中使用Vue框架进行前端渲染,而前台用户系统开发技术选型选取Nuxt服务端渲染技术实现。现今网络上已存在功能较齐全且具有大量用户的网站可以用来借鉴参考,最后查看相关资料完成本系统,具有良好技术可行性。3.2经济可行性视频类型的网站主要成本在于服务器成本,流量成本,存储成本,流媒体视频研发成本,中小型公司可以采用与服务器和云服务即可有效解决成本问题,因此具有良好的经济可行性[[]陈静.面向成本优化的耦合式视频分发方法研究[D].山东师范大学,2019.][]陈静.面向成本优化的耦合式视频分发方法研究[D].山东师范大学,2019.3.3操作可行性本系统用户UI界面较为简洁友好,操作方便,且具有良好的容错性,用户轻松就能上手使用,因此再操作方面也是可行的。综上可行性分析,本系统的开发是完全可行的。四、需求分析4.1系统总体目标根据前期充分的系统可行性分析和需求分析,开发一个满足用户日常基本学习需求的在线学习系统需要满足以下要求:为用户提供一个拥有高质量的学习视频资源和可靠、安全的在线学习系统网站。在用户日常使用体验上,提供用户友好的使用界面UI,满足用户的基本使用要求,并保证用户信息数的安全,且具有容错性防止用户误点产生的错误。在系统性能上,实现高性能、低耦合、可扩展、经济化、合理化的目标。4.2系统开发原则本系统开发是面向用户的,应从客户角度制定一套规范的开发原则,且需要结合该行业的实际需求,设计一套具体的开发原则,这样才能更加全面、完善的开发一套完整的系统,本系统的设计开发原则如下:性能:需要要考虑用户的访问频率,每个用户每天的访问次数,应该在设计初期就考虑性能问题。使用优秀的结构框架避免因项目上线后期因访问量的骤增而导致服务器崩溃。可扩展:系统可能会随着用户的增多而基本功能不满足用户的使用需要新增功能,为了满足系统将来的扩展需求,系统在开发之前就充分的考虑到了系统各个功能模块之间的耦合性与可扩展性,避免后期因添加功能模块而导致系统出现各种问题。参数化:前后端交换接口设计风格为Restful风格,前后端都对数据进行校验,防止存在恶意攻击情况或者用户误操作提交错误数据情况。实用性:系统应提供用户友好的ui界面,且具有高容错性,防止用户误操作,以提高用户的使用体验。4.3系统总体功能分析本系统总体分为前台用户系统和后台运营系统,模块分为教学相关模块、邮箱验证码模块、统计报表模块、轮播图模块、用户登录模块、订单支付模块、阿里云OSS存储模块、视频点播模块九大模块,每个模块分别实现不同的具体的功能。教学相关模块:可对课程、章节、科目、评论、教师等信息进行管理。邮箱验证码模块:引入Redis实现邮箱验证功能与验证码的过期删除的功能。统计报表模块:通过Eureka调用教学相关模块与用户登录模块数据实现数据统计功能且使用,且定义了定时任务实现每天可以定时更新数据。轮播图模块:因首页是用户访问较高的一个系统页面,所有轮播图引入Redius缓存,使数据调用速度大大提高,提升了用户体验与系统流畅性。用户登录模块:为提升用户体验,系统提供微信登录和普通登录两种登录方式,用户选择使用其中一种进行登录。订单支付模块:系统提供了微信支付的接口。用户观看付费课程需要付费后才能观看。阿里云OSS存储模块:因系统后期可能需要存储较多课程封面,教师头像等信息,所有使用阿里云OSS存储模块进行图片存储,且云存储路径是根据存储时间和图片作用分类生成的,具有较高的可管理性。视频点播模块:在线学习系统最重要的就是视频点播功能,本系统技术用阿里云视频点播,阿里云视频点播具有高效、经济、流畅等特性,使用户有较好的用户体验具体功能详情如下:前台用户系统总体功能如下图:图4-1前台用户总体系统总体功能图后台运营系统总体功能如下图:图4-2后台运营系统总体功能4.4系统功能详细需求分析前台用户系统功能需求下用例图:图4-3前台用户系统需求用例图后台运营系统的需求功能如下用例图:图4-4后台运营系统需求用例图根据上面的前台用户系统用户例图与后台管理系统用例图,可以看出前台用户系统实现的功能有:登录、注册、观看课程视频、购买课程、查看讲师信息、退出等功能,具体功能描述如下:登录功能:系统提供微信登录和普通登录两种登录方式,用户选择使用其中一种进行登录。当用户首次使用微信登录进入系统时,系统会获取用户微信头像和用户微信名信息自动在数据库注册账号并登录。后续用户再使用微信登录登录系统时,系统会判断用户微信头像和用户微信名信息是否发生改变,改变了则更新数据库中的用户信息后登录,否则直接登录。当用户使用普通登录时输入相应信息即可登录。注册功能:本系统注册需要用户输入邮箱、验证码、密码信息。用户在获取验证码过程时,必须先输入邮箱,系统判断邮箱格式是否正确,邮箱格式不正确时系统将会提示用户,当邮箱格式正确时用户可以获取验证码,验证码有效时长为3分钟,再次获取验证的间隔时间为60秒。用户输入所有信息后点击注册,系统系加密码并保存用户信息跳转到登录页面。观看视频功能:用户使用观看视频功能时必须是登录状态,否则这回则会提示用户未登录并且跳转到登录界面,如果用户已登录则判断课程是否免费,如果视频课程为免费课程用户可直接观看。如果是付费课程,用户到购买课程页面购买后观看课程视频,。购买课程功能:用户对于付费课程需购买完毕才能观看,系统提供微信支付界面,用户可扫码付款。系统每秒自动向后台发送请求判断用户是否已经付费,未付费则不作操作,当用户付费完成则会提示用户付费完成并跳转到观看页面。查看讲师信息功能:用户可查看讲师信息,在讲师列表页面有该讲师所讲授的所有课程,用户可查看讲师信息中直接点击观看该讲师所讲授的课程。退出功能:用户点击退出按钮。系统清空浏览器cookie中存放的用户信息,并且跳转到用户登录页面[[]单点登录系统的跨浏览器Cookie机制安全性优化研究[D].武汉理工大学.][]单点登录系统的跨浏览器Cookie机制安全性优化研究[D].武汉理工大学.后台运营系统功能包括登录退出、课程分类管理、讲师管理、课程管理、轮播图管理、统计分析等功能,具体功能描述如下:登录退出功能:用户登录需输入账号和密码,账号密码正确登录到系统,即可管理系统。当用户点击退出按钮系统退出时,系统清空Cookie中的用户信息跳转到登录页面。讲师管理功能:用户可查询讲师信息、删除讲师信息、修改讲师信息或者增加讲师信息,其中查询讲师信息系统默认为查询所有讲师信息,但系统也提供按需查询功能,用户可根据需要输入过滤条件后点击查询按钮即可实现按需查询。课程分类管理功能:用户拥有查询分类列表、添加分类、删除分类、课程分类导入的权限,其中查询分类列表系统提供的显示方式为二级树状目录形式显示,默认会查询所有一级二级目录,且提供过滤功能,用户可在过滤表单输入过滤文字,系统会根据文字模糊查询匹配的目录显示。添加分类功能用户可根据课程目录需求添加一级分类或者二级分类,但是添加二级分类的前提必须先要有二级分类所属的父级分类即一级分类否则系统将会提示用户。另外课程分类导入功能,用户可选取按格式编辑好的.xsl文件导入,即可直接导入创建树状目录,在系统内部会判断文件满足条件且文件内部格式是否满足条件(如出现单元格),如果不满足则提取满足部分导入并提示用户错误所在。且页面提供了一个下载课程模板按钮,当用户点击按钮则系统会重阿里云OSS中下载标准模板,用户即可根据模板按需修改后导入创建目录。课程管理功能:用户可查询课程信息、编辑课程信息、删除课程、发布课程,其中查询课程默认为查询所有课程信息,用户也可根据需要筛选课程信息,当用户使用编辑课程信息、编辑课程和发布课程的功能时,系统会判断url地址中是否携带id,如果携带则是编辑信息否则则是发布新课程,编辑课程和发布课程都需要编辑课程大纲和编辑课程基本信息,其中编辑课程大纲时用户可根据需要添加章节、添加小节、添加小节视频、删除章节、删除小节、删除小节视频,当信息填写完成后提交就可以完成修改或发布课程。统计分析功能:用户可生成指定日期统计报表或查询报表详情,其中日期统计报表系统内部会在每日凌晨一点自动生成同时用户也可手动更新生成。查询报表详情可分为学员登录数统计、学员注册数统计、学员播放数统计、每日课程数统计四种统计方式,用户选定完成统计方式后再选定查询日期区间点击查询按钮即可实现查询指定统计报表。轮播图管理功能:用户可查询轮播图信息、删除轮播图、修改轮播图信息或者增加轮播图,其中查询轮播图信息默认为查询所有轮播图信息,但系统也提供按需查询功能,用户可输入过滤条件点击查询按钮即可按需查询轮播图信息。4.5系统数据库需求分析根据之前的系统功能需求分析,设计实现系统功能所需实体:用户、轮播图、订单、订单日志、课程、课程简介、评论信息、教师、课程科目、课程章节、课程视频。在实体设计过程中从用户日常使用角度出发,本系统最主要的功能为观看课程视频,用户可以观看多个视频,同时视频又可以被多个用户观看,另外因为有些课程为付费课程,用户需支付后才可观看,其中因为用户可能有多个购买需求所以一个用户有可以支付多个订单,其中在一个订单支完毕后会产生一个对应订单的订单日志用以记录用户购买记录,当用用户观看完视频后可评论视频,一个视频可以被多个用户评论,且一个用户页可以评论多个视频,另用户可以点击系统首页中的轮播图跳转到现在较热门的课程信息页面观看视频,其中一个用户可以点击查看多个轮播图,同时一个轮播图页可以被多个用户点击查看。从课程功能需求角度设计实体课程实体,首先一个课程拥有着一个相对应的课程简介,一个课程也必须有一个教师进行教授,但是一个教师却可以讲师多个课程,另外在课程有多个用户评论的信息。从课程内部结构中分析,可以分为课程所属科目、课程章节、课程视频三个部分,一个课程中有多个课程科目,例如前端课程中有HTML、CSS、JS,一个课程科目中可以有多个章节,如一章节、二章节,每个章节又由多个课程视频组成。均上所述设计出的如下图4-5与图4-6的数据库实体与实体关系。图4-5数据库ER图1图4-6数据库ER图2系统设计与实现5.1系统总体设计5.1.1系统架构设计根据系统需求,设计并实现出一个具有安全性、可靠性、稳定性的系统,且本技术栈选型都是选取目前安全性极高且具有完成生态链的主流技术。后端开发过程中使用到技术架构有:SpringCloud+Nginx+Swagger+SpringBoot+EasyExcel+
HttpClient+
MySQL+MyBatis-Plus+Maven。前端开发过程中使用到技术架构有:Vue.js+Nuxt+Node.js+Element-Ui++ECharts。其他涉及到的中间件包括Redis、阿里云OSS、阿里云视频点播。使用POI完成课程信息批量上传,分布式单点登录使用了JWT、第三方支付使用了微信支付。在业务实现中使用了ECharts做图表展示,QQ邮箱获取验证码,EasyExcel完成分类批量添加、JWT实现注册分布式单点登录。项目采取前后端分离开发,后端采用SpringCloud微服务架构,持久层用的是MyBatis-Plus框架,微服务分库设计,使用Swagger生成接口文档。本系统开发过程中遵守阿里巴巴开发手册规范,使得开发更加标准化,从而提高代码质量。系统总体技术架构如下图:图5-1系统架构图5.1.2系统接口设计本系统为前后端分离项目,所以接口是前台所有数据的提供者。一个优秀的的系统接口必须是功能表述清晰,易于理解和维护的。本系统的接口的设计需要满足以下要求:命名必须规范、有意义,可以一目了然的知道接口实现的功能。尽量避免冗余重复字段,在新增加接口时要注意是否已存在同意义命名,保持命名一致,尽量不要同时存在多种同意义字段名称。每个接口实现的功能单一。在每个接口上都书写描述注释,需要说明接口实现的业务,且尽量精简简洁,力求书写最有价值的内容。客户端能处理的逻辑就不要给服务端处理,减少服务端压力。使用Restful风格,统一返回统一的数据响应格式,约定好业务层错误编码,每个编码可以返回携带错误信息。[[]汤海京,徐友春,朱红军,等.一种在HTTP通信中统一处理请求应答的方法:,CN101557411[P].[]汤海京,徐友春,朱红军,等.一种在HTTP通信中统一处理请求应答的方法:,CN101557411[P].下面是本系统在开发过程中约定的数据响应格式和返回状态码说明:响应格式:{“success”:true,“code”:20000,“message”:“”,“data”:{}}返回状态码说明:状态码code说明20000成功20001失败20006SQL错误20007支付中20008未登录本系统后端为分布式多模块开发,为了方便管理需规定接口使用的一级字段需与模块对应。现接口一级字段与各模块对应规定如下:接口一级字段模块cms轮播图模块msm邮箱验证码模块order订单相关模块statistics统计报表模块teacher教学相关模块ucenter用户相关模块vod视频点播模块oss阿里云OSS模块5.1.3系统业务流程设计用户注册业务流程设计用户注册业务逻辑描述见图5-2,当用户提交注册信息包括用邮箱、验证码、密码信息,系统首先会判断用户输入的邮箱格式是否合法,如果邮箱格式错误则提示用户邮箱格式错误,如果邮箱格式正确就继续判断用户输入的检验码信息是否正确,如果验证码错误提示用户验证码错误,最后一切合法会先加密用户输入的密码并且保存到数据库,此时注册用户信息成功。图5-2用户注册时序图用户获取邮箱验证码业务流程设计用户获取邮箱验证码业务逻辑描述见图5-3,用户点击按钮获取邮箱验证码,系统会检测用户输入邮箱的格式是否正确,不正确直接提示用户邮箱输入信息错误,如果用户输入的邮箱正确系统会内部调用Mail接口发送邮箱验证码,验证码信息将会保存到Redius缓存中并且3分钟后就清空Redius中存放的验证码信息,如果系统发送邮箱验证码期间出现错误,将会提示用户获取验证码信息失败。用户在3分钟内输入验证码都是有效的。图5-3用户获取邮箱验证码时序图用户登录业务流程设计本系统提供了两种登录方式分别是普通账号+密码登录方式和微信邮箱登录方式。普通登录:用户普通登录业务逻辑描述见图5-4,用户提交登录信息,系统会先判断用户输入的邮箱密码的信息是否正确,如果错误返回的话直接返回相应的错误信息,正确的话调用生成token,接口返回token信息登录成功。微信登录:用户微信登录业务的逻辑功能的描述可见图5-5,用户扫描微信二维码登录时,系统调用微信登录接口获取数据库中的用户的信息判断用户是否存在,如果不存在将会创建用户并且返回token信息,存在则判断用户信息是否改变,发生改变则更新用户信息并返回token,否则则直接返回token,此时用户登录成功。图5-4用户获普通登录时序图图5-5用户获微信扫码登录时序图用户播放课程视频业务流程设计用户播放课程视频业务逻辑描述见图5-6,当用户观看视频时查询课程信息,系统查询获取数据库信息后根据获取到的对应课程信息判断课程是否免费,如果免费的话系统调用阿里云视频点播播放课程视频,如果是付费课程的话系统将会根据课程信息判断用户是否已购买视频,未购买不允许用户观看,如果已购买则调用阿里云视频点播播放视频。图5-6用户播放课程视频时序图用户播放课程视频业务流程设计用户购买课程系统内部业务逻辑描述见图5-7,付费课程用户需要扫码支付购买后才能观看,当用户扫码支付后,系统会将用户的购买信息提交到后台,系统修改课程信息为已购买,并且同时生成数据库内部会生成并保存订单日志,成功后提示用户支持成功,用户即可观看已购买过的视频课程。图5-7用户购买课程时序图系统总体业务流程设计当用户进入登录页面可以选择登录或者注册,用户注册时需要先输入邮箱和密码,如果邮箱格式不正确系统会提示用户邮箱不正确用户需重新输入密码,当邮箱格式输入正确时用户可以点击按钮发送邮箱验证码,系统自动发送验证码,用户填写完邮箱验证码则可以提交注册。[[]李峰.巧修163邮箱不能登录的问题[J].网友世界,2010,000(007):48-48.][]李峰.巧修163邮箱不能登录的问题[J].网友世界,2010,000(007):48-48.前台用户系统业务流程图如下:图5-8前台用户系统流程图5.1.4系统开发流程设计本系统使,使用git开发流程,用gitee托管作为远程仓库,通过git进行版本控制,开发流程采用了目前业界主流开发流程,流程分为五个分支,五个分支分别是:dev:开发分支:fature:开发具有新特性的功能分支release:发布分支:发布分支没有问题则可以合并到主分支mastre:主分支hotfix:紧急修复分支:当系统出现问题需要紧急修复时使用此分支具体git开发流程图如果下:图5-9git开发工作流程图5.1.5系统工程模块设计下图为本系统工程结构如下图:图5-10项目结构图根据上项目结构图所示,本项由父工程项目learn-parent以及下级10个子模块工程聚合工程所构成成。系统的每个模块的所提供的服务功能如下:learn-parent:在线学习根目录(父工程)learn-cms:轮播图api接口服务learn_common:公共模块,所有模块都可以依赖于它learn_eureka:服务发现模块learn-msm:邮箱验证码api接口服务learn-order:订单相关api接口服务learn-oss:阿里云ossapi接口服务learn-statistics:统计报表api接口服务learn-teacher:教学相关api接口服务learn-ucenter:会员api接口服务learn-vod:视频点播api接口服务5.1.6系统数据库设计根据系统需求分析与数据库需求分析设计了如下系统表结构信息:图5-11PDM图表5-1轮播图表(crm_banner)列名数据类型是否为空默认值备注idchar(19)NOnullIDtitlevarchar(20)YESnull标题image_urlvarchar(500)NOnull图片地址link_urlvarchar(500)YESnull链接地址sortint(10)unsignedNO0排序is_deletedtinyint(1)unsignedNO0逻辑删除gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为轮播图表用以存放轮播图的信息。表5-2课程章节表(edu_chapter)列名数据类型是否为空默认值备注idchar(19)NOnull章节IDcourse_idchar(19)NOnull课程IDtitlevarchar(50)NOnull章节名称sortint(10)unsignedNO0显示排序gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为课程章节表用以存放课程章节信息,其中字段course_id课程ID用来关联章节所属的课程。5-3评论信息表表(edu_comment)列名数据类型是否为空默认值备注idchar(19)NOnull评论IDcourse_idvarchar(19)NOnull课程idteacher_idchar(19)NOnull讲师idmember_idvarchar(19)NOnull会员idnicknamevarchar(50)YESnull会员昵称avatarvarchar(255)YESnull会员头像contentvarchar(500)YESnull评论内容is_deletedtinyint(1)unsignedNO0逻辑删除gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为评论信息表,用以存放评论信息,其中字段课程id用以关联评论所属的课程,讲师id用以关联此课程所讲授的讲师。5-4课程信息表(edu_course)列名数据类型是否为空默认值备注idchar(19)NOnull课程IDsubject_idchar(19)YESnull课程科目IDteacher_idchar(19)YESnull课程讲师IDtitlevarchar(50)NOnull课程标题pricedecimal(10,4)NO0课程销售价格lesson_numint(10)NO0总课时covervarchar(255)YESnull课程图片路径buy_countbigint(10)YES0销售数量view_countbigint(10)YES0浏览数量versionbigint(20)YES1乐观锁statusvarchar(10)YESDraft视频状态gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间is_deletetinyint(4)YESnull逻辑删除上表为课程信息表用以保存课程信息,其中subject_id用以关联课程内所拥有的学科,teacher_id用以关联讲授该课程的老师。表5-5课程简介表(edu_course_description)列名数据类型是否为空默认值备注idchar(19)NOnull课程IDdescriptiontextYESnull课程简介gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间is_deletetinyint(4)YESnull逻辑删除上表为课程简介表用以存放课程的简介,其中的id与所属课程的id相同。表5-6课程科目表(edu_subject)列名数据类型是否为空默认值备注idchar(19)NOnull课程类别IDtitlevarchar(10)NOnull类别名称parent_idchar(19)NO0父IDsortint(10)NO0排序字段gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为课程科目表用以存放课程科目的信息,其中因课程分布为树状分布所以parent_id的值用以存放他所对应的父课程科目ID,如果为顶层学科就值就为0。表5-7讲师信息表(edu_teache)列名数据类型是否为空默认值备注idvarchar(19)NOnull讲师IDnamevarchar(20)NOnull讲师姓名introvarchar(255)NOnull讲师资历careertextYESnull讲师简介levelint(10)NOnull讲师头衔avatarvarchar(255)YESnull讲师头像sortint(10)unsignedNO0排序is_deletedtinyint(1)unsignedNO0逻辑删除gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为讲师信息表,用以存放讲师信息。表5-8课程视频信息表(edu_video)列名数据类型是否为空默认值备注idchar(19)NOnull视频IDcourse_idchar(19)NOnull课程IDchapter_idchar(19)NOnull章节IDtitlevarchar(50)NOnull视频名称sortint(10)unsignedNO0排序字段play_countbigint(20)unsignedNO0播放次数is_freetinyint(1)unsignedNO0是否可以试听video_idvarchar(100)YESnull视频资源idvideol_namevarchar(100)YESnull视频文件名称durationfloatNO0视频时长(秒)statusvarchar(20)NOnull视频状态sizebigint(20)unsignedNO0视频文件大小)versionbigint(20)unsignedNO1乐观锁gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为课程视频信息表,用以存放上传到阿里云视频课程的信息,其中course_id课程ID用以关联该视频所属的课程,chaper_id章节ID则用以关联该视频所在的课程章节下。表5-9订单信息表(t_order)列名数据类型是否为空默认值备注idchar(19)NOnullidorder_novarchar(20)NOnull订单号course_idvarchar(19)NOnull课程idcourse_titlevarchar(100)YESnull课程名称course_covervarchar(255)YESnull课程封面teacher_namevarchar(20)YESnull讲师名称member_idvarchar(19)NOnull会员idnicknamevarchar(50)YESnull会员昵称mobilevarchar(20)YESnull会员手机total_feedecimal(10,2)YES0.01订单金额(分)pay_typetinyint(3)YESnull支付类型statustinyint(3)YESnull订单状态is_deletedtinyint(1)unsignedNO0逻辑删除gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为订单信息表用以存放用户支付的订单信息,其中course_id课程id用以关联该订单所支付的课程。表5-10支付日志信息表(t_pay_log)列名数据类型是否为空默认值备注idchar(19)NOnull日志IDorder_novarchar(20)NOnull订单号pay_timedatetimeYESnull支付完成时间total_feedecimal(10,2)YES0.01支付金额(分)transaction_idvarchar(30)YESnull交易流水号trade_statechar(20)YESnull交易状态pay_typetinyint(3)NO0支付类型attrtextYESnull其他属性is_deletedtinyint(1)unsignedNO0逻辑删除gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为支付日志信息表用以存放支付日志信息,用户支付完课程后会产生一个支付日志的信息,其中order_no订单号就是用以对应日志所相对于的订单。表5-11用户信息表(ucenter_member)列名数据类型是否为空默认值备注idchar(19)NOnull用户idopenidvarchar(128)YESnull微信openidE-mailvarchar(20)YESnull邮箱passwordvarchar(255)YESnull密码nicknamevarchar(50)YESnull昵称sextinyint(2)unsignedYESnull性别agetinyint(3)unsignedYESnull年龄avatarvarchar(255)YESnull用户头像signvarchar(100)YESnull用户签名is_disabledtinyint(1)NO0是否禁用is_deletedtinyint(1)NO0逻辑删除gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为用户信息表,用以存放用户信息。表5-12网站统计日数据表(statistics_daily)列名数据类型是否为空默认值备注idchar(19)NOnull主键date_calculatevarchar(20)NOnull统计日期register_numint(11)NOnull注册人数login_numint(11)NO0登录人数video_numint(11)NO0播放视频数course_numint(11)NO0新增课程数gmt_createdatetimeNOnull创建时间gmt_modifieddatetimeNOnull更新时间上表为网站统计日数数据表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小画家活动策划方案(3篇)
- 施工方案渲染图片(3篇)
- 椰子饮品活动策划方案(3篇)
- 涂漆钢格板施工方案(3篇)
- 电厂清扫施工方案(3篇)
- 绘画春色活动策划方案(3篇)
- 装修顺序施工方案(3篇)
- 马术活动策划方案下载(3篇)
- 基于PDMS的柔性微结构压力传感器制备及性能研究
- 4.3.2图形的放大和缩小六年级下册数学同步练习人教版含答案
- 塞纳帕利胶囊-临床药品应用解读
- 2026年湘西民族职业技术学院单招职业技能考试题库附答案
- 化学品MRSL培训教材
- 雨课堂学堂在线学堂云《营养与健康讲座(福建农林大学 )》单元测试考核答案
- 蓖麻种植与加工产业发展调研报告
- 尿路刺激征课件
- 梧州市万秀区龙湖镇旺步村富林建筑用砂岩矿环境影响报告表
- 注塑成型工艺技术指导书
- 2025冠状动脉功能学临床应用专家共识课件
- 《中华人民共和国公司法》知识竞赛题题库及答案
- 玄武门之变教学课件
评论
0/150
提交评论