版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[12]。综上所述,有些电影管理系统还处在原有的管理水平,管理效率低,繁琐,容易出错,所以为解决管理效率低,繁琐等问题设计了一款基于Vue的微时光电影管理系统。1.4研究内容本电影管理系统,使用了Java语言,并在使用Springboot框架的基础上结合Vue技术,完成了页面的设计,服务器端使用Tomcat服务器,采用功能强大的MySQL数据库,完成本系统的设计与实现。电影管理系统主要设立了用户和管理员两个身份。用户可以在搭建好的系统中,对电影进行查看、选择、收藏和评论等操作;管理员则可以对系统进行管理和维护,除了可以对电影的信息、类型等进行管理之外,还可以对用户对电影的评价信息进行回复操作,同时管理员也可以对用户信息进行管理,还可以对系统页面进行完善,如设置系统首页的轮播图等。第2章相关理论和技术2.1Java简介Java编程语言由SunMicroSystems开发,发布于1995年。由于其跨领域、动态和可移植的特点,Java逐渐受到大多数编程爱好者的欢迎,并不断发展Java的关键技术,使之不断稳定和完善。如今Java语言已经成为了大多互联网工作人员在开发软件时优先选用的语言之一。Java是一种在互联网上广泛使用的优秀编程语言;Java语言与其他语言的区别在于它具有其他语言所没有的独特的特点。例如,它去掉了让人迷惑的、易犯错误的某些概念,去掉了容易让人分不清楚的一些概念语句的关系,也不需要多次继承复杂的代码的方式,去掉了类型模式,以及对系统空间的自动化管理。这些效应由Java虚拟服务组件等机制在后台处理。这些特点是Java成为许多程序员的热门选择的根本原因,也使Java语言在被开发后在互联网市场上大受欢迎。通常情况下,Java应用程序都会使用Eclipse来展开开发工作,Eclipse是一个以Java虚拟机为基础的综合开发工具与环境,它是JavaEE与其他Java平台之间的服务部件,可以为各种Java提供服务,比如JavaEE平台的公共服务库,还有运行软件系统所需要的执行服务部件。为了解决这个问题,EclipseIDE集成了Java的各种功能组件、各种插件和功能,使得网络应用,桌面应用,分布式应用可以快速开发和部署成为可能。基础的的Java运行环境含有许多在编程中可能会用到的基本库函数,这些库函数包含了很多常用函数,在需要引用某些函数时,我们便可以直接在库函数中选用自己需要的并原样使用,而不必再重新开发,这一特征方便了计算机人员的编程工作,使开发过程更加顺利,大量节省了开发软件的时间成本。Java不仅可以直接使用,而且可以广泛使用,在选用Java语言时,人们都可以想到它的这一特性,直观和大面积的应用,可以保证由Java开发出的软件在未来很好地被维护,在有问题时及时的修改,这也是本设计为什么要选择Java的原因。2.2MySQL特点 1、强大的功能MySQL所提供的一组存储引擎,每个部件都有其优点,可以选择最适合自己的各类应用,其功能十分强大;一天之内,可以搜索到数十亿个页面。2、支持跨平台MySQL支持20多个开发平台,包括Linux、Windows、FreeBSD、IBMAIX、AIX和FreeBSD。在所有平台上创建的程序都可以被移植,而不需要改变程序。3、执行速度快MySQL数据库具有快速的特性。MySQL采用了一种很快的Breaktree链表和索引压缩,它可以很快地进行连接。4、支持面向对象程序设计有三种方法:纯粹的面向对象、纯粹的程序设计、和两种方法的结合,MySQL数据库中PHP可以运用多种编程方式进行软件的开发。5、高度安全为基础的用户身份验证提供了一种灵活、可靠的授权与口令。6、低成本MySQL数据库是一个无需付费的产品,可以直接从网上下载。7、支持不同开发语言MySQL支持许多编程语言,如PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++和Perl,并提供许多API函数。8、数据库存储能力强在MySQL数据库中,最大有效表值一般受到操作系统文件尺寸的约束,而InnoDB储存功能则是把InnoDB的表值存放在一个可以包含多个文件的表值内,最大表值不超过64TB;能够轻易地对几百万个大型的数据进行管理。9、支持强大的内置函数当Web程序被开发时,PHP所提供的很多内建功能都可以很好地适应这些功能。MySQL为MySQLi等扩展类库提供了很大的帮助,可以用来迅速地进行Web应用的开发。2.3Springboot介绍Springboot是基于Spring4.0的设计,既保留了原来Spring架构的优良特性,又对Spring的配置进行了简化,使Spring应用程序的设计与开发变得更加简单;Springboot整合了很多重要的架构技术,并且不断地简化了第三方技术与执行程序的应用,能够很好地解决依赖程序包的问题,同时也能很好地避免冲突与不稳定的问题;藉此可提升系统研发之效率,并可为其节约时费与费,并可令该系统研发行为变得简单且易为人所接受。SpringFramework是一种在Java平台上使用的应用程序,该程序提供了一个容器,可以对版本进行控制。尽管Spring框架自身并没有受到编程模型的限制,但是由于其频繁的使用,Spring框架变得如此流行,以致于成为了EJB模型的一种补充,或者说是一种替代品。SpringFramework提供了很多开发系统的方法。SpringFramework利用能够对某个类进行扫描的XML文件或Java注释进行配置的容器,来管理一个对象的生存周期。第3章系统分析3.1可行性分析3.1.1技术可行性其中,技术可行性主要体现在系统的技术、平台、框架和应用方式等方面。本设计基于Springboot框架,使用Vue作为前端,使用MySQL作为数据库,使用Navicat作为数据库工具,使用IDEA作为开发工具,使用Tomcat作为服务器的设计,而且大部分相关的开发工具都是免费的。3.1.2经济可行性经济可行性是指开发过程中的之处与之前的开发预算相一致,在整个开发过程的费用都需要有明确的记录,并且满足开发过程的要求。另一个开发前需要考虑的是,基于Vue电影管理系统一旦完成,能否具有很好的前景和良好的经济价值,基于上述情况,可判断这个基于Vue的电影管理系统的设计和开发在经济上是可行的。3.1.3操作可行性将此系统交付给使用者后,应确保其易于使用与管理,在精心设计后,可将大部分功能采用图形化的界面来实现;并且能够对其进行高效的管理,这样才不会给管理员和检查数据的用户造成混乱。整个系统完成后应该是简单而高效的,而且应该能够使用不同级别的用户权限对这整个过程进行良好且有序的管理。经过这些考虑后得到的结论是,这种开发在操作上是可行的。3.1.4法律可行性在法律方面,一切发展都具有以下特定特征:1、本项目中使用的所有技术数据均为法律依据。2、在研发的全流程中没有任何涉及到的知识产权方面的问题。3、开发过程中不存在剽窃,不存在侵权等问题。4、所有的发展都是自己的原创性发展,不会有任何的法律责任。3.2需求分析系统的功能需求分析能够使开发者进一步了解接下来在完成软件的功能要求时,列出了哪些功能应该完成,哪些不应该完成。优秀的分析行为可以帮助人们及早地发现和发现一些初期的缺陷,进而减轻了工作负担,减小了系统设计的出错概率,并增加了人们的生产力;减少研发费用,提高软件品质。3.2.1功能需求分析在基于Vue的微时光电影管理系统当中,当使用者通过注册登陆后,就可以登陆到主页,可以看到影片的信息,可以修改自己的个人信息,也可以进行评价。在后台,管理员可以对影片信息,影片类型,用户信息等进行管理。1.用户(1)注册登录模块:实现用户注册登录;(2)电影类型模块:用户可搜索所有电影类型进行查看并选择;(3)电影信息模块:用户可查看目前所看电影信息;(4)电影收藏模块:用户可以收藏自己喜欢的电影;(5)电影资讯模块:用户可以查看和搜索电影资讯;(6)电影推荐模块:用户可以查看当前热门电影;(7)留言板模块:用户可对电影进行评价留言;用户用例图如图3.1所示。图3.1用户用例图2.管理员(1)用户管理:管理员可以对已经注册过的人们的信息进行管理;(2)电影类型管理:管理员可以对电影类型进行操作,例如增加;(3)电影信息管理:管理员可对电影信息进行操作,例如删除;(4)观影记录管理:管理员可对观影记录进行操作,例如修改;(5)留言板管理:管理员可以对用户留言进行回复和查看;(6)电影资讯管理:管理员可以对电影资讯进行修改或删除等操作;(7)系统管理:管理员可以系统界面进行美化,添加修改页面内容;管理员用例图如图3.2所示。用户管理电影类型管理 电影信息管理观影记录管理 电影资讯管理 留言板管理 系统管理图3.2管理员用例图3.2.2非功能需求分析基于Vue的微时光电影管理系统的开发,除了要关注功能本身是否完善,还要保障其性能是否符合要求。对基于Vue的微时光电影管理系统的非功能需求的基础上,从以下四个角度进行了研究,着重于系统的可靠性、稳定性、可扩展性以及易于维护性,下面分别对这四个方面进行了介绍:(1)可靠性:以身份为基础才能进行访问的特性,确保了系统的安全执行,可靠性高,用户数据在录入、存储、传输和处理过程中必须保持着完整和一致。(2)稳定性:系统必须考虑到数据的稳定性要求,以确保系统在其生命周期内的正常和稳定运行。不应以牺牲系统稳定性为代价过度使用新技术,也不应以牺牲系统性能和安全问题为代价过度强调稳定性。(3)可扩展性:系统应该可以随时增加删除修改功能,而且要有足够的灵活性,以便随着业务需求的变化在平台上对系统进行优化完善。(4)易于维护性:系统应便于管理与维护,而且应具备一定的功能。利用该软件,可以对系统中的各项重要参数进行维修,任何修复或故障都可以在发现后及时成功解决。3.3系统流程分析3.3.1用户登录流程用户使用系统,首先需要进行登陆,输入正确的信息登录系统后才能进行下一步操作。如图3.3所示。 开始输入信息信息是否正确登陆成功结束 图3.3用户登录流程图3.3.2系统操作流程用户输入登录信息后,如有错误则提示重新输入。登陆成功后可以进入系统操作页面。用户端功能主要包括浏览电影信息、电影类型、观影记录,以及收藏电影,电影评价等功能;管理员端可对电影信息、电影类型、观影记录等内容进行增加、删除、修改等操作。系统操作流程如图3.4所示。开始 系统登录 输入用户名和密码 否信息是否正确 是登陆成功系统功能处理界面输入添加信息选择需修改的信息选择需删除的信息选择收藏的电影否否是否合规输入修改后信息 是否删除点击收藏 是否 是 是添加成功 是否合规删除成功 收藏成功 是修改成功 点击取消取消收藏成功 结束图3.4系统操作流程图第4章系统设计4.1功能模块设计根据系统功能分析可以看出,基于Vue的微时光电影管理系统由以下几个功能模块组成:用户进行注册登陆,查看影片类型、影片信息、影片资讯、留言板和影片收藏等;管理员可对影片种类、影片信息、观看记录、留言板等进行管理,此外还有系统的管理、系统用户的管理、影片资讯的管理等。在此基础上,得出了该软件的主要功能模块。系统功能模块如图4.1所示: 图4.1系统功能模块图4.2数据库设计4.2.1数据库概念结构设计数据库概念结构设计是将需求分析得到的用户需求转变为信息结构即概念模型的过程。概念结构是各种数据模型的共同基础,相对于数据模型更加抽象,更稳定。用户实体,包括账号、密码、头像、姓名、性别和联系方式。电影信息实体,包括电影名称、演员阵容、电影海报、导演、电影产地、简介、电影类型和上映日期。系统各个实体间的E-R图如图4.2所示。收藏电影名称演员阵容 电影海报账号密码头像观看导演用户电影信息观看时间姓名性别联系方式 电影产地上映日期评价简介电影类型 时间 内容 回复内容图4.2系统E-R图4.2.2数据库逻辑结构设计在抽象的数据实体以及E-R图的基础上,所有实体都需要单独转化成表,建立相应的数据库。由此,我们可以对本系统做出数据库逻辑设计,即表设计。基于Vue的微时光电影管理系统的具体表设计如下:(1)管理员表users使用“管理员表users”来保存Administrator数据。users的结构如表4.1所示。表4.1管理员表字段名称类型长度字段说明主键默认值idbigint主键主键usernamevarchar20用户名passwordvarchar20密码rolevarchar100角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP(2)用户表yonghu“用户表yonghu”是用于存储用户的数据。yonghu的结构如表4.2所示。表4.2用户表字段名称类型长度字段说明主键默认值idbigint主键主键yonghuzhanghaovarchar20用户账号mimavarchar20密码yonghuxingmingvarchar10用户姓名xingbievarchar2性别lianxifangshivarchar11联系方式touxianglongtext40头像(3)电影信息评论表discussdianyingxinxi“电影信息评论discussdianyingxinxi”是用来存储电影信息评论数据。discussdianyingxinxi结构如表4.3所示。表4.3电影信息评论表字段名称类型长度字段说明主键默认值idbigint主键主键useridbigint20用户账号avatarurllongtext40头像nicknamevarchar20用户名contentlongtext200评论内容replylongtext200回复内容(4)电影信息表dianyingxinxi“电影信息表dianyingxinxi”用来存储电影信息的数据。dianyingxinxi的结构如表4.4所示。表4.4电影信息表字段名称类型长度字段说明主键默认值idbigint主键主键dianyingmingchengvarchar20电影名称dianyingfenleivarchar50观影记录dianyingchandivarchar20电影产地dianyinghaibaolongtext100电影海报yanyuanzhenrongvarchar50演员阵容dianyingdaoyanvarchar20电影导演shangyingriqidate上映日期dianyingjieshaolongtext400电影介绍(5)收藏表storeup“收藏表storeup”是用来存储用户收藏电影的数据。storeup的结构如表4.5所示。表4.5收藏表字段名称类型长度字段说明主键默认值idbigint主键主键useridbigint20用户账号namevarchar20电影名称picturelongtext100电影海报typevarchar20电影类型1remarkvarchar100备注(6)观影记录表guanyingjilu“观影记录表guanyingjilu”是用来存储用户观影记录的数据。guanyingjilu的结构如表4.6所示。表4.6观影记录表字段名称类型长度字段说明主键默认值idbigint主键主键yonghuzhanghaovarchar20用户账号yonghuxingmingvarchar10用户姓名dianyingmingchengvarchar20电影名称dianyingleixingvarchar20电影类型guankanshijiandatetime观看时间第5章系统实现5.1实现环境该系统的开发环境为:开发语言:Java框架:SpringbootJDK版本:JDK1.8服务器:tomcat7数据库:MySQL5.7数据库工具:Navicat11开发软件:ideaMaven包:Maven3.3.9浏览器:谷歌浏览器5.2用户注册使用者首次登陆时,按下“登入/注册”键,便会进入登入注册页面,必须输入使用者的帐号、密码、姓名、性别和年龄等信息,用户注册页面如图5.1所示;图5.1用户注册界面当使用者填写好基本资料后,按下注册键,便会出现“已注册”的讯息,表示注册已完成;如果没有,则表示失败。用户注册成功界面如图5.2所示;图5.2用户注册成功界面实现该功能的关键代码如下:@IgnoreAuth@PostMapping(value="/register")publicRregister(@RequestBodyUsersEntityuser){//ValidatorUntils.validatEntity(user);if(userService.SelectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){returnR.error("用户已存在");}UserService.insert(user);returnR.ok();}5.3用户登录登陆网站时,需要先键入所用的帐号及密码,再按下“登录”键。若使用者未键入使用者名称或口令密码,则会被系统提醒键入后才能登入。用户登录界面如图5.3所示;图5.3用户登录界面在登陆页面上,当使用者键入使用者名称及密码后,再按下“登录”键,便会有一个“已登录”的讯息,并将会被传送至主页面。用户登录成功界面如图5.4所示;图5.4用户登录成功界面实现该功能的关键代码如下:@IgnoreAuth@RequestMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YonghuEntityu=yonghuService.SelectOne(newEntityWrapper<YonghuEntity>().eq("yonghuzhanghao",username));if(u==null||!u.getMima().equals(password)){returnR.error("账号或密码不正确");}Stringtoken=tokenService.generateToken(u.getId(),username,"yonghu","用户");returnR.ok().put("token",token);}5.4管理员登录当管理员登录到后台管理系统时,当他们键入了正确的账号与密码,然后选定了“管理员”,便可进入到后台管理的首页。如果名称或口令密码键入错误,将会出现一则讯息,表示名称或口令密码为无效,也就是不能登录到后台的管理系统。后台登录界面如图5.5所示;图5.5后台登录界面实现该功能的关键代码如下:@IgnoreAuth @PostMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.SelectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); }5.5用户查看电影类型用户进入系统后,可查看、搜索电影类型,电影类型查看界面如图5.6所示;图5.6电影类型查看界面用户可在列表中选择电影类型进行搜索,搜索界面如图5.7所示;图5.7电影类型搜索界面实现该功能的关键代码如下:@IgnoreAuth
@RequestMapping("/list")
publicRlist(@RequestParamMap<String,Object>params,DianyingleixingEntitydianyingleixing,
HttpServletRequestrequest){
EntityWrapper<DianyingleixingEntity>ew=newEntityWrapper<DianyingleixingEntity>();PageUtilspage=dianyingleixingService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,dianyingleixing),params),params));returnR.ok().put("data",page);}@RequestMapping("/lists")
publicRlist(DianyingleixingEntitydianyingleixing){EntityWrapper<DianyingleixingEntity>ew=newEntityWrapper<DianyingleixingEntity>();
ew.AllEq(MPUtil.allEQMapPre(dianyingleixing,"dianyingleixing"));returnR.ok().put("data",dianyingleixingService.selectListView(ew));}@RequestMapping("/query")publicRquery(DianyingleixingEntitydianyingleixing){
EntityWrapper<DianyingleixingEntity>ew=newEntityWrapper<DianyingleixingEntity>();
ew.allEq(MPUtil.allEQMapPre(dianyingleixing,"dianyingleixing"));
DianyingleixingViewdianyingleixingView=dianyingleixingService.selectView(ew);
returnR.ok("查询电影类型成功").put("data",dianyingleixingView);}5.6用户查看电影信息用户登录后,可以查看电影信息,电影信息查看界面如图5.8所示;图5.8电影信息查看界面用户可以通过输入电影名称或关键字对电影信息进行查询,电影信息查询界面如图5.9所示;图5.9电影信息查询界面实现该功能的关键代码如下:@RequestMapping("/list")PublicRlist(@RequestParamMap<String,Object>params,DianyingxinxiEntitydianyingxinxi,
@RequestParam(required=false)@DateTimeFormat(pattern="yyyy-MM-dd")Dateshangyingshijianstart,@RequestParam(required=false)@DateTimeFormat(pattern="yyyy-MM-dd")Dateshangyingshijianend,
HttpServletRequestrequest){EntityWrapper<DianyingxinxiEntity>ew=newEntityWrapper<DianyingxinxiEntity>();
if(shangyingshijianstart!=null)ew.ge("shangyingshijian",shangyingshijianstart);
if(shangyingshijianend!=null)ew.le("shangyingshijian",shangyingshijianend);
PageUtilspage=dianyingxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,dianyingxinxi),params),params));
returnR.ok().put("data",page);}@RequestMapping("/query")
publicRquery(DianyingxinxiEntitydianyingxinxi){EntityWrapper<DianyingxinxiEntity>ew=newEntityWrapper<DianyingxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(dianyingxinxi,"dianyingxinxi"));DianyingxinxiViewdianyingxinxiView=dianyingxinxiService.selectView(ew)returnR.ok("查询电影信息成功").put("data",dianyingxinxiView);}5.7用户收藏电影用户登录系统后可以对电影进行收藏,也可取消收藏。用户收藏电影界面如图5.10所示;图5.10用户收藏电影界面用户成功收藏电影界面如图5.11所示;图5.11用户成功收藏电影界面实现该功能的关键代码如下:@IgnoreAuth
@RequestMapping("/list")
publicRlist(@RequestParamMap<String,Object>params,StoreupEntitystoreup,
HttpServletRequestrequest){
EntityWrapper<StoreupEntity>ew=newEntityWrapper<StoreupEntity>();
PageUtilspage=storeupService.QueryPage(params,MPUtil.sort(MPUtil.between(MPUtil.LikeOrEq(ew,storeup),params),params));
returnR.ok().put("data",page);}@RequestMapping("/lists")
publicRlist(StoreupEntitystoreup){
EntityWrapper<StoreupEntity>ew=newEntityWrapper<StoreupEntity>();
ew.allEq(MPUtil.allEQMapPre(storeup,"storeup"));
returnR.ok().put("data",storeupService.selectListView(ew));}@RequestMapping("/add")
publicRadd(@RequestBodyStoreupEntitystoreup,HttpServletRequestrequest){
storeup.SetId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(storeup);
storeupService.insert(storeup);
returnR.ok();}5.8用户查看电影资讯用户进入系统后,首页可查看电影资讯,同时可输入资讯关键字进行搜索并查看电影资讯,电影资讯查看界面如图5.12所示;图5.12电影资讯查看界面界面用户可以通过输入关键字词进行搜索相关的电影资讯,搜索查询界面如图5.13所示;图5.13电影资讯搜索查询界面实现该功能的关键代码如下:@IgnoreAuth
@RequestMapping("/list")
publicRlist(@RequestParamMap<String,Object>params,NewsEntitynews,
HttpServletRequestrequest){
EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>();
PageUtilspage=newsService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.LikeOrEq(ew,news),params),params));
returnR.ok().put("data",page);}@RequestMapping("/lists")
publicRlist(NewsEntitynews){
EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre(news,"news"));
returnR.ok().put("data",newsService.selectListView(ew));}@RequestMapping("/query")
publicRquery(NewsEntitynews){
EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre(news,"news"));
NewsViewnewsView=newsService.selectView(ew);
returnR.ok("查询电影资讯成功").put("data",newsView);}5.9用户查看电影推荐用户可以在系统首页查看电影推荐,浏览当前热门电影信息。热门电影推荐查看界面如图5.14所示;图5.14热门电影推荐查看界面实现该功能的关键代码如下:@IgnoreAuth
@RequestMapping("/list")
publicRlist(@RequestParamMap<String,Object>params,SystemintroEntitysystemintro,
HttpServletRequestrequest){
EntityWrapper<SystemintroEntity>ew=newEntityWrapper<SystemintroEntity>();
PageUtilspage=systemintroService.queryPage(params,MPUtil.sort(MPUntil.between(MPUntil.likeOrEq(ew,systemintro),params),params));
returnR.ok().put("data",page);}@IgnoreAuth
@RequestMapping("/detail/{id}")
publicRdetail(@PathVariable("id")Longid){
SystemintroEntitysystemintro=systemintroService.selectById(id);
returnR.ok().put("data",systemintro);}5.10用户留言评论用户可以在留言板进行评论,点击提交后可完成对电影的评论。用户评论界面如图5.15所示;图5.15用户评论界面实现该功能的关键代码如下:@IgnoreAuth
@RequestMapping("/list")
publicRlist(@RequestParamMap<String,Object>params,MessagesEntitymessages,
HttpServletRequestrequest){
EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();
PageUtilspage=messagesService.QueryPage(params,MPUtil.sort(MPUtil.between(MPUtil.LikeOrEq(ew,messages),params),params));
returnR.ok().put("data",page);}@RequestMapping("/lists")
publicRlist(MessagesEntitymessages){
EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();
ew.allEq(MPUtil.allEQMapPre(messages,"messages"));
returnR.ok().put("data",messagesService.selectListView(ew));
}@RequestMapping("/query")
publicRquery(MessagesEntitymessages){
EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();
ew.allEq(MPUtil.allEQMapPre(messages,"messages"));
MessagesViewmessagesView=messagesService.selectView(ew);
returnR.ok("查询留言板成功").put("data",messagesView);}5.11用户管理当管理员以管理员的身份访问用户管理界面时,可以通过添加,删除,检查,编辑使用者资料,检视细节,来管理系统使用者。用户管理界面如图5.16所示;图5.16用户管理界面进入用户管理界面后,可进行删除用户等操作,用户删除界面如图5.17所示;图5.17用户删除界面实现该功能的关键代码如下:@RequestMapping("/update")
publicRupdate(@RequestBodyUsersEntityuser){
//ValidatorUtils.validateEntity(user);UsersEntityu=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()));
if(u!=null&&u.getId()!=user.getId()&&u.getUsername().equals(user.getUsername())){
returnR.error("用户名已存在。");}
userService.updateById(user);//全部更新
returnR.ok();}@RequestMapping("/delete")
publicRdelete(@RequestBodyLong[]ids){
userService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();}}5.12电影类型管理以管理员身份进入到电影类型管理界面,点击搜索类型,会自动跳转导航到到所要搜索的电影类型的详细信息,即可通过一系列操作对电影类型进行修改或查看。电影类型管理界面如图5.18所示;图5.18电影类型管理界面进入到电影类型管理界面,电影类型查询界面如图5.19所示;图5.19电影类型查询界面实现该功能的关键代码如下:@RequestMapping("/info/{id}")
publicRinfo(@PathVariable("id")Longid){DianyingleixingEntitydianyingleixing=dianyingleixingService.selectById(id);
returnR.ok().put("data",dianyingleixing);}@IgnoreAuth
@RequestMapping("/detail/{id}")
publicRdetail(@PathVariable("id")Longid){
DianyingleixingEntitydianyingleixing=dianyingleixingService.selectById(id);
returnR.ok().put("data",dianyingleixing);}@RequestMapping("/query")
publicRquery(DianyingleixingEntitydianyingleixing){
EntityWrapper<DianyingleixingEntity>ew=newEntityWrapper<DianyingleixingEntity>();
ew.allEq(MPUtil.allEQMapPre(dianyingleixing,"dianyingleixing"));
DianyingleixingViewdianyingleixingView=dianyingleixingService.selectView(ew);
returnR.ok("查询电影类型成功").put("data",dianyingleixingView);}5.13电影信息管理以管理员身份登录到系统并进入电影信息管理界面后,点击影片名称即可查看影片信息,也可进行添加、删除、查看等操作。电影信息管理界面如图5.20所示;图5.20电影信息管理界面进入电影信息管理界面后,可进行电影信息修改等操作,电影信息修改界面如图5.21所示;图5.21电影信息修改界面实现该功能的关键代码如下:@RequestMapping("/save")
publicRsave(@RequestBodyDianyingxinxiEntitydianyingxinxi,HttpServletRequestrequest){SetId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(dianyingxinxi);
dianyingxinxiService.insert(dianyingxinxi);
returnR.ok();}@RequestMapping("/add")
publicRadd(@RequestBodyDianyingxinxiEntitydianyingxinxi,HttpServletRequestrequest){
dianyingxinxi.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(dianyingxinxi);
dianyingxinxiService.insert(dianyingxinxi);
returnR.ok();}@RequestMapping("/update")
publicRupdate(@RequestBodyDianyingxinxiEntitydianyingxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(dianyingxinxi);
dianyingxinxiService.updateById(dianyingxinxi);//全部更新
returnR.ok();}5.14观影记录管理通过管理员身份登录,进入观影记录管理界面后,可以点观影记录名称进行搜索,导航到所搜索观影记录的详细信息,可以进行添加、删除、查看和编辑观影记录,并查看其详细信息的操作。观影记录界面管理如图5.22所示;图5.22观影记录管理界面进入观影记录管理界面后,可以进行查看详情等操作,观影记录查看详情界面如图5.23所示;图5.23观影记录查看详情界面实现该功能的关键代码如下:@RequestMapping("/query")
publicRquery(GuanyingjiluEntityguanyingjilu){
EntityWrapper<GuanyingjiluEntity>ew=newEntityWrapper<GuanyingjiluEntity>();
ew.allEq(MPUtil.allEQMapPre(guanyingjilu,"guanyingjilu"));
GuanyingjiluViewguanyingjiluView=guanyingjiluService.selectView(ew);
returnR.ok("查询观影记录成功").put("data",guanyingjiluView);}@RequestMapping("/info/{id}")
publicRinfo(@PathVariable("id")Longid){
GuanyingjiluEntityguanyingjilu=guanyingjiluService.selectById(id);
returnR.ok().put("data",guanyingjilu);}@IgnoreAuth
@RequestMapping("/detail/{id}")
publicRdetail(@PathVariable("id")Longid){
GuanyingjiluEntityguanyingjilu=guanyingjiluService.selectById(id);
returnR.ok().put("data",guanyingjilu);}5.15电影资讯管理以管理员身份进入到电影资讯管理界面,可以通过一系列操作对电影资讯进行修改或查看。电影资讯管理界面如图5.24所示;图5.24电影资讯管理界面管理员可对电影的介绍等进行修改等操作,电影资讯修改界面如图5.25所示;图5.25电影资讯修改界面实现该功能的关键代码如下:@RequestMapping("/page")
publicRpage(@RequestParamMap<String,Object>params,NewsEntitynews,
HttpServletRequestrequest){
EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>();
PageUtilspage=newsService.QueryPage(params,MPUtil.sort(MPUtil.between(MPUtil.LikeOrEq(ew,news),params),params));
returnR.ok().put("data",page);}@RequestMapping("/add")
publicRadd(@RequestBodyNewsEntitynews,HttpServletRequestrequest){
news.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
returnR.ok();}@RequestMapping("/update")
publicRupdate(@RequestBodyNewsEntitynews,HttpServletRequestrequest){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
returnR.ok();}@RequestMapping("/delete")
publicRdelete(@RequestBodyLong[]ids){
newsService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();}5.16留言板管理作为一个管理员,登陆该系统后,可以在评论栏的管理页面上点击回答,然后就可以在评论页面上进行回答;还可以添加或删除影片中的评论,并可以浏览更多内容。留言板管理界面如图5.26所示;图5.26留言板管理界面留言板回复界面如图5.27所示;图5.27留言板回复界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(MessagesEntitymessages){EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();ew.allEq(MPUtil.allEQMapPre(messages,"messages"));MessagesViewmessagesView=messagesService.selectView(ew);returnR.ok("查询留言板成功").put("data",messagesView);}@RequestMapping("/update")publicRupdate(@RequestBodyMessagesEntitymessages,HttpServletRequestrequest){//ValidatorUtils.validateEntity(messages);MessagesService.updateById(messages);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){MessagesService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.17系统管理以管理员的身份,进入到系统管理界面,点击修改,就可以对系统界面展开查看细节以及增删除查改等操作,还可以被用来对系统界面进行美化和完善。轮播图是系统管理的一部分,轮播图管理界面如图5.28所示;图5.28轮播图管理界面“关于我们”也是系统管理的一部分。“关于我们”管理界面如图5.29所示;图5.29“关于我们”管理界面实现该功能的关键代码如下:@IgnoreAuth
@RequestMapping("/list")
publicRlist(@RequestParamMap<String,Object>params,AboutusEntityaboutus,
HttpServletRequestrequest){
EntityWrapper<AboutusEntity>ew=newEntityWrapper<AboutusEntity>();
PageUtilspage=aboutusService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,aboutus),params),params));
returnR.ok().put("data",page);}@RequestMapping("/lists")
publicRlist(AboutusEntityaboutus){
EntityWrapper<AboutusEntity>ew=newEntityWrapper<AboutusEntity>();
ew.allEq(MPUtil.allEQMapPre(aboutus,"aboutus"));
returnR.ok().put("data",aboutusService.selectListView(ew));}@RequestMapping("/query")
publicRquery(AboutusEntityaboutus){
EntityWrapper<AboutusEntity>ew=newEntityWrapper<AboutusEntity>();
ew.allEq(MPUtil.allEQMapPre(aboutus,"aboutus"));
AboutusViewaboutusView=aboutusService.selectView(ew);
returnR.ok("查询关于我们成功").put("data",aboutusView);}@RequestMapping("/update")
publicRupdate(@RequestBodyAboutusEntityaboutus,HttpServletRequestrequest){
//ValidatorUtils.validateEntity(aboutus);
aboutusService.updateById(aboutus);//全部更新
returnR.ok();}@RequestMapping("/delete")
publicRdelete(@RequestBodyLong[]ids){
aboutusService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();}第6章系统测试在开发完功能模块和前端接口后,应进行一系列的功能和性能测试,对系统进行查漏补缺,测试系统最后完成后的功能是否能够正常操作,从而保证该系统可以保持平稳、可靠地运转,这样就可以在正式投入使用之前,可以对该系统进行相应的改进和更新。在黑盒测试中,测试者首先站在使用者的立场上,把使用者所期望的状况和真实的状况作一个对比,使使用者能够通过有关的函数测试案例,更容易地发现系统存在的问题。在黑盒试验中,常用的试验技术有偏差法和门限法。因为当一个系统的错误很容易出现在一个输入或者一个输出量的限制时,因此阈值分析用于确定输入和输出值的范围,然后选择阈值进行测试,以确定系统的稳定性和可靠性。6.1测试步骤就像开发流程那样,应该有一个步骤来完成测试。一般说来,每一步都是从上一步开始的。一个大规模的电脑系统一般是有若干个子系统,而这些子系统中有若干个功能模块。这样,当对一台大规模的电脑程序进行测试时,主要有如下的步骤:1.发现每个模块的程序代码及具体的设计缺陷。2.对所开发的软件进行验证,并找出软件中的错误。3.对检测出缺陷的接受试验程序进行规定。6.2测试用例6.2.1登录测试用例本测试用例是从使用者的要求出发,对使用者登陆时会遇到的各种情形进行了详细的探讨。登录测试用例表如表6.1所示。表6.1登录测试用例表测试编号测试目的操作步骤预期结果实际结果001登录测试用户名:sanfu密码:5424126登录成功登录成功002登录测试用户名:erhu密码:5424126登录失败登录失败003登录测试用户名:sanfu密码:125463登录失败登录失败6.2.2用户管理测试用例管理端可以对来自浏览器的动作需求进行发起并执行,用户管理测试是以管理员的需求为基础进行的,比如添加、修改、删除用户信息测试等。用户管理测试用例表如表6.2所示。表6.2用户管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加用户信息测试在添加页面输入用户信息,点击确认按钮添加成功添加成功002修改用户信息测试在修改页面修改用户信息,点击确认按钮修改成功修改成功003删除用户信息测试在管理用户信息页面,点击某一用户的删除按钮删除成功删除成功004查询用户信息测试在管理用户信息页面查询输入框输入要查询的学号和名字,点击查询按钮查询成功查询成功6.2.3电影类型管理测试用例电影类型管理测试是以管理员的需求为出发点,测试包括能否实现添加、修改、删除电影类型的测试等,电影类型管理测试如表6.3所示。表6.3电影类型管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加电影类型测试在添加页面输入电影类型点确认添加成功添加成功002修改电影类型测试在修改页面修改电影类型点确认修改成功修改成功003删除电影类型测试在管理电影类型页面点击某用户的删除按钮删除成功删除成功004查询电影类型测试在管理电影类型页面查询输入框输入要查询的电影类型点击查询查询成功查询成功6.2.4观影记录管理测试用例观影记录测试包括例如添加、修改、删除观影记录测试等。此处根据各管理端模块进行测试,由于篇幅的限制,本文仅提出了部分测试案例,观影记录管理测试如表6.4所示。表6.4观影记录管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加观影记录测试在添加页面输入观影记录点击确认添加成功添加成功002修改观影记录测试在修改页面修改观影记录点击确认修改成功修改成功003删除观影记录测试在管理观影记录页面点击某用户删除按钮删除成功删除成功004查询观影记录测试在管理观影记录页面查询输入框输入要查询的观影记录,点击查询查询成功查询成功6.3测试结论该系统通过多个测试案例对基于Vue的微时光电影管理系统进行了全面测试,并在测试的过程中向用户提供了准确的数据,验证了系统开发时想要实现的系统效果,对预想进行了实现,因此可得出结论,该系统在功能和可用性方面都达到了预期效果。结论及展望在本研究中,首先对课题的意义及目前的情况进行了说明,并对本课题所采用的有关技术及关键技术进行了解释,着重说明了本课题所采用的开发语言及有关技术的运用。并对该课题的可行性和需求进行了分析,得出了结论,即该系统的开发是可行的。在文中详细描述了整个系统的实现过程和一些关键代码的使用,并分别展示了不同功能设计完成后的界面,并从背景分析、用户需求、系统设计与系统实现再到部分功能的测试都分别进行了叙述,本开发过程尽力详细描述了开发过程的各个步骤,每一环节都尽力完善,以确保整个系统的开发过程是有效的。本设计存在着一些的缺点和不足,比如,一些用户数据没有被很好地保存在数据库中,导致了用户在使用时产生了视觉疲劳,也有一些功能模块不够简
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场调研机构半年工作报告
- 家居配线箱系统联调测试方案
- 互联网公司产品部半年成果汇报
- 地下停车场施工组织方案
- 储能电站验收评估方案
- 布电线生产项目施工方案
- 2026年全国监理工程师之水利工程目标控制考试难点突破题附答案
- 2026学年内蒙古自治区锡林浩特市二年级语文期末点睛提升快速提分卷(详细参考解析)详细答案和解析
- 2026学年内蒙古自治区呼和浩特市四年级语文期末评估快速提分题(附答案)详细答案和解析
- 论行政强制执行:理论、实践与完善路径
- 公安机关录用人民警察政治考察表
- (正式版)JBT 106-2024 阀门的标志和涂装
- 《静静的顿河》课件
- GB/T 5072-2023耐火材料常温耐压强度试验方法
- 制药用水设备行业营销策略方案
- 高校思想政治理论课教学与研究
- 落水管更换施工方案
- 智能网联汽车技术PPT完整全套教学课件
- 胫骨远端骨折治疗演示
- 导尿管相关尿路感染(CAUTI)预防与控制措施
- 公交车驾驶员岗位安全操作规程
评论
0/150
提交评论