【《基于SpringBoot的学生食堂菜品评价系统设计》12000字(论文)】_第1页
【《基于SpringBoot的学生食堂菜品评价系统设计》12000字(论文)】_第2页
【《基于SpringBoot的学生食堂菜品评价系统设计》12000字(论文)】_第3页
【《基于SpringBoot的学生食堂菜品评价系统设计》12000字(论文)】_第4页
【《基于SpringBoot的学生食堂菜品评价系统设计》12000字(论文)】_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

基于SpringBoot的学生食堂菜品评价系统设计摘要近年来,国内经济正持续稳定发展,城市化水平显著提高,国民生活水平也得到了很大的提升。吃穿住行作为人们最基本的需求,这无疑是讨论最多的话题,一日三餐则是生活第一要素。而在学校食堂普遍存在一种饭菜不合口味情况,这就导致了许多的同学在食堂就餐并不能吃饱的问题。通过本论文设计的评价管理系统,实现用户对食堂菜品的评价,从侧面去改善菜品的味道。本项目设计使用SSM+LayUI+Thymeleaf前后端结合的技术,服务器采用SpringBoot整合的Tomcat,数据库采用比较轻量级的MySQL,实现了展示页面和管理页面。在展示页面中用户可以对当天菜品进行评分评价,以及提交意见;在管理页面中,除了对用户进行管理之外,还对评价、意见进行统一的筛选整理,进而得出对食堂菜品提升的一些建议。关键词:食堂菜品;评价系统;SpringBoot;SSM框架;LayUI目录摘要 2第1章 绪论 8第2章 相关技术介绍 112.1JavaEE技术 112.2Java和JDK版本的选择 112.3数据库 112.4框架介绍 122.4.1SpringBoot 122.4.2SpringMVC 132.4.3MyBatis 142.5本章小结 15第3章 需求分析 163.1系统需求分析 163.1.1系统整体流程分析 163.1.2系统功能需求分析 163.1.3系统非功能需求分析 173.2系统可行性分析 173.2.1技术可行性分析 173.2.2经济可行性分析 183.3本章小结 18第4章 系统设计与实现 194.1系统开发环境搭建 194.1.1开发环境搭建 194.1.2框架项目创建 194.2数据库搭建 214.3登录和注册设计与实现 234.3.1模块设计 234.3.2实体类创建 244.3.3Mapper层 254.3.4Service层 264.3.5Controller层 274.3.6视图层 294.4管理页面框架设计与实现 304.5用户管理模块设计与实现 304.5.1模块设计 304.5.2Mapper层 314.5.3Service层 324.5.4Controller层 324.5.5视图层 334.6菜品管理模块设计与实现 354.6.1模块设计 354.6.2创建实体类 354.6.3Mapper层 364.6.4Service层 374.6.5Controller层 394.6.6视图层 404.7评论管理模块设计与实现 444.7.1模块设计 444.7.2实体类创建 444.7.3Mapper层 454.7.4Service层 464.7.5Controller层 474.7.6视图层 474.8意见管理模块设计与实现 494.8.1模块设计 494.8.2实体类创建 494.8.3Mapper层 504.8.4Service层 514.8.5Controller层 524.8.6视图层 534.9展示页面设计与实现 544.9.1模块设计 544.9.2Mapper层 554.9.3Service层 554.9.4Controller层 564.10本章小结 57第5章 系统测试 585.1登录与测试 585.1.1登录 585.1.2注册 585.2展示页面 595.2.1首页 595.2.2意见栏 615.3管理页面 615.3.1用户管理 615.3.2菜品管理 625.3.3评论管理 635.3.4意见管理 63第6章 总结与展望 646.1总结 646.2展望 64参考文献 66绪论1.1研究背景及意义经济水平的持续发展使高校食堂菜品种类也日益丰富,学生可选择的余地也越来越多。当代高校大学生对菜品的需求不再仅仅满足于解决温饱问题,感官、营养、烹饪和价格成为学生是否选择这道菜的关键影响因素,如何在众多菜品中进行科学选择,同时又不造成食物的浪费,是广大食堂工作人员和学生普遍关注的问题[1]。国内高校普遍存在一个很严重的问题,很多人宁愿花多一点钱吃外卖,也不愿意去食堂就餐,而其中最主要的原因就是觉得食堂的饭菜不合口味,从而导致吃不饱饭的情况。这一现象产生的主要因素就是大家和食堂工作人员之间缺乏沟通,现今大家和食堂之间的沟通大多还是采用手写意见的方式,很多人觉得麻烦不想去浪费时间。而本次的研究就是用于改变大家和食堂工作人员的沟通方式,使得大家可以在食堂吃到自己喜欢的饭菜,食堂也能杜绝一定的浪费。结合大家和食堂的需求,设计并实现一个评价系统,该系统不仅可以帮助大家快速的找到自己喜欢吃的菜品,还可以帮助食堂管理菜品并了解大家对菜品的一些关注情况。1.2研究现状从上个世纪的九十年代开始以来,因特网在全球得到快速的发展,计算机网络与因特网也逐渐从国家科研、军事方面转向民用。随着社会信息化的不断推进和社会经济的不断发展,大家都不谋而合的研究怎么用信息化的方式来提升自己工作的效率。往前推几年,口碑是通过人和人之间口耳相传的,这样得到信息是不够完整、不够准确的。大家平时所能接触到的评价相对来说还是很多,比如说网购,如果说对一个东西很中意,但又不知道大家对它是一个怎么样得看法,是否和商家所描述得一样,质量方面能不能过关,这时候就往往会去点开这个商品的评价,评价里面全部都是对这一件商品的描述,这样所能得到的信息就是相对准确的完整的。在本论文中就把这样的一个设计理念运用在食堂的菜品上面,每个菜品都有着属于自己的评价。1.3主要研究内容为了增加大家和食堂之间的联系,本文设计并实现了一个智能化的评价系统,该系统包括手机端的用户界面、PC端的管理页面、以及用户对菜品评价的算法实现。本文主要研究内容包括以下几个方面:(1)用户界面:通过对用户的所需信息的需求分析,设计了用户界面,实现的功能:对今日菜品进行展示,能对其进行打分、评论操作;根据评分将热度高的菜品进行展示;提前将第二天的菜品展示出来供大家参考。(2)管理页面:通过分析食堂对餐饮的管理的需求,设计并实现用户信息管理、菜品信息管理、意见管理等功能,帮助食堂更方便的了解自身的情况(3)后端的算法实现:采集到用户的点评数据之后先进行预处理,然后把数据添加到持久层,以供后面的展示所用。1.4论文结构本着基于某高校食堂菜品评价的现状,设计实现一套符合该食堂菜品的评价系统。论文的整体结构如下:第一章绪论:首先介绍本论文的研究背景和意义,然后介绍了一下评价系统在各方面的运用,以及食堂在菜品评价方面的现状,确立了本论文的主要研究方向以及内容,最后给出论文的结构。第二章相关技术介绍:分别介绍了本次项目开发所使用到的技术,JavaEE以及JDK版本的选择,数据库选择MySQL的原因,以及对SSM框架的原理,执行流程的讲解。第三章需求分析:从功能性和非功能性两个方面分析系统设计开发的需求,从技术和经济方面分析系统设计开发的可行性。第四章系统设计与实现:根据功能性的需求细分成小的模块,然后对每个模块进行前后端的开发实现。第五章系统测试:对每个模块的功能进行测试,并截图展示每个模块功能实现的情况。第六章总结与展望:对本次项目开发的工作进行最后的总结,并对本项目的一些不足之处以及一些可以改进的地方进行说明,为今后的学习开发指明方向。相关技术介绍2.1JavaEE技术JavaEE是J2EE的一个新的名称,J2EE的全称是Java2PlatformEnterpriseEdition,它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准,或者说,它是在SUN公司领导下,多家公司参与共同制定的企业级分布式应用程序开发规范[2]。作为市场上主流的企业级分布式应用平台的解决方案,J2EE为搭建具有可伸缩性、灵活性、易维护性的企业系统提供了良好的机制,J2EE应用程序是由组件构成的,J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其他组件交互[3]。其中包含了很多技术,本系统中使用的技术有:SpringBoot、SpringMVC、MyBatis、Thymeleaf、Shiro等。2.2Java和JDK版本的选择Java是由美国Sun(StanfordUniversityNetwork)公司,在1995年推出的高级语言(面向程序设计语言)和Java平台的总称[],Java语言简单易操作、性能高,大型的语言即“一处编译处处运行”,分布式、健壮性等特点使得它一跃成为了程序员最喜欢的语言[4]。Java语法和C++相似但是又不一样,C++是运行在操作系统上,直接调用设备硬件,而Java在操作系统的外面加了一层Java虚拟机(JVM),这也就使得Java有了“一处编译,处处运行”的良好移植性[5]。JDK是Java语言的开发工具包,包含了JVM(Java虚拟机)和JRE(Java运行环境),本项目选择当今使用最普遍的jdk8版本,它经历了市场的检验,相对更加成熟、优秀,能够稳定的开发本次项目。2.3数据库目前数据库管理系统主要以技术比较成熟的关系型数据库为主导,国内使用普遍的有IBMDB2,Oracle、SQLServer、MySQL等[6]。结合各方面本次项目选用MySQL数据库。MySQL是最受欢迎的开源SQL数据库管理系统,属于Oracle旗下的产品。MySQL支持多用户操作,性能卓越,开放源代码而且没有版权的限制,使用成本低,体积小,版本更新较快,安装使用简单并且易于维护,MySQL可以运行在多种操作系统平台,移植性很好,在数据量不是特别大的情况下没有什么短板[7]。2.4框架介绍2.4.1SpringBootSpringBoot是由Pivotal团队基于Spring提供的全新框架,其设计目的主要是简化Spring应用初始搭建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,做到开箱即用[8]。Spring框架是Java平台的有种开源应用框架,为了解决企业开发项目复杂性而创建的服务于JavaEE技术的开发框架核心思想是IOC(控制反转),旨在方便项目维护和测试,即不再需要程序员去显示的‘new’一个对象,而是在配置文件中进行配置,指定使用特定参数去调用实体类的构造方法来实例化对象,让Spring框架通过Java的反射机制对Java对象进行统一配置和管理的方法。Spring的另一大特色就是AOP(面向切面编程),这也是一种编程思想,是对于OOP(面向对象编程)的一种补充,通过动态代理的方式在不改变源代码的前提下为系统中的业务组件添加某种功能。图2.1Spring七大模块Spring的一个最大的目的就是使JavaEE开发更加容易,而SpringBoot就是让程序员使用Spring更加容易。2.4.2SpringMVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是软件设计的一种规范,一种架构模式。主要作用就是将业务逻辑、数据显示分离的组织代码,降低视图与业逻辑间的双向耦合[9]。Model(模型):业务模型,提供要展示的数据和行为。View(视图):用户交互界面,比如由HTML组成的界面,或者是一些软件的客户端等。Controller(控制器):控制器本身不会输出任何东西,只接收用户的输入并调用模型和视图完成用户的需求。图2.2MVC结构SpringMVC是SpringFramework的一部分,是基于Java实现MVC的轻量级Web框架,与Spring无缝结合,灵活高效,功能强大。它不用实现程序的接口,只需要通过注解的形式,就能让Java类成为处理请求的控制器[10]。SpringMVC工作原理流程如下:图2.3SpringMVC执行流程2.4.3MyBatisMyBatis是一款优秀的持久层框架,作用与数据持久层,在它的内部封装了jdbc操作,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作,MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数据库中的记录[11]。MyBatis实现流程图如下:图2.4MyBatis执行流程2.5本章小结在本章节中,主要介绍了本次项目在设计开发过程中需要使用到的技术。本次项目基于JavaEE开发,简明的阐述了Java的语言特点和JDK版本的选择。在几款比较流行的数据库中,选用MySQL数据库及选用的原因。最后对需要使用的框架的工作原理及执行流程做了一个简单的介绍。需求分析3.1系统需求分析3.1.1系统整体流程分析本项目开发了一个食堂菜品评论系统,系统整体功能如图。图3.1系统整体功能设计3.1.2系统功能需求分析菜品评价系统展示页面(1)菜品展示:在首页对菜品进行展示,以列表的形式排列展示今日食堂菜品,把评分比较高的几个菜品做一个画廊,对第二天的菜品进行一个预告,用户可以对当日菜品进行评分、评论。(2)意见栏目:根据实际需求,用户可能对食堂存在一些建议或者意见,在此页面用户可以对食堂或者是系统提出建议,并上传到管理页面由管理员进行处理。(3)个人信息页面:用户可以查看自己的信息,并能进行信息补全或者是修改等操作。菜品评价系统管理页面(1)用户管理:列表展示用户信息,查看用户个人信息、注册时间等,并能对用户进行删除操作。(2)菜品管理:列表展示菜品信息,包括菜品的图片、价格、评分、描述等。可以根据菜品的名字进行搜索、也可以通过价格进行搜索相对应得菜品。菜品的添加、修改、删除均由管理员操作(3)评论管理:用户对菜品进行的评论,根据菜品的名字显示当前菜品的全部评论,管理员发现有不适当的,或者说是不相关的评论是可以进行删除的。(4)意见管理:此栏目显示的用户的意见,管理员是必须进行处理的,所以会对每条意见进行标记,未处理则提示管理员进行处理。3.1.3系统非功能需求分析本系统不止有功能性的需求,对非功能性需求也是非常有必要的,如系统的稳定性、用户的安全性、数据的安全性、系统的扩展、页面的美观等。(1)系统的稳定性本系统作为食堂的管理系统,食堂每天都开放,系统也必须保证每天都能够稳定运行,满足用户、管理员的需求(2)用户的安全性用户的个人信息对用户来说是属于自己的隐私,用户的密码应该是只属于用户自己能够查看并使用的。所以系统需要做到对用户隐私信息保密措施。(3)数据的准确性、安全性系统中存在很多的数据传输,而数据传输的准确性、安全性对系统来说是重中之重。(4)系统的扩展性用户和管理员的需求有所改变或者是增加,那么系统功能就会进行一定的修改、扩展,所以必须保证系统的可扩展性来满足用户的需求。(5)系统页面的美观性人靠衣装马靠鞍,一个美观漂亮的页面是每个用户都想要的。3.2系统可行性分析3.2.1技术可行性分析本系统选用面向对象的Java语言有很多优秀的特点,它可以跨平台、非常的稳定、并且可以移植的,这很符合本次项目所以首选。前端页面,选用LayUI,它提供丰富的组件供开发者选择,配合HTML、CSS、JS和Thymeleaf实现整个前端页面的开发。数据库选择MySQL,它开源免费,功能强大并且运行时不占用很多资源,服务器选择Tomcat,在SpringBoot中是已经对它进行了整合的。本项目是一个前后端相结合的JavaWeb项目,前后端的数据交互选择的是Thymeleaf引擎,后端采用SpringBoot+SpringMVC+MyBatis的一个架构,项目清晰、层次分明。综合上述,Java在IT行业非常的流行并有很多配套的开发技术和开发框架,在开发设计本次管理系统项目中完全是可行的。3.2.2经济可行性分析互联网技术发展日新月异,互联网应用越来越多,它已经涉及到我们生活中的每一个角落,随处可见,而本次开发的管理系统对于食堂来说是非常有必要的,它改变了师生与食堂工作人员的联系方式,打破了时间和地域的限制,对师生而言,美观大方的界面,方便且易操作的网站设计,能更好的增加沟通的体验。对食堂而言,更方便的得到建议去改变菜品的不足,从而大大减少食材浪费。本次项目设计开发所使用的技术基本多是开源免费的。所以综合上述,本次项目开发在经济上是完全可行的。3.3本章小结本章节主要完成的工作是对系统设计与开发的分析。一方面通过流程图分析了整个项目的功能性需求和非功能性需求,另一方面从技术和经济两个方面,对系统设计与开发的可行性进行了分析。系统设计与实现4.1系统开发环境搭建4.1.1开发环境搭建Java环境配置:选择相应的Java开发工具包JDK下载并安装配置Java的环境变量JAVA_HOME、Path、Class_Path命令行测试java-versionMaven环境配置:选择相应的Maven版本下载并安装配置Maven的环境变量MAVEN_PATH、path命令行测试mvn-version配置maven的settings文件修改maven的默认仓库为本地仓库路径在settings文件中修改下载的Jar包服务器,选用国内阿里云的服务器在下载的时候速度更高在settings文件中配置JDK命令行测试阿里云服务器是否修改成功mvnhelp:systemMySQL环境配置 :下载对应MySQL并安装配置MySQL环境变量安装MySQL图形化管理工具Navicat4.1.2框架项目创建本项目开发工具选用InterlliJIDEA。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的[12]。使用IDEA结合项目管理工具Maven搭建整个项目的框架,使用SSM和前端视图层分层管理项目。具体步骤如下:使用IDEA创建一个空的SpringBoot项目,勾选Maven和对应的Java版本。在pom.xml文件中导入需要使用到技术的Jar包,选择合适的版本,由Maven统一管理。在perties文件中对相应技术进行简单的配置,如:连接数据库等。创建项目目录,Java包;如:entity、mapper、controller、service、utils、config等 使用druid连接池连接数据库。指定MyBatis的扫描包,Mapper.xml映射文件路径。图4.1项目初始目录图4.2连接数据库图4.3Druid配置图4.4MyBatis配置4.2数据库搭建通过前面的需求分析,已经大致明确了本系统的基本功能,选定MySQL数据库。为了系统的持久化,对应实体类设计对应数据库表用以存储数据。图4.5数据库模型用户表user用户表是通过注册功能添加的,你要登录系统就必须要注册一个账号,设置自己的密码。同时用户的个人信息也存储了user表中,如名字、性别、生日等。具体如图4.2.2所示。图4.6user表菜品表food菜品表记录了食堂的每一道菜品,包括菜品的名字、价格、图片等信息,以及菜品的综合评分值。具体如图4.2.3所示。图4.7food表评价表evaluate评价表是对应菜品和用户而创建,记录了用户的每一次评价,评价的分值、评论内容,用户的名字,以及评论的时间等。具体如图4.2.4所示。图4.8evaluate表意见表sug意见表对应了用户每一次发表的意见,最主要的就是表中的意见信息suggestion,除了有发表意见的时间外,另还有一个时间信息,那就是管理员处理此条意见的时间。具体如图4.2.5所示。图4.9sug表4.3登录和注册设计与实现4.3.1模块设计登录、注册模块是你接触到系统的第一个模块,因为系统中可能会设计到用户信息、操作等相对比较私密的信息,就必须添加登录注册功能模块以保证个人信息的隐私性,确保每个用户个人信息的安全。注册和登录功能都要与数据库中的数据进行匹配来确认账号密码的正确性,具体流程如图4.3.1所示。 图4.10登录注册流程设计4.3.2实体类创建创建用户、管理员的实体类。属性字段应有学号、密码、名字、性别、生日以及注册的时间。代码如下:图4.11用户实体类图4.12管理员实体类4.3.3Mapper层(1)登录功能。Mapper层访问数据库查询用户信息返回用户对象,接口方法如下图:图4.13用户登录Mapper接口图4.14管理员登录mapper接口Mapper映射文件内编写SQL语句,如下图:图4.15用户登录SQL图4.16管理员登录SQL(2)注册功能。用户注册时,先查数据库中该账号是否已经被注册,若没有则将用户填写的信息添加到数据库中完成注册。Mapper接口方法如下图:图4.17注册mapper接口方法Mapper接口映射文件中的SQL代码如下:图4.18注册SQL4.3.4Service层(1)登录功能。Service实现类中调用Mapper层中定义好的方法,继承实现Service接口中的方法代码如下:图4.19用户登录Service层代码图4.20管理员登录Service层代码(2)注册功能。将用户的账号在数据库中查询之后,数据库中没有此用户就调用添加用户的方法,在当前Service层获取一个当前时间作为用户的注册时间,新建一个User对象存放用户信息,最后将User对象传递到Mapper层。Service实现类代码如下:图4.21用户注册Service层代码4.3.5Controller层(1)登录功能。Controller层使用了Shiro作认证、授权,Shiro三大核心分别为Subject、Realm、SecurityManager。Subject可以把它看作是Shiro的门面,它用户和外部交互,Realm用于和数据库交互,SecurityManager安全管理主要是一些Shiro的安全操作。图4.22登录Controller层代码图4.23UserRealm图4.24ShiroConfig1图4.25ShiroConfig24.3.6视图层(1)登录页面。简单的做了一个表单用于提交数据到后端进行数据库匹配,form表单代码如下图:图4.26登录页面前端核心代码(2)注册页面form表单提交数据,代码如下图:图4.27注册页面前端核心代码1图4.28注册页面前端核心代码24.4管理页面框架设计与实现页面采用LayUI框架组件实现,由于LayUI框架组件的美观性使得在设计开发前端页面时,不需要用很多的时间来设计前端页面的CSS样式,在很大程度上简化了前端页面的开发难度。前端页面如下:图4.29管理页面前端模板实现 4.5用户管理模块设计与实现4.5.1模块设计用户通过注册之后就拥有属于自己的账号,可以通过账号密码进行登录系统,而管理员是可以对用户进行查看管理的,拥有删除用户的权限,设计流程如图4.5.1所示。图4.30用户管理模块设计4.5.2Mapper层用户管理的用户列表、用户查询、删除功能。在Mapper层中创建queryAll()、queryBystuNumber()、deleteUserById()方法。图4.31用户管理mapper层方法在Mapper映射包的UserMapper.xml文件中实现用户管理的方法,编写SQL语句。图4.32用户管理mapper层SQL4.5.3Service层Service接口中定义相关的方法调用Mapper层中的方法,queryAll()、queryBystuNumber()、deleteUserById()。图4.33用户管理Service层方法定义在UserServiceImpl中实现UserService接口并重写UserService中的方法,自动装配UserMapper调用Mapper层中的方法。图4.34用户管理Service层方法实现4.5.4Controller层Controller层通过Restful风格接收请求,Restful风格方便简单,在请求url的后面跟上参数。Controller层除了实现功能以外,还兼顾了路由的任务。自动装配实现UserServiceImpl的实例UserService。图4.35引用userService前端页面点击用户列表的时候,会发送一个restful风格请求到后端以获取所用用户数据,控制页面的跳转,并使用Model返回一个用户集合users到前端视图层,count表示用户的数量。Controller层实现代码如下:图4.36全部用户请求方法管理员使用删除功能删除对应用户的时候,发送请求并携带需要删除用户的id到后端,controller层调用Service层的方法,然后Service层调Mapper层,由Mapper层删除数据库中的该用户,最后重定向到用户列表页面。Controller层实现代码如下:图4.37删除用户当用户数量过多需要对指定用户进行操作的时候,在用户列表中一个一个寻找难免会花费很多的时候。用户查找功能用户账号或者是用户名字精准查找,这相当于一个简单的筛选功能。Controller层实现方法代码如下:图4.38查询单个用户4.5.5视图层前端页面使用的是静态页面加上Thymeleaf的方式实现。(1)用户列表核心代码如下:图4.39用户列表table实现(2)删除功能,a标签发送请求到后端,并调用JS函数确认是否删除。核心代码如下:图4.40删除用户html图4.41删除用户js(3)用户查找功能通过表单提交请求到后端,后端返回数据。核心代码如下:图4.42表单图4.43输入框图4.44搜索按钮4.6菜品管理模块设计与实现4.6.1模块设计菜品管理模块是管理员的对菜品的增删查改,菜品的查询、筛选,菜品的添加、修改、删除,细分为五个功能。设计流程如图4.6.1所示:图4.45菜品管理模块设计4.6.2创建实体类创建菜品实体类Food。菜品属性:名字、价格、评分、描述、以及图片。代码如下:图4.46菜品实体类4.6.3Mapper层创建FoodMapper接口,编写queryAll()方法查询所有菜品信息,通过价格筛选菜品queryByPrice()方法、通过id查询菜品queryById()方法、删除菜品deleteById()方法、通过菜品名字查询方法queryByFoodName()。代码如下:图4.47菜品管理mapper层方法在FoodMapper.xml文件中通过SQL语句操作数据库,实现FoodMapper接口中的方法。核心代码如下:图4.48菜品管理mapper层映射文件4.6.4Service层创建FoodService接口,声明方法用于Service层调用Mapper层。代码如下:图4.49菜品管理Service方法定义创建类FoodServiceImpl实现FoodService接口,重写并实现FoodService接口中的方法,引用FoodMapper调用FoodMapper中的方法。添加菜品的时候由于上传了图片,在Service层addFood()方法中对图片进行处理,统一保存图片的地址,使用时间戳为菜品的名字以保证图片的唯一性,不会造成菜品与图片对不上的情况,最后把图片的路径传递到Mapper层保存到数据库中。代码如下:图4.50引用foodMapper图4.51菜品管理ServiceImpl1图4.52菜品管理serviceImpl2图4.53图片处理4.6.5Controller层前端页面点击菜品列表的时候,发送请求到后端,在Controller层完成对请求的处理,controller层调用Service层,返回所有菜品的集合以及菜品的数量给前端,并实现前端页面跳转到所有菜品页面。Controller层实现代码如下:图4.54全部菜品添加功能请求跳转到添加菜品的页面,在菜品页面对菜品的信息进行填写之后,再发送一个请求到后端,并传输添加菜品的数据信息,最后重定向到所有菜品列表的页面。Controller层代码如下:图4.55添加菜品菜品修改功能,请求到修改页面的同时要传输当前菜品的数据,Controller层在处理时候把数据转发到修改页面,修改完成之后再把新数据一层一层传输到数据库中,最后重定向到菜品列表页面,继续查询所有菜品信息以保证数据的实时性。代码如下:图4.56修改菜品菜品删除功能,带着当前菜品的id请求到后端,后端通过id删除数据库中的菜品信息,并重查数据库中的菜品信息,并将所有菜品信息传输到菜品列表页面。代码如下:图4.57删除菜品4.6.6视图层静态页面加Thymeleaf实现。(1)菜品列表功能核心代码如下:图4.58菜品列表1图4.59菜品列表2图4.60菜品编辑(2)添加菜品功能核心代码如下:图4.61添加菜品1图4.62添加菜品2(3)添加菜品上传图片的JS代码:图4.63添加菜品图片JS代码(4)修改菜品功能在添加菜品的基础上预置了当前菜品的数据,其它样式与添加菜品一致。核心代码如下:图4.64修改菜品1图4.65修改菜品2图4.66修改菜品JS代码(5)删除菜品功能,点击删除图标时发送请求到后端,设置点击函数Onclick。代码如下:图4.67删除菜品JS函数food_del()代码::图4.68删除菜品JS代码4.7评论管理模块设计与实现4.7.1模块设计评论管理模块管理员对用户发表的评论进行的管理操作,具体功能有全部评论的查看、评论的删除、按用户或者菜名进行评论筛选。设计图图4.7.1所示:图4.69评论管理模块设计4.7.2实体类创建评论的实体类Evaluate应该包含对应菜品名字、评分、评论的内容、评论人、以及评论时间几个参数。核心代码如下:图4.70评论实体类4.7.3Mapper层创建评论管理模块的Mapper层接口EvaluateMapper,并定义通过菜名查询queryByFoodName()、通过用户查询queryByStuNumber()、查询全部queryAll()、删除评论deleteById()四个方法。核心代码如下:图4.71评论管理mapper层方法在EvaluateMapper接口的映射文件EvaluateMapper.xml中编写对应方法的SQL语句,完成对数据库的操作。核心代码如下:图4.72评论管理SQL1图4.73评论管理SQL24.7.4Service层新建EvaluateService接口并定义queryByFoodName()、通过用户查询queryByStuNumber()、查询全部queryAll()、删除评论deleteById()四个方法。核心代码如下:图4.74评论管理Service新建EvaluateServiceImpl类实现EvaluateService接口,重写EvaluateService接口中的方法并实现。核心代码如下:图4.75评论管理ServiceImpl1图4.76评论管理ServiceImpl24.7.5Controller层新建EvaluateController类,用于处理前端页面的请求。图4.77评论管理Controller层请求处理1图4.78评论管理Controller层请求处理24.7.6视图层所有的评论信息使用table+thymeleaf的方式遍历显示到页面上,核心代码如下:图4.79评论的列表图4.80通过学号筛选评论图4.81通过菜品筛选评论图4.82菜品删除4.8意见管理模块设计与实现4.8.1模块设计后台管理页面的意见管理模块,意见有已读和未读两个状态,首先进行一个分类,细分为所有意见和未读意见,未读意见需要进行处理不能进行删除,设计图如下:图4.83意见管理模块设计4.8.2实体类创建意见的实体类拥有属性hand_s标记当前的意见是否被处理,提交意见的用户sug_user,意见的标题title,意见的内容suggestion,还有就是提交意见的时间createtime和管理员处理意见的时间checktime,以及可能的回复内容。代码如下:图4.84意见实体类4.8.3Mapper层在项目目录mapper中新建SuggestionMapper接口并定义需要的方法,如查询全部意见、未处理意见、单条意见,删除意见和处理意见。代码如下图:图4.85意见管理mapper层方法定义在项目resources目录中mapper文件夹中编写suggestionMapper的映射文件,编写SQL语句操作数据库。代码如下:图4.86意见管理mapper映射文件4.8.4Service层在Service层中新建SuggestionService接口,以及该接口的实现类SuggestionServiceImpl,引用意见的Mapper层,调用其中的方法。代码如下:图4.87意见管理Service图4.88意见管理ServiceImpl4.8.5Controller层Controller层用于接收视图层中的请求,并对请求中的数据进行处理,处理完请求再将结果数据返回给视图层。SuggestionController代码如下:图4.89意见管理Controlelr层请求处理1图4.90意见管理Controller层请求处理24.8.6视图层前端页面主要实现主体为意见的显示,使用table实现,显示内容有用户、标题、状态、提交时间、处理时间,table表格实现如下:图4.91意见列表table表格4.9展示页面设计与实现4.9.1模块设计展示页面基于美观而设计,功能简单易于操作,用户登录之后进入到首页,在首页上展示了当天食堂的菜品以及食堂的特色菜,当天的菜品可以点击进行评论。基于用户的需求设计了意见栏页面,在意见栏页面可以提交自己对食堂的一些意见或者是建议。用户登录之后能查看自己个人信息。整体的设计图如下:图4.92展示页面模块设计4.9.2Mapper层展示页面核心功能菜品评价和意见的提交,由Mapper层对数据库进行操作修改,实现数据的持久,接口方法定义以及mapper映射文件中SQL的编写如下:图4.93展示页面mapper层方法图4.94展示页面mapper层映射文件4.9.3Service层Service层中评论功能使用了当前的时间作为评论时间evaluateDate。意见提交的时候默认为未处理状态,提交意见的时候在Service层中进行处理。具体实现如下:图4.95展示页面Service层实现4.9.4Controller层展示页面由于功能不是很多,所有的请求都在C_indexController类中进行处理,请求主要有页面的跳转以及对数据的请求。菜品的展示进行了价格的分类,所以在请求数据的时候必须分类进行处理。意见的提交获取了当前登录的用户用于区分意见。代码实现如下:图4.96菜品数据请求处理图4.97意见提交请求处理4.10本章小结本章节所做内容为系统的设计开发,将本次项目开发细分模块:系统开发环境搭建、数据库搭建、登录与注册、用户管理、菜品管理、评论管理、意见管理以及展示页面,首先进行模块设计,然后分别从实体层(pojo)、接口层(mapper)、业务层(service)、控制层(controller)以及视图层进行分层次的开发。系统测试5.1登录与测试5.1.1登录启动tomcat服务器之后,在浏览器地址栏输入http://localhost:8082/login即可访问系统的登录页面,实现如下图:图5.1登录页面5.1.2注册点击登录页面的注册即可跳转到用户注册的页面,在注册页面填写完信息点击注册按钮即可注册,如果填写的信息符合规范会在页面上提示注册成功,实现如下图:图5.2注册页面5.2展示页面5.2.1首页首页的上半部分为页面的导航,实现如下图:图5.3导航在首页的中间部分为今日菜品的展示部分,实现如下图:图5.4今日菜品今日菜品下面为评分最高菜品展示的一个部分,实现如下图:图5.5评分最高菜品最后是页面的一个点缀画廊,实现如下:图5.6画廊5.2.2意见栏点击页面上方的意见栏即可跳转到意见栏页面,实现如下:图5.7意见栏页面5.3管理页面5.3.1用户管理管理员通过登录进入到管理页面之后,点击左边导航栏的用户管理即可进入到用户管理的页面,实现如下图:图5.8用户管理页面5.3.2菜品管理通过点击管理页面导航栏的菜品管理进入到菜品管理页面,实现如下图:图5.9菜品管理页面图5.10添加菜品页面图5.11修改菜品页面5.3.3评论管理通过点击导航栏的评论管理可以进入到评论管理的页面,实现如下图:图5.12评论管理页面5.3.4意见管理通过点击导航栏的意见管理可以进入到意见管理的页面,实现如下图:图5.13意见管理页面总结与展望6.1总结本论文主要是基于食堂现状开发一套功能全面

温馨提示

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

评论

0/150

提交评论