在线教育系统设计_第1页
在线教育系统设计_第2页
在线教育系统设计_第3页
在线教育系统设计_第4页
在线教育系统设计_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章绪论绪论问题的提出随着社会的发展以及时代的进步,国家对教育的重视程度越来高,教育是衡量一个国家潜在力量的重要依据。现在我们国家的教育方式还是以学校课堂教学为主,我们称之为传统教育。传统教育虽然有利于学科知识的系统传授,教师和学生可以实时沟通交流各自的想法,但也存在很多弊端。传统教育以教师、教材为中心,信息容量小,不利于开阔学生视野,特别是当今社会正处于信息大爆炸时代,这一缺点更加明显,而且,我们国家教育资源分布较为不均衡,一线城市与四五线城市以及农村的教育水平存在很大差距,此外,传统教育对于学习时间和空间限制较大,传统教育的主战场在学校课堂,一些学生由于身体等原因无法在规定时间内学习会造成所学知识的不完整,也会影响以后知识学习的连续性。随着计算机技术、网络技术的快速发展以及云计算、大数据、人工智能(AI)的出现,社会信息化程度极大提高,计算机及互联网技术给社会的各行各业带来了极大的便利。网络教育作为互联网在教育方面的重要应用,逐渐被社会所认可,网络教育弥补了传统课堂教育在空间、时间以及师资力量不均衡等方面的不足,它是随着现代化信息技术快速发展而产生的一种新型教育方式。网络教育有丰富的课程资源以弥补传统教育资源不均衡的缺陷,且不受时间和空间的限制,只要有网络便可以自由地学习,让教育由原来的以教为主变为现在的以学为主,在现代知识经济时代下,有效帮助人们树立终生学习观。为此,我开发了一款在线教育系统(以下简称本系统/该系统/系统/教育系统/智学新知),并给它起了一个名字叫做“智学新知”。智学新知是一款基于主流WEB技术SpringBoot的在线教育平台,用户可以在该系统上共享教育资源、主动学习感兴趣的知识、讨论交流、在线考试等。相对于市面上已经存在的软酷网、VIPKID、好未来等平台,该系统具有综合性及开放性的特点,不拘束于某一特定的方向,完全实现用户共享教育资源,从而弥补传统教育资源分布不均衡的缺陷。研究的意义在当今互联网快速发展的时代,该系统在教育行业具有重要的应用价值:教育资源共享:当今社会教育资源分布较为不均衡,三四线城市及农村与一线特大城市的师资力量、教学软硬件设施等教育资源差距较大,而该系统构建了一个资源共享、课程共享的平台,教师可以将自己的精品课程以及教学方法在该系统发布,学生进行学习以弥补自身知识的不足,教师也可以相互借鉴共同提高,从而达到教育资源的共享,弥补教育资源分布不均衡的缺陷。学习时间空间自由:传统教育的主战场在课堂,但是课堂的时间及地点有限,有一些学生不能及时理解课上教师所教授的内容或者由于身体等原因导致无法在规定时间内学习而造成所学知识不完整。而在线教育系统可以让学生在空余时间对所学知识进行巩固和补充。该系统具有多向性及反馈性:学习者在学习过程中会提出许多有价值的问题和要求,这些将有可能产生新的教学思想和方法,可能会影响教学设计与改革。1.3国内外研究现状当今社会已经从工业社会进入了信息社会,教育也正在向信息化现代化方向发展。我国大多数学校都已经装备了多媒体设施,学生的成绩以及试卷的批阅也都在网上进行,这是计算机及网络在教育方面的典型应用。在网络教学平台方面,也出现有软酷网、VIPKID、好未来等平台,但这些平台有的只是侧重一个方向,有的需要收费,有的是自己招聘的老师进行讲解,而综合性开放性的在线教育平台目前并不多见,并且由于传统教学观念的束缚,在线教育平台也并没有得到较好的推广。随着互联网技术的迅速发展,近几年网络教育发展较为迅速,比如美国出现了虚拟大学的办学模式,在该模式下,所有的教学活动和教育管理都是通过互联网技术得以实现。在我国政府对网络教育的倡导下,我国在线教育人数也有较大增长,目前已经超过2亿人。1.4本文的组织第1章绪论。本章主要介绍该课题的提出背景,阐述研究该课题的目的及意义,介绍国内外对于该课题的研究现状,说明全文组织结构。第2章需求分析。本章主要分析该系统的总体需求,包括该系统的功能性及非功能性需求分析,以及该系统的数据分析和业务流程分析。第3章系统概要设计。本章主要阐述该系统设计的原则和方法,描述该系统的基本功能以及部分额外功能模块的设计,并进行数据库的分析与设计。第4章系统详细设计与实现。本章主要针对在线教育系统(智学新知)的主要功能进行详细的设计与实现。第5章系统测试。本章主要介绍了软件测试的基本方法,并且针对在线教育系统(智学新知)设计相应的测试方案,并对该系统的测试结果进行分析和总结。结束语对该课题的研究工作进行分析总结,提出研究结论及进一步的研究工作。致谢对指导或帮助完成该课题研究的教师、学校、同学以及父母等表示感谢,感谢他们对于自己毕业(论文)以及上学期间的指导与帮助。参考文献列出本文以及该课题研究所参考的相关资料信息,表明对他人知识产权及劳动的认可和尊重。第2章需求分析需求分析2.1概述本章采用软件工程方法对在线教育系统(智学新知)进行了需求分析,需求分析在软件开发过程中起到了极其重要的作用,需求的不清晰将导致整个系统开发失败。本章将重点阐述该系统的系统目标、业务流程、功能性及非功能性需求、数据需求等。2.2系统目标本次课题主要设计并实现在线教育系统(智学新知),该系统的主要目的在于实现教育资源的共享,可让用户随时随地学习,而不受时间和空间等因素的限制,帮助教师进行智慧教学。该系统由PCWEB前端和后台服务器组成,基于MVC模式进行开发。系统目标包括:

(1)实现在线学习模块,使用户可以随时随地学习该系统上开放的课程资源,提升自身的知识水平,弥补自身的知识缺陷。实现在线考试模块,使用户可以检测自身所学知识的掌握程度,帮助教师了解学生的学习情况,对成绩进行分析处理,让用户了解自身知识的欠缺,提高用户体验。实现课程管理,教师对自己发布的课程进行增删改查,对于私密课程,可以对该课程的学习学生进行管理。实现系统前后端实时数据交互,可考虑采用分布式来提高该系统的并发性与稳定性。本系统采用B/S结构,方便用户进行使用,只需要有网络和浏览器的计算机即可访问本系统。系统界面简洁美观易用,符合大多数人的使用习惯。2.3业务流程在线教育系统(智学新知)应当包含9大功能模块,分别为个人中心、课程管理、考试管理、课程学习、在线考试、教师阅卷、成绩分析、讨论区、消息通知,下面将分别讲解每个模块重要的业务流程。2.3.1个人中心个人中心模块主要包含用户注册、登录、修改密码等功能,下面将分别介绍它们的业务流程。用户注册新用户使用该系统时可以注册成为该系统的用户,用户注册的时序图如图2.1所示。图2.1用户注册时序图用户登录本系统用户可以登录系统进行相关操作,用户登录的时序图如图2.2所示。图2.2用户登录时序图修改密码本系统用户可以修改自己的密码,保证账号的安全,用户修改密码的时序图如图2.3所示。图2.3修改密码时序图2.3.2课程管理课程管理主要是面向教师使用,教师可以使用该系统创建课程(创建课时、上传课时资料、上传视频等功能与之类似)、删除课程、修改课程、管理学习人员(添加或删除),下面将分别介绍它们的业务流程。创建课程教师可以使用该系统进行课程的创建,创建课时、上传课时资料、上传视频等功能与之类似,这里不再描述,创建课程的时序图如图2.4所示。图2.4创建课程时序图删除课程教师可以删除自己创建的课程,对课时、课时资料、视频等的删除与之类似,这里不再描述,删除课程的时序图如图2.5所示。图2.5删除课程时序图修改课程教师可以修改自己创建的课程,修改课时与之类似,这里不再描述,修改课程的时序图如图2.6所示。图2.6修改课程时序图管理学习人员教师可以为自己的私有课程添加或删除学习人员,这里以添加学习人员为例(删除与之相似)来描述该业务流程,添加学习人员时序图如图2.7所示。图2.7添加学习人员时序图2.3.3考试管理考试管理主要是面向教师使用,教师可以使用该系统创建考试(创建选择题、创建客观题等功能与之类似)、删除考试等,下面将分别介绍它们的业务流程。创建考试教师可以使用该系统进行考试的创建,创建选择题、创建客观题等功能与之类似,这里不再描述,创建考试的时序图如图2.8所示。图2.8创建考试时序图删除考试教师可以删除自己所创建的考试,删除选择题、删除客观题等功能与之类似,这里不再描述,删除考试的时序图如图2.9所示。图2.9删除考试时序图2.3.4课程学习用户登录系统后可以选择课程进行学习,课程学习包括学习课时内容、下载课时资料、浏览课时视频等,下面将分别介绍它们的业务流程。课时内容学习用户登录系统可以选择课程并选择课时进行课时内容的浏览学习,课时内容学习的时序图如图2.10所示。图2.10课时内容学习时序图下载课时资料时序图用户登录系统可以选择课时资料进行下载学习使用,下载课时资料时序图如图2.11所示。图2.11下载课时资料时序图浏览课时视频用户登录系统后可以选择浏览课时视频,让课程内容不仅仅停留在文字,使用户更容易理解课程,浏览课时视频时序图如图2.12所示。图2.12浏览课时视频时序图2.3.5在线考试用户登录系统后,可以对所学课程进行考试,来检测自身对于该课程的掌握程度,教师也可以了解学生的学习情况以及自身授课情况,可以弥补自身的不足之处,在线考试的时序图如图2.13所示。图2.13在线考试时序图2.3.6教师阅卷教师登录系统后可以对自己创建的已完成考试的学生试卷进行批阅,可以让学生了解自身学习的情况,同时也可以让自己了解自身教学的不足之处,方便今后进行改善,提升自身的教学水平,教师阅卷的时序图如图2.14所示。图2.14教师阅卷时序图2.3.7成绩分析用户登录系统进入个人中心首页时会显示个人近期学习情况,了解自身知识的不足之处,进行更有针对性的学习,成绩分析的时序图如图2.15所示。图2.15成绩分析时序图2.3.8讨论区用户登录系统后可以在讨论区内发布帖子或评论帖子,给他人分享自己的学习经验或感悟等,讨论区可以对自己的帖子进行删除,其业务流程与课程管理类似,这里不再多做描述。2.3.9消息通知为了提醒用户一些学习等信息,本系统具有消息通知的功能。用户可以登录系统之后在个人中心-消息通知页面查看消息,除此之外,系统会自动给用户邮箱发送通知信息,方便不常登录系统的用户知晓最近的一些信息。在上述几个功能模块中有的功能已经调用了消息通知服务来创建消息通知,消息通知的查看等与上述几个功能模块相似,这里不再多做描述。本小节仅对消息发送至用户邮箱功能进行描述,其时序图如图2.16所示。图2.16消息发送至用户邮箱时序图2.4功能需求2.4.1涉众分析本系统为在线教育系统,是随着计算机技术、网络技术以及云计算、大数据、人工智能等技术的快速发展,科技与传统教育相结合的产物。在线教育在教育行业中扮演着越来越重要的作用,是现代教育的主要方式之一。既然该系统是为教育行业服务,那么系统的使用者角色应当与传统教育行业中的角色一致,即学生和教师。表2.1列出了系统用户角色及其职责或功能。表2.1用户角色划分表角色职责或功能教师系统的主要参与者,可以在该系统平台内发布课程(公有或私有)、管理课程(课时、课时资料、视频等)、发布考试信息、批阅试卷等,同时也可以学习其他教师发布的课程,提升自己的教学能力。学生系统的主要参与者,可以在该系统平台内学习课程(私有课程需要教师添加)、下载课时资料、浏览视频、在线考试等,同时可以查看自身的学习情况,及时了解自身知识的不足,弥补知识缺陷。2.4.2用例分析本系统是为教育行业服务,则其参与者为教师和学生。本系统主要实现了在线学习与在线考试两大功能,通过对其分析,本系统应实现9大功能模块,分别为:个人中心、课程管理、考试管理、课程学习、在线考试、教师阅卷、成绩分析、讨论区、消息通知。个人中心模块包含:用户注册、用户登录、修改密码等功能。课程管理模块包含:创建课程、修改课程、删除课程、创建课时、修改课时、删除课时、上传课时资料、删除课时资料、上传视频、删除视频、添加学习人员(私有课程)、删除学习人员(私有课程)等功能。考试管理模块包含:创建考试、删除考试、创建选择题、删除选择题、创建客观题、删除客观题等功能。课程学习模块包含:课程学习、课时资料下载、浏览视频等功能。在线考试模块主要包含在线考试功能。教师阅卷模块主要包含教师阅卷功能。成绩分析模块包含:成绩列表、成绩分析等功能。讨论区模块包含:发布帖子、删除帖子、发表评论、删除评论等功能。消息通知模块包含:消息通知查阅、删除消息通知等功能。对上述功能及参与者进行分析匹配可以得出如下用例图,其中图2.17为系统总体用例图,图2.18为个人中心模块用例图,图2.19为课程管理模块用例图,图2.20为考试管理模块用例图,图2.21为课程学习模块用例图,图2.22为成绩分析模块用例图,图2.23为讨论区模块用例图,图2.24为消息通知模块用例图。图2.17在线教育系统(智学新知)总体用例图图2.18个人中心模块用例图图2.19课程管理模块用例图图2.20考试管理模块用例图图2.21课程学习模块用例图图2.22成绩分析模块用例图图2.23讨论区模块用例图图2.24消息通知模块用例图根据上述的分析,我们列出了表2.2所示的在线教育系统(智学新知)用例列表。表2.2在线教育系统(智学新知)用例列表ID名称用例展开C1个人中心C1.1用户注册C1.2用户登录C1.3修改密码C2课程管理C2.1创建课程C2.2修改课程C2.3删除课程C2.4创建课时C2.5修改课时C2.6删除课时C2.7创建课时资料C2.8删除课时资料C2.9上传视频C2.10删除视频C2.11添加学习人员C2.12删除学习人员C3考试管理C3.1创建考试C3.2删除考试C3.3创建选择题C3.4删除选择题C3.5创建客观题C3.6删除客观题C4课程学习C4.1课程学习C4.2课时资料下载C4.3浏览视频C5在线考试C5.1在线考试C6教师阅卷C6.1教师阅卷C7成绩分析C7.1成绩列表C7.2成绩分析C8讨论区C8.1发布帖子C8.2删除帖子C8.3发表评论C8.4删除评论C9消息通知C9.1消息通知查询C9.2删除消息通知下面我们分别给出上述用例的用例描述。用户注册表2.3用户注册用例描述IDC1.1名称用户注册优先级高参与者教师、学生触发条件参与者点击注册按钮前置条件参与者在该系统内没有账户后置条件参与者成为该系统用户正常流程参与者进入在线教育系统(智学新知)参与者点击注册按钮参与者输入邮箱及密码等个人信息参与者点击确认注册按钮系统给用户发送邮箱验证用户点击邮箱内收到的链接系统提示注册成功扩展流程3-4a.邮箱不符合规范系统给出相应提示3-4b.两次密码输入不一致系统给出相应提示3-4c.邮箱已被注册系统给出相应提示6a.链接错误系统给出相应提示6b.链接失效系统给出相应提示业务规则无特殊需求邮箱验证链接要求有时效限制,超时自动失效。用户登录表2.4用户登录用例描述IDC1.2名称用户登录优先级高参与者教师、学生触发条件参与者点击登录按钮前置条件参与者为该系统用户后置条件参与者登录系统正常流程参与者输入邮箱及密码参与者点击登录按钮系统跳转至登录前页面扩展流程1-2a.邮箱不存在系统给出相应提示1-2b.密码错误1.系统给出相应提示业务规则无特殊需求无修改密码表2.5修改密码用例描述IDC1.3名称修改密码优先级高参与者教师、学生触发条件参与者点击修改密码按钮前置条件参与者为该系统用户后置条件参与者密码被修改正常流程参与者点击修改密码按钮系统提示验证链接已发送至邮箱参与者点击邮箱内链接参与者输入新密码及重复密码参与者点击确认按钮系统提示修改密码成功扩展流程3a.链接不存在系统给出相应提示页面5秒后跳转至系统首页3b.链接超时系统给出相应提示页面5秒后跳转至系统首页4-5a.两次密码不一致系统给出相应提示业务规则无特殊需求修改密码需向邮箱发送链接确认用户身份,链接要有一定的有效期,超时自动失效。创建课程表2.6创建课程用例描述IDC2.1名称创建课程优先级高参与者教师触发条件参与者点击创建课程按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师后置条件参与者成功创建一门课程正常流程参与者输入课程相关信息参与者点击确认按钮系统跳转至新创建课程详情页面扩展流程1-2a.部分字段超出长度限制系统给出相应提示1-2b.必输项没有填写系统给出相应提示1-2c.课程封面图片超出要求大小系统给出相应提示1-2d.课程封面图片格式不符合系统给出相应提示业务规则无特殊需求用户可以选择创建公有课程或者私有课程修改课程表2.7修改课程用例描述IDC2.2名称修改课程优先级高参与者教师触发条件参与者点击修改课程按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程已被该教师创建后置条件参与者成功修改一门课程正常流程参与者输入修改课程的相关信息参与者点击确认按钮系统跳转到该课程详细页面扩展流程1-2a.部分字段超出长度限制系统给出相应提示1-2b.必输项没有填写系统给出相应提示1-2c.课程封面图片超出要求大小系统给出相应提示1-2d.课程封面图片格式不符合系统给出相应提示业务规则无特殊需求参与者只可以修改自己创建的课程删除课程表2.8删除课程用例描述IDC2.3名称删除课程优先级高参与者教师触发条件参与者点击删除课程按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程已被该教师创建后置条件参与者成功删除一门课程正常流程参与者点击删除课程按钮系统给出是否确认删除的提示参与者点击确认系统跳转到系统首页扩展流程2-3a.参与者点击取消系统提示弹出框关闭,不做任何修改业务规则无特殊需求参与者只可以删除自己创建的课程创建课时表2.9创建课时用例描述IDC2.4名称创建课时优先级高参与者教师触发条件参与者进入一门自己创建的课程,点击创建课时按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程已被该教师创建后置条件参与者成功为该课程创建一节课时正常流程参与者点击创建课时按钮参与者输入课时相关信息及课时内容参与者点击确认按钮系统创建课时并跳转到课时详情页面扩展流程2-3a.部分字段超出长度限制系统给出相应提示2-3b.必输项没有填写系统给出相应提示业务规则无特殊需求参与者只可以为自己创建的课程创建课时修改课时表2.10修改课时用例描述IDC2.5名称修改课时优先级高参与者教师触发条件参与者进入一门自己创建的课程/课时,点击修改课时按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程和课时已被该教师创建后置条件参与者成功修改该课时正常流程参与者点击修改课时按钮系统跳转至修改课时页面参与者输入修改信息参与者点击确认修改成功,系统跳转至课时详情页面扩展流程3-4a.部分字段超出长度限制系统给出相应提示3-4b.必输项没有填写系统给出相应提示业务规则无特殊需求参与者只可以修改自己创建的课时,修改课时页面要回显修改之前的课时信息,方便参与者进行修改而不是重新填写删除课时表2.11删除课时用例描述IDC2.6名称删除课时优先级高参与者教师触发条件参与者进入一门自己创建的课程/课时,点击删除课时按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程和课时已被该教师创建后置条件参与者成功删除该课时正常流程参与者点击删除课时按钮系统给出确认是否删除提示框参与者点击确认系统成功删除该课时,并跳转至该课时所在课程详情页面扩展流程2-3a.参与者点击取消系统弹出框关闭,系统不做任何改变业务规则无特殊需求参与者只可以删除自己创建的课时创建课时资料表2.12创建课时资料用例描述IDC2.7名称创建课时资料优先级高参与者教师触发条件参与者进入一门自己创建的课时,点击上传课时资料按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课时已被该教师创建后置条件参与者成功上传课时资料正常流程参与者点击上传课时资料按钮系统弹出文件上传框参与者选择文件并点击确认系统给出上传成功提示扩展流程1a.资料个数已达上限系统给出相应提示3a.文件超出系统限制系统给出相应提示3b.用户点击取消系统关闭文件上传框,不做任何改变业务规则无特殊需求参与者只可以为自己创建的课时上传课时资料,为防止参与者恶意上传资料,节省服务器空间,资料个数及大小应有所限制删除课时资料表2.13删除课时资料用例描述IDC2.8名称删除课时资料优先级高参与者教师触发条件参与者进入一门自己创建的课时,点击课时资料列表,选择一个资料点击删除课时资料按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课时资料已被该教师上传后置条件参与者成功删除课时资料正常流程参与者点击删除课时资料按钮系统给出是否删除提示参与者点击确认系统给出删除成功提示扩展流程2-3a.参与者点击取消系统关闭确认提示框,不做任何改变业务规则无特殊需求参与者只可以删除自己上传的课时资料上传视频表2.14上传视频用例描述IDC2.9名称上传视频优先级高参与者教师触发条件参与者进入一门自己创建的课时,点击上传视频按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课时已被该教师创建后置条件参与者成功上传视频正常流程参与者点击上传视频按钮系统给出文件选择框参与者选择视频文件并点击确认系统给出上传成功提示扩展流程1-2a.视频个数超过最大限制系统给出相应提示2-3a.参与者点击取消系统关闭文件选择框3a.文件格式不符合要求系统给出相应提示3b.视频大小超过限制系统给出相应提示业务规则无特殊需求参与者只可以为自己创建的课时上传视频,为防止参与者恶意上传视频,节省服务器空间,视频个数及大小应有所限制删除视频表2.15删除视频用例描述IDC2.10名称删除视频优先级高参与者教师触发条件参与者进入一门自己创建的课时,点击进入视频列表,选择视频并点击删除视频按钮,或者参与者进入自己上传视频的详情页面,点击删除视频按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该视频已被该教师上传后置条件参与者成功删除视频正常流程参与者点击删除视频按钮系统给出确认删除提示框参与者点击确认系统跳转至该视频所属课时详情页面扩展流程2-3a.参与者点击取消系统关闭确认删除提示框业务规则无特殊需求参与者只可以删除自己上传的视频添加学习人员表2.16添加学习人员用例描述IDC2.11名称添加学习人员优先级高参与者教师触发条件参与者进入一门自己创建的私有课程,点击添加学习人员按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程是私有课程且已被该教师创建后置条件参与者成功添加学习人员正常流程参与者点击添加学习人员按钮系统给出添加学习人员信息输入框参与者输入要添加人员信息并单击确认系统提示添加成功扩展流程2-3a,参与者点击取消系统关闭添加学习人员信息输入框3a.该人员已存在该课程系统给出相应提示3b.该人员不是该系统用户系统给出相应提示业务规则无特殊需求参与者只可以为自己创建的课程添加学习人员,且该课程为私有课程删除学习人员表2.17删除学习人员用例描述IDC2.12名称删除学习人员优先级高参与者教师触发条件参与者进入一门自己创建的私有课程,点击学习人员列表,选择一名学习人员点击删除按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程是私有课程且已被该教师创建,该学习人员已在该课程存在后置条件参与者成功删除学习人员正常流程参与者点击删除按钮系统给出确认删除提示框参与者点击确认系统给出删除成功提示扩展流程2-3a.参与者点击取消系统关闭确认删除提示框业务规则无特殊需求参与者只可以删除自己添加的学习人员创建考试表2.18创建考试用例描述IDC3.1名称创建考试优先级高参与者教师触发条件参与者进入一门自己创建的私有课程,点击添加考试按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该课程已被该教师创建后置条件参与者成功创建一门考试正常流程参与者点击创建考试按钮系统进入考试信息输入页面参与者输入考试信息并点击确认按钮系统跳转至考试详情页面扩展流程3a.部分字段超出长度限制系统给出相应提示3b.部分字段填写不规范系统给出相应提示3c.部分必填字段未填写系统给出相应提示业务规则无特殊需求参与者只可以为自己创建的课程添加考试删除考试表2.19删除考试用例描述IDC3.2名称删除考试优先级高参与者教师触发条件参与者进入一门自己创建的考试,点击删除考试,或在考试列表页面选择考试点击删除按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该考试已被该教师创建后置条件参与者成功删除一门考试正常流程参与者点击删除按钮系统给出确认删除提示框参与者点击确认系统跳转至考试列表页面扩展流程1-2a.考试已经开始系统给出相应提示2-3a.参与者点击取消系统关闭确认删除提示框业务规则无特殊需求参与者只可以删除自己创建的考试创建选择题表2.20创建选择题用例描述IDC3.3名称创建选择题优先级高参与者教师触发条件参与者进入一门自己创建的考试,点击创建选择题按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该考试已被该教师创建后置条件参与者成功创建一道选择题正常流程参与者点击创建选择题按钮系统弹出选择题信息填写框参与者输入选择题信息后点击确认系统跳转至考试详情页面扩展流程3a.输入信息不符合规范系统给出相应提示3b.必输项没有输入系统给出相应提示业务规则无特殊需求参与者只可以为自己创建的考试添加选择题(19)删除选择题表2.21删除选择题用例描述IDC3.4名称删除选择题优先级高参与者教师触发条件参与者进入一门自己创建的考试,选择一道选择题,点击创建按钮前置条件参与者为该系统用户,参与者已登录该系统且参与者身份为教师,该考试已被该教师创建后置条件参与者成功删除一道选择题正常流程参与者点击删除按钮系统给出是否删除提示框参与者点击确认系统更新考试页面扩展流程1a.考试已经开始系统给出相关提示2-3a.参与者点击取消按钮系统关闭确认删除提示框业务规则无特殊需求参与者只可以删除自己创建的选择题(20)创建客观题该用例与创建选择题用例基本一致,这里不再过多描述。删除客观题该用例与删除选择题用例基本一致,这里不再过多描述。课程学习表2.22课程学习用例描述IDC4.1名称课程学习优先级高参与者教师、学生触发条件无前置条件参与者登录该系统后置条件无正常流程参与者点击课程(按时间/按学习人数)系统跳转进入课程列表页面参与者选择课程点击开始学习按钮系统跳转至课程详情页面参与者选择课时信息并点击进入系统跳转至考试详细信息页面扩展流程无业务规则无特殊需求该课程为公开课程或该课程为私密课程但被教师加入学习课时资料下载表2.23课时资料下载用例描述IDC4.2名称课时资料下载优先级高参与者教师、学生触发条件参与者进入课时页面,点击课时资料列表,选择课时资料,点击查看按钮前置条件参与者登录该系统,且参与者有该课程学习权限后置条件课时资料被下载正常流程参与者点击查看按钮给出下载提示参与者选择下载目录点击确认系统提示下载成功扩展流程无业务规则无特殊需求无浏览视频表2.24浏览视频用例描述IDC4.3名称浏览视频优先级高参与者教师、学生触发条件参与者进入课时页面,点击视频列表,选择视频,点击查看按钮前置条件参与者登录该系统,且参与者有该课程学习权限后置条件参与者浏览视频学习正常流程参与者点击查看按钮系统跳转至视频播放页面扩展流程无业务规则无特殊需求无在线考试表2.25在线考试用例描述IDC5.1名称在线考试优先级高参与者教师、学生触发条件参与者进入考试列表页面,选择考试,点击开始考试按钮前置条件参与者登录该系统,且参与者有该课程学习权限后置条件参与者开始考试正常流程参与者点击开始考试按钮系统跳转至考试页面参与者填写答案后点击提交系统跳转至提示考试结束页面扩展流程1-2a.考试尚未开始系统给出相应提示1-2b.考试已结束系统跳转至考试结束页面3-4a.考试有时间限制且超时系统自动提交试卷并跳转至提示考试结束页面业务规则无特殊需求无教师阅卷表2.26教师阅卷用例描述IDC6.1名称教师阅卷优先级高参与者教师触发条件参与者进入学生考试列表页面,选择点击批阅按钮前置条件参与者登录该系统,且该考试是该参与者所创建的后置条件参与者给出学生考试成绩正常流程参与者点击批阅按钮系统计算选择题成绩后跳转至批阅试卷页面参与者对每道客观题进行评分,评分完成后点击提交系统计算最终成绩并跳转至学生考试列表页面扩展流程1-2a.考试已批阅系统提示考试已经批阅并给出考试成绩业务规则选择题总成绩=正确答案的选择题成绩之和客观题总成绩=参与者给出每道客观题成绩之和总成绩=选择题总成绩+客观题总成绩特殊需求无成绩列表表2.27成绩列表用例描述IDC7.1名称成绩列表优先级高参与者教师、学生触发条件参与者点击成绩列表按钮前置条件参与者登录该系统后置条件列出参与者的考试成绩正常流程参与者点击成绩列表按钮系统跳转至参与者的成绩列表页面扩展流程无业务规则无特殊需求无成绩分析表2.28成绩分析用例描述IDC7.2名称成绩分析优先级高参与者教师、学生触发条件参与者点击个人中心按钮前置条件参与者登录该系统后置条件分析参与者的考试成绩正常流程参与者点击个人中心按钮系统分析参与者的考试成绩系统跳转至个人中心页面(页面内含有成绩分析内容)扩展流程无业务规则无特殊需求无发表帖子该用例与创建课程用例相似,参与者为教师或学生,这里不再过多描述。删除帖子该用例与删除课程用例相似,参与者为教师或学生,这里不再过多描述。发表评论表2.29发表评论用例描述IDC8.3名称发表评论优先级中参与者教师、学生触发条件参与者进入讨论帖子,点击发表评论按钮前置条件参与者登录该系统后置条件参与者发表评论正常流程参与者点击发表评论按钮系统给出评论输入框参与者输入评论内容点击确认系统记录评论内容并刷新页面扩展流程2-3a.输入内容过长系统给出相关提示2-3b.参与者未输入任何内容系统给出相关提示2-3c.参与者点击取消按钮系统关闭评论输入框业务规则无特殊需求无删除评论表2.30删除评论用例描述IDC8.4名称删除评论优先级中参与者教师、学生触发条件参与者进入讨论帖子,选择一条自己的评论,点击删除按钮前置条件参与者登录该系统,且已发布该评论后置条件参与者删除该评论正常流程参与者点击删除按钮系统弹出确认删除提示框参与者点击确认系统删除评论并刷新当前页面扩展流程2-3a.参与者点击取消按钮系统关闭确认删除提示框业务规则无特殊需求参与者只可以删除自己发表的评论消息通知查询表2.31消息通知查询用例描述IDC9.1名称消息通知查询优先级中参与者教师、学生触发条件参与者点击消息通知按钮前置条件参与者登录该系统后置条件系统列出相关的消息通知正常流程参与者点击消息通知按钮系统列出消息通知列表,返回页面扩展流程无业务规则无特殊需求消息通知列表可以根据已读未读进行筛选删除消息通知表2.32删除消息通知用例描述IDC9.2名称删除消息通知优先级中参与者教师、学生触发条件参与者进入消息通知列表,选择消息通知点击删除按钮,或者参与者进入消息通知详情页面,点击删除按钮前置条件参与者登录该系统后置条件系统删除该消息通知正常流程参与者点击删除消息通知按钮系统弹出确认删除提示框参与者点击确认系统删除该消息通知并跳转至消息通知列表页面扩展流程2-3a.参与者点击取消按钮系统关闭确认删除提示框业务规则无特殊需求无2.5数据需求在2.4节我们对系统的功能性需求进行了分析,可以得出系统有如下几个基本实体:用户实体,其属性有邮箱、密码、姓名、性别、角色、头像、创建时间等,图2.25为该实体的实体属性图。图2.25用户实体图消息实体,其属性有消息ID、邮箱、标题、内容、创建时间等,图2.26为该实体的实体属性图。图2.26消息实体图课程实体,其属性有课程ID、名称、简介、封面图片、学习人数、创建时间、修改时间、用户邮箱等属性,图2.27为该实体的实体属性图。图2.27课程实体图课时实体,其属性有课时ID、名称、内容、创建时间、修改时间、课程ID等属性,图2.28为该实体的实体属性图。图2.28课时实体图课时资料实体,其属性有课时资料ID、名称、路径、创建时间、课时ID等属性,图2.29为该实体的实体属性图。图2.29课时资料实体图视频实体,其属性有视频ID、视频名称、视频路径、创建时间、课时ID等,图2.30为该实体的实体属性图。图2.30视频实体图考试实体,其属性有考试ID、名称、考试要求、考试最早开始时间、考试最晚结束时间、考试时长、创建时间、修改时间、课程ID等属性,图2.31为该实体的实体属性图。图2.31考试实体图(8)选择题实体,其属性有选择题ID、题目、选项A、选项B、选项C、选项D、答案、创建时间、考试ID、分值等,图2.32为该实体的实体属性图。图2.32选择题实体图(9)客观题实体,其属性有客观题ID、题目、创建时间、分值、考试ID等,图2.33为该实体的实体属性图。图2.33客观题实体图(10)讨论帖子实体,其属性有讨论帖子ID、名称、内容、创建时间、用户邮箱等,图2.34为该实体的实体属性图。图2.34讨论帖子实体图(11)评论实体,其属性有评论ID、内容、创建时间、讨论帖子ID、用户邮箱等,图2.35为该实体的实体属性图。图2.35评论实体图对上述实体关系进行分析,得出系统的E-R图,如图2.36所示。图2.36在线教育系统(智学新知)E-R图2.6非功能需求本文将从系统安全性、可靠性、易用性、可维护性以及性能这五个方面对系统的非功能需求进行描述。2.6.1安全性系统对数据访问进行严格的控制,每个用户只能访问自己相关的信息(开放性数据如公共课程等除外)。系统要对用户的修改进行验证,保证用户账号安全。2.6.2可靠性系统具有很强的健壮性,能够处理系统在运行过程中出现的大多数异常情况,如人为的错误输入,非法数据等。因软件系统的失效造成不能完成系统正常业务的概率要低于3%。系统应当能够保证7×24小时运行,系统故障次数保证在每月1次以内。2.6.3易用性70%以上的用户在初次使用该系统时能够在1分钟以内进入课程学习。2.6.4可维护性在接到修改请求后,对于普通修改应该在5工作日以内完成,对于评估后需要进行大量修改,应该在10工作日以内完成。60%的BUG修改不能超过1工作日,95%的BUG修改不能超过2工作日其他不能超过3工作日。2.6.5系统性能响应时间在90%的情况下,系统响应时间不能超过1秒,高峰使用时段不能超过1.5秒。系统容量系统能够支持10万用户,支持GB级数据,数据库最大容量不能超过1500GB,单台服务器磁盘空间至少512GB以上。资源使用率在推荐配置下,CPU占用率应小于65%,内存占用率应小于70%。2.7运行环境2.7.1硬件环境单台服务器硬件环境如表2.33所示。表2.33单台服务器硬件配置项目要求CPU类型IntelSkylakeXeonPlatinum81632.5GHzCPU核心数4核内存128GB硬盘4TB2.7.2软件环境系统运行所需软件环境如表2.34所示。表2.34系统所需软件环境项目要求JDK1.8及以上服务器中间件Tomcat8及以上版本操作系统centos6.4数据库Mysql5.5.282.8将来可能提出的需求系统在稳定上线一段时间后根据使用情况可以加设直播授课功能,可以让学生感受到课堂学习的氛围,能够及时与老师取得互动,当场解决难以理解的知识点。第3章系统概要设计系统概要设计概述系统的概要设计是整个在线教育系统完成过程中的重要环节之一,本章的目的在于明确说明在线教育系统各个功能的实现方式,指导开发人员进行编码实现。系统设计原则RobertC.Martin提出的SOLID原则指代了面向对象编程和面向对象设计的五个基本原则,它是五个其他缩略词(SRP、OCP、LSP、ISP、DIP)的组合。SOLID原则作为著名的面向对象设计理念,我们将其应用到本系统当中。单一功能原则(SingleResponsibilityPrinciple)单一功能原则认为对象应该具有一种单一功能的概念,意味着代码中的一个类只承担一种类型的责任,该原则可看作高内聚低耦合在面向对象原则上的扩展或引申。在在线教育系统设计中,应当遵守该原则,不可将多个职责放入一个类中实现,否则将很难做到修改一部分功能时不破坏其他功能。开闭原则(OpenClosePrinciple)开闭原则认为类应该对扩展开放但对修改关闭。对扩展开放表明有新的变化或需求时,为了适应新情况,可以对现有代码进行扩展。对修改封闭表明类一旦完成设计,应当能够独立完成其工作,无需对类进行任何的修改。这个原则的两部分看似对立,但是如果正确的设计就可以实现增加功能而不需要修改已有代码。里氏替换原则(LiskovSubstitutionPrinciple)里氏替换原则指出设计类时客户端依赖的父类可以被子类所替代,且客户端不需要知道这个变化。接口隔离原则(InterfaceSegregationPrinciple)接口隔离原则指出不能强迫用户依赖他们不使用的接口,即使用多个特定的接口比只使用一个单一的总接口要好。依赖反转原则(DependencyInversionPrinciple)依赖反转原则指出代码应当取决于抽象概念,而不是其具体实现,高层次模块不可以依赖于低层次模块。依赖注入是依赖反转原则的一种实现方式,SpringBoot框架很好地使用了该原则。随着互联网的发展,在互联网的系统下也产生了一些原则,如避免单点故障、API优先、服务架构“去中心化”等原则,我们也将参考并应用到本系统当中。结构设计系统架构图图3.1展示了在线教育系统的系统架构图。图3.1在线教育系统架构图系统功能框图在线教育系统主要进行教育相关业务,在第2章中我们已经进行了大致分析,图3.2为该系统功能架构设计图。图3.2在线教育系统功能架构设计图总体对象(类)设计、接口或函数设计下面给出在线教育系统主要业务的相关类图:图3.3为在线教育系统选择题相关业务处理类图,图3.4为消息通知相关业务处理类图,图3.5为课程相关业务处理类图,图3.6为考试相关业务处理类图,图3.7为客观题业务处理的类图,图3.8为课时相关业务处理类图,图3.9为课时资料相关业务处理类图,图3.10为课时视频相关业务处理类图,图3.11为讨论帖子相关业务处理类图。图3.3在线教育系统选择题相关业务处理类图图3.4在线教育系统消息通知业务处理类图图3.5在线教育系统课程相关业务处理类图图3.6在线教育系统考试相关业务处理类图图3.7在线教育系统客观题相关业务处理类图图3.8在线教育系统课时相关业务处理类图图3.9在线教育系统课时资料相关业务处理类图图3.10在线教育系统课时视频相关业务处理类图图3.11在线教育系统讨论帖子相关业务处理类图数据库设计设计原则本系统的数据库设计遵循如下原则:(1)具有同一主题的数据存储在一张表中(即一表一用);(2)尽量减少冗余,提高访问速度;(3)数据库设计达到第三范式,基本满足关系规范化要求;(4)各个表之间关系只可以为一对一和一对多的关系,对于多对多的关系应转为一对多的关系进行处理;(5)在设计表结构时,应当考虑表结构的动态适应性。数据建模(1)概念模型图3.12为在线教育系统概念数据模型。图3.12在线教育系统概念数据模型(2)逻辑模型图3.13为在线教育系统逻辑数据模型。图3.13在线教育系统逻辑数据模型(3)物理模型在线教育系统所涉及的数据库表如下所示:表中文名称:用户信息表物理名称:user表3.1用户信息表字段名字段类型字段大小允许为空主键/外键简介emailvarchar150否主键用户邮箱passwordchar32否`--密码namevarchar100否--姓名sexvarchar1否--性别rolevarchar10否--角色head_imagevarchar500否--头像所在路径create_timedatetime--否--创建时间is_verificationchar1否--是否验证表中文名称:消息通知表物理名称:message表3.2消息通知表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键消息通知IDemailvarchar150否外键用户邮箱titlevarchar150否--标题contenttext--否--内容create_timedatetime--否--创建时间is_sendchar1否--是否发送is_readchar1否--是否阅读表中文名称:课程表物理名称:course表3.3课程表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键课程IDnamevarchar100否--课程名称introducationvarchar500否--课程简介imagevarchar500否--封面路径study_numberint--否--学习人数create_timedatetime--否--创建时间modify_timedatetime--否--修改时间user_emailvarchar150否外键用户邮箱is_privatechar1否--是否私有表中文名称:课时表物理名称:lesson表3.4课时表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键课时IDnamevarchar100否--课时名称contentvarchar500否--课时内容所在路径create_timedatetime--否--创建时间modify_timedatetime--否--修改时间course_idchar17否外键课程ID表中文名称:课时资料表物理名称:lesson_data表3.5课时资料表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键课时资料IDnamevarchar200否--名称pathvhar500否--路径create_timedatetime--否--创建时间lesson_idchar17否外键课时ID表中文名称:视频表物理名称:video表3.6视频表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键视频IDnamevarchar100否--名称pathvarchar500否--路径create_timedatetime--否--创建时间lesson_idchar17否外键课时ID表中文名称:用户学习表物理名称:user_study表3.7用户学习表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键用户学习IDuser_emailvarchar150否外键用户邮箱course_idchar17否外键课程IDis_privatechar1否--是否私有create_timedatetime--否--创建时间last_study_timedatetime--否--最近学习时间表中文名称:考试表物理名称:exam表3.8考试表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键考试IDnamevarchar100否--名称requirementvarchar1000否--要求start_timedatetime--是--开始时间end_timedatetime--是--最晚进入时间durationint--否--考试时长create_timedatetime--否--创建时间modify_timedatetime--否--修改时间course_idchar17否外键课程ID表中文名称:选择题表物理名称:choice_question表3.9选择题表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键选择题IDsubjectvarchar100否--问题option_avarchar1000否--选项Aoption_bvarchar1000否--选项Boption_cvarchar1000否--选项Coption_dvarchar1000否--选项Danswerchar1否--答案create_timedatetime--否--创建时间exam_idchar17否外键考试IDscoreint--否--分数表中文名称:客观题表物理名称:objective_question表3.10客观题表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键客观题IDsubjectvarchar1000否--题目create_timedatetime--否--创建时间scoreint--否--成绩exam_idchar17否外键考试ID表中文名称:学生考试表物理名称:student_exam表3.11学生考试表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键学生考试IDexam_idchar17否外键考试IDuser_emailvarchar150否外键用户邮箱scoreint--否--成绩timevarchar100是--考试剩余时间create_timedatetime--否--创建时间表中文名称:学生选择题表物理名称:student_choice_question表3.12学生选择题表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键学生选择题IDstudent_exam_idchar17否外键学生考试IDchoice_question_idchar17否外键选择题IDanswerchar1是--答案scoreint--否--成绩表中文名称:学生客观题表物理名称:student_objective_question表3.13学生客观题表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键学生客观题IDstudent_exam_idchar17否外键学生考试IDobjective_question_idchar17否外键客观题IDanswerchar1是--答案scoreint--否--成绩表中文名称:讨论帖子表物理名称:discuss表3.14讨论帖子表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键讨论帖子IDnamevarchar100否--名称contentvarchar500否--内容路径create_timedatetime--否--创建时间user_emailvarchar150否外键用户邮箱表中文名称:评论表物理名称:comment表3.15评论表字段名字段类型字段大小允许为空主键/外键简介idchar17否主键评论IDcontentvarchar1000否--内容create_timedatetime--否--创建时间user_emailvarchar150否外键用户邮箱discuss_idchar17否外键讨论帖子ID第4章系统详细设计与实现系统详细设计与实现系统的工程结构本系统采用JAVA语言编写,基于主流框架SpringBoot进行开发,开发工具为IntellijIDEA2016.1.3,其工程结构如图4.1所示。图4.1在线教育系统工程结构部分说明如下:(1)OnlineEducationApplication类为SpringBoot的入口类(即主类);(2)configure包下为系统配置相关类;(3)controller包下为Controller相关类,主要接受用户请求并给出响应;(4)dao包下为数据库交互相关类;(5)entities包下为实体类;(6)service包下为业务处理类,为该系统的核心,进行相关业务的处理;(7)task包下为定时任务类,如定时检测用户是否验证、定时发送邮件等;(8)utils包下为该系统的工具类,主要对基本操作进行封装;(9)resources目录下为系统给的静态资源,static目录下存放系统所需要的css、js以及图片等静态资源,templates目录下存放thymeleaf模板,用于页面展现。核心功能程序实现课程管理(1)创建课程代码清单4-1为创建课程功能的核心代码。代码清单4-1创建课程publicStringcreateCourse(StringcourseName,StringcourseIntroduction,MultipartFilecourseImage,StringisPrivate,HttpServletRequestrequest){JSONObjectresult=newJSONObject();Stringstatus="false";Stringcontent="创建失败!";HttpSessionsession=request.getSession();booleanisImage=true;try{if(!FileUtils.isImage(courseImage)){isImage=false;content="课程封面必须是图片类型哦~";}}catch(Exceptione){isImage=false;content="系统在判断封面图片是否为图片类型时出错";}if(isImage){StringcourseImageName=courseImage.getOriginalFilename();StringcourseImageType=courseImageName.substring(courseImageName.lastIndexOf(".")+1);//上传图片的后缀类型if(!FileUtils.isImageByType(courseImageType)){content="课程封面必须是图片类型哦~";}elseif(FileUtils.getFileSize(courseImage)>courseImageMaxSize){content="图片太大啦,不要超过"+courseImageMaxSizeString+"哦~";}else{Timestamptime=newTimestamp(System.currentTimeMillis());StringtimeString=time.toString();Stringid=timeString.split("")[0].split("-")[0]+timeString.split("")[0].split("-")[1]+timeString.split("")[0].split("-")[2]+timeString.split("")[1].split(":")[0]+timeString.split("")[1].split(":")[1]+timeString.split("")[1].split(":")[2].split("\\.")[0]+timeString.split("")[1].split(":")[2].split("\\.")[1];//注意,split是按照正则表达式进行分割,.在正则表达式中为特殊字符,需要转义。while(courseDao.getCountById(id)!=0){longidLong=Long.parseLong(id);Randomrandom=newRandom();idLong+=random.nextInt(100);id=idLong+"";if(id.length()>17){id=id.substring(0,17);}}StringidMd5=Md5.md5(id);StringcourseImageDir=courseResourceDir+idMd5+"/";StringimageName=idMd5+"."+courseImageType;JSONObjectuploadCourseImageResult=FileUtils.uploadFile(courseImage,imageName,courseImageDir);if("true".equals(uploadCourseImageResult.getString("status"))){Coursecourse=newCourse();course.setId(id);course.setName(courseName);course.setIntroduction(courseIntroduction);course.setImage(idMd5+"/"+imageName);course.setStudyNumber(0);course.setCreateTime(time);course.setModifyTime(time);Useruser=(User)session.getAttribute("user");course.setUserEmail(user.getEmail());course.setIsPrivate(isPrivate);booleaninsertSuccess=false;try{if(courseDao.createCourse(course)==0){content="操作数据库失败!";}else{insertSuccess=true;status="true";content=id;}}catch(Exceptione){content="操作数据库失败!";}if(insertSuccess){StringmessageTitle="您已成功创建课程:"+courseName;StringmessageContent=createCreateCourseSuccessEmailMessage(course);JSONObjectcreateMessageResult=messageService.createMessage(user.getEmail(),messageTitle,messageContent);}else{JSONObjectdeleteCourseImageResult=FileUtils.deleteFile(courseIma;}}else{content="上传封面图片失败,失败原因"+uploadCourseImageResult.getString("content");}}}result.accumulate("status",status);result.accumulate("content",content);returnresult.toString();}(2)创建课时代码清单4-2为创建课时的核心代码。代码清单4-2创建课时publicStringcreateLesson(StringcourseId,StringlessonName,StringlessonContent,HttpServletRequestrequest){JSONObjectresult=newJSONObject();Stringstatus="false";Stringcontent="创建失败";HttpSessionsession=request.getSession();Useruser=(User)session.getAttribute("user");Coursecourse=courseDao.getCourseById(courseId);if(course.getUserEmail().equals(user.getEmail())){Timestamptime=newTimestamp(System.currentTimeMillis());StringtimeString=time.toString();Stringid=timeString.split("")[0].split("-")[0]+timeString.split("")[0].split("-")[1]+timeString.split("")[0].split("-")[2]+timeString.split("")[1].split(":")[0]+timeString.split("")[1].split(":")[1]+timeString.split("")[1].split(":")[2].split("\\.")[0]+timeString.split("")[1].split(":")[2].split("\\.")[1];//注意,split是按照正则表达式进行分割,.在正则表达式中为特殊字符,需要转义。while(lessonDao.getCountById(id)!=0){longidLong=Long.parseLong(id);Randomrandom=newRandom();idLong+=random.nextInt(100);id=idLong+"";if(id.length()>17){id=id.substring(0,17);}}StringfilePath=courseResourceDir+Md5.md5(courseId)+"/lesson/";JSONObjectwriteFileResult=FileUtils.writeFile(filePath,Md5.md5(id)+".html",lessonContent);if("true".equals(writeFileResult.getString("status"))){booleaninsertSuccess=false;Lessonlesson=newLesson();lesson.setId(id);lesson.setName(lessonName);lesson.setContent(Md5.md5(courseId)+"/lesson/"+Md5.md5(id)+".html");lesson.setCreateTime(time);lesson.setModifyTime(time);lesson.setCourseId(courseId);try{if(lessonDao.createLesson(lesson)==0){content="创建课时时操作数据库失败!";}else{status="true";insertSuccess=true;content=id;}}catch(Exceptione){content="创建课时时操作数据库失败!";}if(insertSuccess){course.setModifyTime(time);try{if(courseDao.editCourse(course)==0){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论