版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录III基于SpringBoot的水果采摘园平台的设计与实现 目录TOC\o"1-2"\h\z\u摘要 IIIAbstract IV1绪论 11.1研究背景 11.2研究现状 11.3关键技术 21.4研究目的与内容 41.5设计目标及论文结构 42系统分析 62.1业务分析 62.2需求分析 72.3可行性分析 112.4本章小结 123系统总体设计 133.1架构设计 133.2功能模块设计 143.3数据库设计 163.4接口设计 203.5本章小结 214系统详细设计 224.1对象设计 224.2交互设计 234.3功能模块设计 244.4本章小结 345系统实现 355.1用户模块界面设计 355.2管理员模块界面设计 405.3订单管理模块界面设计 445.4本章小结 486系统测试 496.1测试计划与环境搭建 496.2测试与结果分析 496.3小结 717结束语 72参考文献 73附录 74附录A:用户注册登录核心代码 74附录B:用户个人中心核心代码 74附录C:用户预约入园核心代码 74附录D:用户选购商品核心代码 75附录E:管理员用户管理核心代码 77附录F:管理员水果商品管理核心代码 77附录G:管理员园区信息管理核心代码 77附录H:管理员数据可视化核心代码 77附录I:用户评价订单核心代码 79附录J:用户退货退款核心代码 79附录K:管理员对已支付订单发货核心代码 80附录L:管理员查看、回复评论核心代码 81致谢 82 摘要基于SpringBoot的水果采摘园平台的设计与实现摘要水果采摘园平台主要根据现代大众的购买水果偏好,为人们提供各类线上水果购买、预约入园等功能。同时,在这个快速发展的时代中,守旧的水果采摘园存在着信息闭塞的现象。园区负责人不精通网络,无法为果园进行有效的宣传推广。该系统使得果园负责人可以通过线上发布公告等方式向大众传递果园信息,以便于人们打破信息闭塞,方便、快捷购买到果园的水果。该系统采用B/S架构,Vue、ElementUI和前端三件套为水果采摘园系统的前端开发语言,Java为后端开发语言,后台的项目搭建使用SpringBoot框架,同时利用MySQL数据库作为物理存储。本系统重在使用协同过滤算法进行水果商品推荐。该算法配合用户使用ElasticSearch进行检索商品,并在用户购买商品订单后为管理员生成数据可视化图表。系统在便利顾客预约入园、选购水果的同时,也有利于果园更好的宣传推广。关键词:水果采摘园系统;SpringBoot框架;协同过滤算法;数据可视化 AbstractDesignandImplementationofaFruitPickingGardenPlatformBasedonSpringBootAbstractThefruitpickinggardenplatformismainlybasedonthemodernpublic'spreferenceforbuyingfruit,providingpeoplewithvariousonlinefruitpurchase,bookingandotherfunctions.Atthesametime,inthiseraofrapiddevelopment,theold-fashionedfruitpickinggardenhasthephenomenonofblockedinformation.Thepersoninchargeoftheparkisnotproficientinthenetwork,unabletocarryouteffectivepublicityandpromotionfortheorchard.Thissystemenablesthepersoninchargeoftheorchardtotransmittheorchardinformationtothepublicbymeansofonlineannouncement,sothatpeoplecanbreaktheinformationblockandbuythefruitoftheorchardconvenientlyandquickly.ThesystemadoptsB/Sarchitecture,Vue,ElementUIandfrontendthree-piecesetarethefrontenddevelopmentlanguageofthefruitpickinggardensystem,Theback-enddevelopmentlanguageisJava,andthebackgroundprojectisbuiltwithSpringBootframework,andaMySQLdatabaseisusedforphysicalstorage.Javaisthebackenddevelopmentlanguage,SpringBootframeworkisusedforthebackgroundprojectconstruction,andMySQLdatabaseisusedasthephysicalstorage.Thissystemfocusesontheuseofcollaborativefilteringalgorithmtorecommendfruitproducts.ThealgorithmworkswithElasticSearchtoretrieveitemsandgenerateadatavisualizationchartfortheadministratorafterauserpurchasedanitemorder.Thesystemisnotonlyconvenientforcustomerstomakeanappointmenttoenterthegardenandbuyfruit,butalsoconducivetobetterpublicityandpromotionoftheorchard.KeyWords:Fruitpickinggardensystem;SpringBootframework;Collaborativefilteringalgorithm;Datavisualization 第1章绪论1绪论本章详细分析了果园水果采摘平台的研究历史、研究现状、研究目标和内容,介绍了果园水果采摘系统中所使用的关键技术,并提出了系统设计目标和论文结构。1.1研究背景随着人民生活水准的提升,他们对生活品质及每日营养的需求也在提高,越来越多的人希望购买健康、有机和无农药的水果;疫情的放开,封闭许久的大众逐渐走出家门,去往各种带有娱乐性质的场所[1]。与此同时,随着外卖行业的迅速发展,线上购买水果,实现“足不出户,水果到家”也成了人们的日常生活方式之一。为了适应这些要求,面向线下用户开发的水果采摘园管理系统应运而生。该系统在为果园吸引更多人流量、提升水果销量的同时,提供给了用户独特的采摘水果的娱乐体验,同时也方便了人们线上购买新鲜的无机生态水果。对于水果采摘园平台的开发,线上预约功能可以让用户提前进行入园预约,减少了节假日进入采摘园的时间,避免高峰人流量拥堵;网购水果功能可以提供用户相较于线下水果门店更为详尽的果类资料,收集用户购买水果的反馈信息,以便于水果采摘园进行进一步的升级与优化。购物者在网上获得了“足不出户,水果到家”的巨大便利,水果采摘园商家也大大降低了经营成本,为顾客提供了优惠的价格和高品质的水果。这种极大便民的双赢策略,使得水果采摘园平台的发展成为必然,特提出此课题进行研究。1.2研究现状近年来,全区交通设施的逐步发展和家庭汽车占有率的急剧上升,为城市人群到农村旅游创造了条件,甚至也为更偏远的农村带来了机遇。水果采摘园是一个将果园作为旅游资源来开发的生态产业。在收入水平不断提升、空闲时间不断增多、生活节奏不断加快、市场竞争日趋激烈的今天,人们对旅行形式的多元化提出了更高的要求,更多的是想通过到农村去摘水果来放松自己的身心。在世界范围内,随着农业产业化的不断深入,人们越来越认识到,目前的农业已经不仅仅是一个生产职能,而是一个可以提高生态环境质量,为人们提供类似旅游、休闲、独享等民生职能的部门。20世纪90年代,园区的旅游业在中国的发展主要是在大中城市中占有一席之地,大多主要分布在沿海一带,也会在大城市的郊区迅速兴起。直到21世纪的第一个十年,果园才开始广泛纳入内地城市,如达州、雅安和四川地区的其他小城市。然而,由于该产业仍处于初步阶段还未成型,诸多的旅游活动仍停留在观光和采摘的表面水平上,仅仅能够满足旅游者的物质需要,却很难满足旅游者的精神需要。在水果采摘园产业的发展过程中,由于缺乏对生态环境和传统文化的保护,导致发展时期的生态平衡往往受到影响。此外,2008年金融危机后,采果业的发展跌入谷底。近年来,随着经济的复苏和国家政策的鼓励和支持,果园迎来了新的春天。果园不仅在维护和改善生态平衡方面发挥着重要作用,还能在娱乐参与者的同时有一定的教育意义,帮助人们能够更好地了解农村的自然和文化资源,激发人们对工作、生活和自然的热爱,直接增加农民的收入和财富,帮助农村基础设施建设,并开辟出新的途径[2]。2009年夏天,德国东部萨克森-安哈尔特州的居民KatharinaFrosch在一条河上划船时,发现了很多未被发现的、成熟的、即将腐烂的水果。于是,她与其他四位德国水果爱好者一起创建了一个带有地图的网站(Mundraub),该网站列出了免费采摘水果的地址,并允许用户根据自己的经验添加自己的地址,从而吸引了大量的人到各个地方免费采摘水果。这允许用户根据自己的经验添加自己的地址,从而吸引了大量的人到各个地方免费采摘水果。与此同时,国内也产生了一些像“葫芦采摘”之类的微信预约小程序,许多的此类小程序缺乏有效的园区信息、水果信息以提供给用户参阅,也无法进行线上水果销售的功能。另一类的线上网购水果系统,则缺乏真实可信的水果采摘园信息,无法确保水果的来源新鲜、无公害。该系统的开发集预约入园、线上采购于一体,旨在使顾客购买到物美价廉的水果的同时,为水果采摘园进行宣传、推广,吸引大批量游客。如今,大多数优秀的企业网络应用程序都是使用Java相关的技术框架创建和开发的。在使用Java进行服务器端网络应用程序开发的领域,除了JavaEE之外,始终有两套技术体系,主要是SSH和SSM[3]。十年前,SSH是业界最流行的开发系统,因为它与传统的J2EE开发系统相比,性能高,资源消耗低,但由于Struts的安全问题,这个系统已经逐渐被更轻的SSM系统所取代,与SSH相比,MyBatis更简单,学习曲线低,SpringMVC速度快,配置简单,可扩展性强。当前的数据库包括Oracle(甲骨文)、SQLServer数据库和MySQL数据库等。Oracle数据库是由Oracle公司开发的一种关系型数据库管理系统,它是数据库领域中的领导者,但从架构到运维都很难学习和使用[4],水果采摘园系统需要简单易上手,能够直接进行熟练操作,不考虑使用该数据库来支撑数据;SQLServer是微软公司开发的数据库管理系统,在处理大量数据时需要很长的时间,而且只支持C/S结构,水果采摘园系统不需要处理大量数据,且需要短时间处理数据,不考虑使用其进行数据支持;MySQL是目前最流行的开放源码DBMS,在Web应用上颇受中小企业青睐[5],水果采摘园系统所需要处理的数据较少且不计划使用过多费用,因此考虑使用MySQL数据库来支撑数据。最常用的数据可视化技术是Echarts、D3.js和Highcharts[6]。D3使用JavaScript创建和处理图形和数据模板,是免费数据可视化工具中最为复杂的,也是较为难学的工具,因图像无法在较低版本的IE中正确显示,因此水果采摘园系统不考虑使用该技术来实现数据可视化;Highcharts是国外产品,商业使用需要付费,同时其兼容性较差,不便于操作和后续维护,因此水果采摘园系统不考虑使用该技术来实现数据可视化;Echarts是一款由百度发出的开源工具[7],该技术不需要任何收费,专门为不想采用付费技术的人员提供大数据可视化设计,水果采摘园系统考虑使用Echarts实现数据可视化。1.3关键技术1.3.1SpringBoot框架Spring框架是目前最受欢迎的一种开发Java应用程序的框架[8]。Spring的一个最棒的特征就是它支持对依赖关系的注入以及控制反转,从而使其可以在松散耦合的应用开发中发挥作用。在此期间,对于这样一个耦合较为松散的应用程序而言,可以很容易地执行单元测试。Spring是一种开放源码的轻量级框架,我们可以把它看成是一组子构架,也就是所谓的层,比如SpringAOP。Spring帮助创建了松耦合的应用程序,而为了创建Spring应用程序,开发者必须写下许多代码并进行配置,而默认情况下,内存数据库是不提供支持的。SpringBoot是基于传统的Spring框架的一种扩展,去掉了XML的必要配置,并且拥有了Spring的全部功能,从而为快速高效的开发环境打下了基础。SpringBoot是由Pivotal小组设计的,目的是为了简化最初Spring的建立和开发新的Spring程序。这个架构采用了一种特殊定制的配置方式,这样就不需要开发者自己设定样本的配置。所以,SpringBoot的目标是在迅速发展的应用开发中,成为一个领先者[9-12]。总之,SpringBoot有一个优点,那就是运行一个由Servlet容器组成的独立Spring项目,该为Maven的配置提供了一个启动程序,并且实现了Spring的自动化。所以,与Spring相比,SpringBoot更加方便,而且运行起来也更加简单。总的来说,SpringBoot的优势在于运行一个独立的Spring项目,它包含一个Servlet容器,提供一个简化Maven配置的starter,并能够自动装配Spring。因此,SpringBoot与Spring相比,SpringBoot更加方便,而且运行起来也更加简单。1.3.2MD5加密技术Rivest开发了MD2算法,该算法将数据附加到信息中,并通过在信息末尾附加一个16位的校验和来计算哈希值。MD2算法对单一结果进行加密,没有重复,但忽略校验和会导致MD2冲突,这一点在后来才被发现。Rivest随后开发了MD4算法,用以加强MD2算法的安全性。与MD2算法相比,该算法以块为单位处理信息,每个块都要经过三个不同的步骤。然而,MD4算法有严重的漏洞,现在已经过时了,因为其针对不同的加密内容都有可能获得相同的加密结果。MD5,官方正式名称为MD5信息摘要算法,它的本质为一种散列函数,该散列函数被广泛用于加密,其主要通过生成128位散列值的方式,以保证消息传输的完整性和一致性。MD5主要通过提高算法的复杂性和不可逆转性[13,14]来改进MD4、MD3和MD2。一般来说,MD5算法由于其通用性、稳定性和速度等特点,被广泛应用于一般的数据加密安全中,所以本系统考虑采用MD5加密算法来保护用户数据。1.3.3协同过滤算法基于用户的协同过滤算法的原理:首先,根据不同用户对其购买商品的打分情况,计算这些不同用户之间的相似程度,通过该计算找到和目标用户拥有一定相似度的用户集;其次,通过找到的该用户集对目标商品的打分情况,进行预测,预测目标用户对目标商品的打分情况;最后,将预测得分最高的若干商品集作为推荐列表推荐给用户。这种算法的实质是确定不同的用户之间是否相似,以及如何根据这种相似性选择用户集。基于项目的协同过滤算法的原理:首先,根据不同用户对其购买商品的打分情况,计算这些不同商品之间的相似程度,通过该计算找到和目标商品拥有一定相似度的商品集;其次,通过目标用户对找到的该商品集的打分情况,进行预测,预测目标用户对目标商品的打分情况;最后,将未打分的、但预测得分最高的商品作为推荐商品推荐给用户。这种算法的实质是确定不同的商品之间是否相似,以及如何根据这种相似性选择商品集。该系统使用了一种基于用户的协同过滤算法,考虑到这种算法在现代的个性化推荐中被广泛使用,而且比较简洁,容易被受众理解,当目标用户的商品数量较少时,基于项目的协同过滤算法更适合目标用户,而且该算法所推荐的商品往往不够新颖[15]。1.4研究目的与内容在经济、文化的快速发展下,越来越多的人们摆脱了贫穷与饥饿的困扰,开始追求健康的、高品质的生活方式,不仅体现在穿衣、出行上,小到日常的饮食也在采购新鲜有机水果蔬菜。价格昂贵、售卖坏果的水果店在大城市的居民小区周边遍布,而价格公道、水果品质上乘的各类水果园区却开在城市郊区无人问津,这使得顾客花费较高的价格无法买到满意的水果,也使得果园主无法获得相应的收益、园区亏损严重。因此,打破信息闭塞、宣传推广水果采摘园是当务之急,基于此类问题,水果采摘园平台应运而生。本系统通过果园主发布公告、园区信息等方式进行线上的宣传、推广,通过线上园区预约避免线下高峰人流量拥堵,通过线上选购商品便利用户“足不出户,水果到家”,同时便于门店收集用户反馈信息进行进一步的升级与优化,提供更多的个性化服务。本系统为基于SpringBoot的水果采摘园系统,主要分为三个模块:用户模块、管理员模块、订单管理模块。用户模块主要包括注册登录、个人中心、预约入园、选购商品功能,管理员模块主要包括用户管理、水果商品管理、园区信息管理、数据可视化功能,订单管理模块主要包括用户评价订单、用户退货退款、管理员对已支付订单发货、管理员查看、回复评论功能。1.5设计目标及论文结构系统要求实现一个水果采摘园平台,其中系统必须具备的功能模块具体如下:用户模块、管理员模块、订单管理模块,通过该系统以上模块的构建,使得喜爱果园采摘的客户获得便利,同时帮助水果采摘园的商家获得推广。本文的结构及主要描述大致如下:第一章绪论:介绍水果采摘园平台的研究背景、水果采摘园的研究现状、该系统所运用到的关键技术,以及该课题研究的目的与内容。第二章系统分析:对水果采摘园系统进行业务分析,从功能、非功能角度进行需求分析,针对技术、经济可行性进行分析。第三章系统总体设计:对水果采摘园系统的总体结构进行设计,根据业务分析和功能点分析设计功能模块,对系统的数据库、系统接口进行设计。第四章系统详细设计:对水果采摘园系统的对象、交互、功能模块进行设计,并给出相应的详细文字说明加以分析。第五章系统实现:对水果采摘园用户模块、管理员模块、订单管理模块的具体实现。第六章系统测试:为水果采摘园系统制定测试计划、搭建测试环境,对水果采摘园系统的诸多功能模块展开测试,比对不同的测试结果,并针对比对结果展开分析、总结。第七章结束语:总结在开发水果采摘园系统时遇到的问题、解决方法,表面该系统仍存在的不足和需要加以改进的地方。 第2章系统分析2系统分析本章主要对水果采摘园平台进行系统分析,首先对系统进行业务分析,并采用用例图的形式了解该系统中不同角色的主要功能,其次对该系统从功能和非功能的角度进行需求分析,最后进一步考虑到该系统的业务环境问题,针对技术、经济上的可行性进行分析。2.1业务分析水果采摘园平台的主要使用者有两个:用户和管理员。用户为该系统前台的使用者,可以执行的主要操作有注册登录、管理个人中心、预约入园、选购商品、订单管理等操作。管理员作为该系统的最高权限者,可以执行的主要操作有用户管理、水果商品管理、园区信息管理、订单管理和数据可视化等操作。2.1.1用户用例图用户角色所执行的功能主要包括注册登录、管理个人中心、预约入园、选购商品、订单管理,其中预约入园包括搜索园区、查看园区详情、预约园区、支付门票的功能;选购商品包括查看推荐商品、分类检索商品、查看商品详情、管理购物车和支付订单的功能;订单管理包括评价和退货退款的功能。用户用例图如图2.1所示。图2.1用户用例图2.1.2管理员用例图管理员角色所执行的功能主要包括用户管理、水果商品管理、园区信息管理、订单管理和数据可视化,其中水果商品管理包括对水果商品的添加、删除、修改和查询的功能;订单管理包括分类对已支付订单发货、查看和回复评论的功能;数据可视化包括查看商品的分类和库存统计、查看已完成订单商品的类型和销额统计的功能。管理员用例图如图2.2所示。图2.2管理员用例图2.2需求分析2.2.1功能需求分析该系统主要由两个角色组成:用户和管理员。用户可以进行的主要功能有注册登录、管理个人中心、预约入园、选购商品、订单管理等。管理员可以进行的主要功能有用户管理、水果商品管理、园区信息管理、订单管理和数据可视化等。本系统具体功能如下:1、用户模块(1)注册登录:用户首次使用该系统时,若不进行注册则只能使用该系统部分功能,预执行预约入园或选购水果之类的操作,用户需输入用户名、密码、性别、手机号等个人信息,完成注册;注册成功后水果采摘园系统跳转到登录界面,用户在该界面需输入用户名、密码及确认密码后,进行登录,同时考虑到用户账户的安全性和私密性,系统对用户的密码采用MD5安全加密算法进行保护。(2)个人中心:用户成功登录系统后水果采摘园系统跳转到个人中心界面,用户本人可以在个人中心界面对自己的信息进行查看和修改,如姓名、性别、手机号等,也可以更换用户头像,用户还进行查看账户积分、充值账户余额、购买会员等操作。(3)预约入园:用户可以执行搜索园区、查看园区详情、预约园区、支付门票的操作;a.搜索园区:用户可以在“园区名称”搜索框中输入需要查看的园区名称的关键字以找到对应的园区,也可以在“园区地址”搜索框中输入需要前往的地区名称的关键字以找到地址附近的园区,通过是否有优惠活动分类搜索到用户想要查看的园区。b.查看园区详情:用户可以在搜索到相关园区后,点击列表中的园区图片进入园区详情界面,查看该园区的名称、园区地址、园区电话、园区票价、园区限制的入园人数、园区是否有优惠活动以及园区的介绍等相关信息。c.预约园区:用户可以在查看园区详细情况后找到想要前往的园区,点击该园区详情界面中的“预约入园”按钮,选择入园人数、入园时间,填写用户名、手机号,提交用户的园区预约信息。d.支付门票:用户可以在提交预约园区订单后,进入预约记录界面,查看个人所有的园区预约记录,若用户查看到有未支付的预约订单,则需要点击该界面上的支付按钮,选择相应的支付方式,进行园区门票的支付操作。(4)选购商品:用户可以执行查看推荐商品、分类检索商品、查看商品详情等操作;a.查看推荐商品:用户可以在系统首页以推荐商品的图片和名称的形式直观查看近日经常购买的同类型及浏览过的感兴趣的水果商品,系统通过数据库中存储的该用户的历史水果商品购买订单以及该用户查看的水果商品的最近点击时间排序,进行商品推荐。b.分类检索商品:用户可以根据水果商品的类型、“特价商品”、“优惠活动”、最低和最高价格对水果商品进行筛选,也可以在“商品名称”搜索框中输入用户想要查看的水果商品名称的关键字,以便于用户更快的寻找到需要购买的水果商品。c.查看商品详情:用户可以在分类检索到相关水果商品后,点击列表中的水果商品图片进入水果商品详情界面,查看该水果商品的名称、价格、单次限购数量、库存、商品规格、是否为特价商品、是否有优惠活动等相关信息。d.管理购物车:用户可以在查看水果商品详细情况后找到想要购买的水果商品,点击水果商品详情界面中的“添加购物车”按钮,进行添加购物车商品操作;用户进入购物车界面,点击商品数量的加减号,进行修改购物车商品数量操作;用户点击对应商品的“删除”按钮,进行删除购物车商品操作。e.支付订单:用户可以在管理购物车后,全选需要购买的水果商品,点击“购买”按钮,在确认下单界面选择合适的收货地址、确认订单信息后,进行支付操作。用户模块的数据流图如图2.3所示。2、管理员模块(1)用户管理:管理员进入后台的用户管理界面,在该界面中管理员可以针对用户的用户名、密码、姓名、手机号等个人信息进行增删改查操作。(2)水果商品管理:管理员进入后台的水果商品管理界面,在该界面中管理员可以针对水果商品的名称、图片、价格、规格、库存等信息进行增删改查操作。(3)园区信息管理:管理员进入后台的园区信息管理界面,在该界面中管理员可以针对园区的名称、图片、地址、票价、入园人数等信息进行增删改查操作。图2.3用户模块数据流图(4)数据可视化:管理员可以查看商品的分类、库存统计和商品的类型、销额;a.查看商品分类、库存统计:管理员进入水果商品管理界面,在该界面管理员可以点击“分类统计”或“库存统计”查看上架商品的分类和库存统计数据。b.查看商品类型、销额统计:管理员进入已完成订单管理界面,在该界面管理员可以点击“商品销额”或“类型销额”查看已完成订单的商品和类型的销额数据。管理员模块的数据流图如图2.4所示。图2.4管理员模块数据流图3、订单管理模块(1)评价:用户在已完成订单后,可以在商品详情界面的下方评论区对商品订单进行评价操作。(2)退货退款:用户可以对已支付、已完成的商品订单进行退货退款操作。(3)对已支付的订单发货:管理员可以对已支付的订单进行发货操作。(4)查看、回复评论:管理员可以查看用户对已预约的园区订单或已购买的商品订单的评论,并进行回复评论的操作。订单管理模块的数据流图如图2.5所示。图2.5订单管理模块数据流图2.2.2非功能需求分析为了满足使用该系统的用户的诸多业务需求,水果采摘园平台除了必备的功能需求之外,还应该具备其他的特性,比如性能、安全性、可维护性与可拓展性等非功能性需求,这类需求反映出了对软件系统的质量和特性两方面的附加要求,它与软件系统本身以及系统的开发过程密切相关。(1)性能分析根据当前网络大环境下服务器系统响应时间的“1秒定律”,该系统的响应时间应当处于短时间的,并且响应的结果准确。该系统普通的业务操作响应时间在1-2秒,如用户在该系统前台执行输入关键字搜索水果商品操作时,系统响应时间不超过2秒,便可展示水果商品的搜索结果列表;增删改查数据库表操作的响应时间在2-4秒,如管理员在该系统后台执行添加水果商品操作时,系统响应时间不超过4秒,便可展示新增的用户信息。(2)安全性分析随着上网冲浪的普及,人们在体验网络带来的便利的同时,也在面临着潜在的信息泄露等网络安全问题,数据的安全性一直牵动着每个人的心。该系统考虑到大多数现代网络应用程序使用安全隐私加密算法,以确保用户数据的保密性,如用户注册和登录过程,在该过程中使用MD5加密算法对用户的密码进行加密,密码加密算法的传输方法确保了这一传输过程的安全性和稳定性,管理员不能知道用户密码,且密码不是作为纯文本传输,而是通过存储在数据库的加密文本进行传输。(3)可维护性与可扩展性分析当一个系统达到瓶颈或某些业务功能产生变化时,不可避免将带来系统设计实现等方面的改变,大量代码的修改将不能保证系统的负载能力。本系统考虑到要便于日后的维护和扩展,采用前后端分离的方式,系统的代码有层次,如果系统某些功能发生改变,只需要修改部分代码,内容较少,便于维护;如果系统需要增添新的功能时,不需要大量修改原来的代码,代码的复用性强。(4)开发环境分析开发语言:Java框架:SpringBootJDK版本:JDK1.8服务器:Tomcat7数据库:MySQL5.7数据库工具:Navicat11开发软件:IdeaMaven包:Maven3.3.9浏览器:Chrome浏览器2.3可行性分析2.3.1技术可行性本系统的开发过程中所使用的到的系统开发技术主要为Java,此项技术的选用主要考虑到Java语言具有平台无关性,其使用的代码具有安全性和健壮性,因此更容易被理解和使用。本系统的编写环境在较早的Java学习时便已配置成功,因此无需在后续开发过程中考虑环境配置不充分的问题。在本系统最初录入原始数据时,将会对系统的性能进行检查,测试其能否承载大数据的运行。在此基础上,本系统提出采用一种基于SpringBoot的设计方法,该方法以B/S体系结构为基础,以MySQL为数据库,既提高了数据的安全性,又提高了系统的可操作性。2.3.2经济可行性作为一个毕业设计系统,本系统有一些技术上的缺点,不能直接将该系统用于商业用途。由于本人仅考虑开发这个系统来提高自己的学术水平,所以并不需要支付额外的软件或硬件等费用,如专门的服务器。本系统所使用的大部分软件,如IntelliJIDEA、MySQL和Tomcat服务器,都是开源软件,经济成本低,容易获得。2.3.3用户使用可行性本系统的使用用户主要为普通顾客和商家,前台提供的用户大多为想要进行果园采摘预约及线上购买果园水果的人群,该人群有一定知识水平,有同类相似系统的使用经验,能够较为熟练的使用该系统;后台提供的用户大多为已经进行过培训的管理员,有充分的时间对该系统的功能进行学习,具备较强的运用能力;与此同时,水果采摘园系统的界面清晰简洁、操作简单明了,无需用户进行过多复杂的操作,系统将给用户配备使用说明书以保证每个用户都能够轻松上手、熟练操作。2.4本章小结在本章节的系统分析中,主要针对系统从业务、需求和可行性三个角度进行了分析,详细描述了水果采摘园系统的功能需求、非功能需求以及在技术、经济、用户使用的可行性,说明了该系统有很高的实操价值。 第3章系统总体设计3系统总体设计根据上一章对水果采摘园平台各方面的系统分析,本章主要对水果采摘园平台进行总体的设计,首先对系统进行架构设计,并采用系统架构图的形式了解该系统的技术架构,其次绘制功能模块图对该系统的功能模块进行设计,然后通过E-R图展示水果采摘园实体及其属性间联系,用数据库表展示数据库设计,最后对该系统的接口设计通过文字进行描述。3.1架构设计本系统采用SpringBoot框架和B/S结构作为系统的整体框架,采用前后端分离开发。系统主要由两大部分组成:View视图层和Service业务层,View视图层用于前端接口的设计,Service逻辑层用于后台的逻辑处理。根据视图分离的原则,设计在View和Service层之间加入Controller接口层,采用Dao数据访问层将逻辑和SQL语句混合,再由Dao对象针对数据库中诸多的表进行增删改查操作。在该SpringBoot水果采摘园项目中同时应用到MVC模式和DAO模式,将系统的三层架构变成了五层架构。本系统的前端视图采用Vue、ElementUI和前端基础三件套进行开发。前端的交互方式采用Ajax进行交互,同时使用Post和Get两种请求方式。后端业务层主要包括注册登录、个人中心、预约入园、选购商品、订单管理、用户管理、水果商品管理、园区信息管理、数据可视化这九种业务。本系统主要有两种角色,分别为用户和管理员。用户可以进行注册登录、个人中心、预约入园、选购商品、订单管理等操作;管理员可以进行用户管理、水果商品管理、园区信息管理、订单管理、数据可视化等操作。数据访问层的主要职责是访问数据库,其主要负责读写数据库,从而进行数据缓存,对数据库进行增删改查等操作。在水果采摘园系统的实现中,选用了MySQL数据库来进行该系统的物理存储,与此同时,选用了Redis来进行该系统的缓存。系统架构图如图3.1所示。图3.1系统架构图3.2功能模块设计本系统的主要功能模块具体包含以下几个:用户模块、管理员模块、订单管理模块。其中,用户模块主要包括注册登录、个人中心、预约入园、选购商品等功能;管理员模块主要包括用户管理、水果商品管理、园区信息管理、数据可视化等功能;订单管理模块主要包括用户评价订单、用户退货退款、管理员对已支付的订单发货和管理员查看、回复评论等功能。系统功能模块图如图3.2所示。图3.2系统功能模块图用户模块:注册登录、个人中心、预约入园、选购商品,其中预约入园包括搜索园区、查看园区详情、预约园区、支付门票等功能;选购商品包括查看推荐商品、分类检索商品、查看商品详情、管理购物车、支付订单等功能。用户模块子模块图如图3.3所示。图3.3用户模块子模块图管理员模块:用户管理、水果商品管理、园区信息管理、数据可视化,其中数据可视化包括查看水果商品的分类、库存统计,查看已完成订单的商品、类型销额。管理员模块子模块图如图3.4所示。图3.4管理员模块子模块图订单管理模块:用户评价、用户退货退款、管理员对已支付的订单发货和管理员查看、回复评论。订单管理模块子模块图如图3.5所示。图3.5订单管理模块子模块图3.3数据库设计3.3.1数据库概念设计水果采摘园平台的实体主要为用户实体、管理员实体、水果商品实体、订单实体、购物车实体、园区实体、地址实体、公告实体。1.用户,字段包括用户编号、用户名、密码、姓名、手机号、余额、积分等,其中用户编号为本表主键。2.管理员,字段包括管理员编号、用户名、密码、确认密码,其中管理员编号为本表主键。3.水果商品,字段包括商品编号、商品价格、商品名称、商品简介、商品规格等,其中商品编号为本表主键。4.订单,字段包括订单编号、商品编号、商品名称、购买数量、商品价格、用户编号、收货人等,其中订单编号为本表主键,商品编号、用户编号为本表外键。5.购物车,字段包括购物车编号、用户编号、商品编号、商品名称、购买数量等,其中购物车编号为本表主键,用户编号、商品编号为本表外键。6.园区,字段包括园区编号、园区名称、园区图片、园区地址、园区介绍、园区票价、人数上限等,其中园区编号为本表主键。7.地址,字段包括地址编号、用户编号、收货地址、收货人、电话等,其中地址编号为本表主键,用户编号为本表外键。8.公告,字段包括公告编号、公告标题、公告简介、公告图片、公告正文等,其中公告编号为本表主键。根据以上的实体、属性及其之间的关系得到E-R图,如图3.6所示。图3.6E-R图3.3.2数据库逻辑设计数据库表包括用户表、管理员表、水果商品表、订单表、购物车表、园区表、地址表、公告表这8个数据库表,具体的数据库表信息如下内容所示。(1)用户表(yonghu)用户表的主要用途是供用户存储基本信息以及供用户登录验证使用,其中包含用户名、密码、头像、姓名、性别、电话等信息,具体字段详见表3.1所示。表3.1用户表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间yonghumingvarchar200不为主键非空用户名mimavarchar200不为主键非空密码xingmingvarchar200不为主键非空姓名xingbievarchar200不为主键非空性别touxianglongtext4294967295不为主键非空头像shoujivarchar200不为主键非空手机jffloat不为主键非空积分moneyfloat不为主键非空余额vipvarchar200不为主键非空是否会员(2)管理员表(users)管理员表主要用于管理员登录验证使用,其中包含管理员的用户名、密码信息,具体字段详见表3.2所示。表3.2管理员表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键usernamevarchar100不为主键非空用户名passwordvarchar100不为主键非空密码rolevarchar100不为主键非空角色addtimetimestamp不为主键非空新增时间(3)水果商品表(shuiguoshangpin)水果商品表主要用来存储水果商品的详细情况,提供用户查看商品详情使用,其中包含商品价格、商品名称、商品简介、商品规格等信息,具体字段详见表3.3所示。表3.3水果商品表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间shangpinmingchengvarchar200不为主键非空商品名称shuiguofenleivarchar200不为主键非空水果分类shangpintupianlongtext4294967295不为主键非空商品图片shangpinguigevarchar200不为主键非空商品规格tejiashangpinvarchar200不为主键非空特价商品youhuihuodongvarchar200不为主键非空优惠活动onelimittimesint不为主键非空单次限购alllimittimesint不为主键非空库存数量shangpinxiangqinglongtext4294967295不为主键非空商品详情clicktimedatetime不为主键非空最近点击时间jfint不为主键非空积分pricefloat不为主键非空价格vippricefloat不为主键非空会员价(4)订单表(orders)订单表主要用来存储各类订单的详细情况,提供用户、管理员查看订单使用,其中包含订单编号、订单状态、订单所购商品及数量、订单的收货人等信息,具体字段详见表3.4所示。表3.4订单表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间orderidvarchar200不为主键非空订单编号tablenamevarchar200不为主键非空商品表名useridbigint不为主键非空用户idgoodidbigint不为主键非空商品idgoodnamevarchar200不为主键非空商品名称picturelongtext4294967295不为主键非空商品图片续表3.4buynumberint不为主键非空购买数量pricefloat不为主键非空价格discountpricefloat不为主键非空折扣价格totalfloat不为主键非空总价格discounttotalfloat不为主键非空折扣总价格typeint不为主键非空支付类型statusvarchar200不为主键非空状态addressvarchar200不为主键非空地址telvarchar200不为主键非空电话consigneevarchar200不为主键非空收货人remarkvarchar200不为主键非空备注logisticslongtext4294967295不为主键非空物流goodtypevarchar200不为主键非空商品类型(5)购物车表(cart)购物车表主要用来存储购物车内商品的详细情况,提供用户进行购物车操作使用,其中包含购物车编号、所含商品编号、所购商品名称、图片、购买数量、单价等信息,具体字段详见表3.5所示。表3.5购物车表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间tablenamevarchar200不为主键非空商品表名useridbigint不为主键非空用户idgoodidbigint不为主键非空商品idgoodnamevarchar200不为主键非空商品名称picturelongtext4294967295不为主键非空图片buynumberint不为主键非空购买数量pricefloat不为主键非空单价discountpricefloat不为主键非空会员价goodtypevarchar200不为主键非空商品类型(6)园区表(yuanquxinxi)园区表主要用来存储各类园区的信息,提供用户进行预约入园操作使用,其中包含园区编号、园区名称、园区介绍、园区地址、园区电话、园区的人数上限等信息,具体字段详见表3.6所示。表3.6园区表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间yuanqumingchengvarchar200不为主键非空园区名称yuanqutupianlongtext4294967295不为主键非空园区图片续表3.6字段名数据类型长度是否为主键是否为空描述yuanqudizhivarchar200不为主键非空园区地址yuanqudianhuavarchar200不为主键非空园区电话yuanqupiaojiaint不为主键非空园区票价ruyuanrenshuint不为主键非空入园人数youhuihuodongvarchar200不为主键非空优惠活动yuanqujieshaolongtext4294967295不为主键非空园区介绍(7)地址表(address)地址表的主要用途是供每个用户存储收货地址信息,提供用户进行购买商品操作使用,其中包含地址编号、用户编号、收货人、收货地址、联系电话及是否是默认地址等信息,具体字段详见表3.7所示。表3.7地址表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间useridbigint不为主键非空用户idaddressvarchar200不为主键非空地址namevarchar200不为主键非空收货人phonevarchar200不为主键非空电话isdefaultvarchar200不为主键非空是否默认地址(8)公告表(news)公告表主要用来存储公告信息,提供用户进行查看公告操作使用,其中包含公告编号、公告标题、公告简介、公告图片、公告正文等信息,具体字段详见表3.8所示。表3.8公告表字段名数据类型长度是否为主键是否为空描述idbigint为主键非空主键addtimetimestamp不为主键非空创建时间titlevarchar200不为主键非空标题introductionlongtext4294967295不为主键非空简介picturelongtext4294967295不为主键非空图片contentlongtext4294967295不为主键非空内容3.4接口设计本系统的接口设计预满足通用性、单一性,同时为了便于后期对系统的维护工作,对接口设计的命名规范如下:1.系统的访问层数据存放在controller文件夹中,使用**Controller命名,2.系统的服务层数据存放在service文件夹中,使用**Service命名,3.系统的数据访问层存放在dao文件夹中,使用**Dao命名,4.系统的SQL语句文件存放在mapper文件夹中,使用**Dao.xml命名,5.系统的前后端数据传输使用的是json格式,并且格式统一,其包含的内容信息如:code、message、data,其中code是返回的状态码,类型为int,0表示正常,-999表示越权访问,-1表示网络忙,稍后重试;message是返回的信息;data是返回的类型(值为空时返回null),类型为Object/Array。本系统的主要接口如下所示:(1)/shuiguoshangpin/query 用户查询水果商品信息(2)/shuiguoshangpin/autoSort2 根据用户购买个性化推荐(3)/shuiguoshangpin/update 管理员修改水果商品信息(4)/shuiguoshangpin/delete 管理员删除水果商品信息(5)/yuyuejilu/query 用户查询订单(6)/yuyuejilu/update 管理员修改订单(7)/yuyuejilu/delete 管理员删除订单(8)/yonghu/login 用户登录(9)/yonghu/register 用户注册(10)/address/default 获取默认收获地址(11)/address/add 用户添加收货地址(12)/address/update 用户修改收货地址(13)/address/delete 用户删除收货地址(14)/news/query 用户查询公告(15)/news/add 用户添加公告3.5本章小结在本章节的系统总体设计中,主要针对系统从架构、功能模块、数据库和接口四个方面进行了设计,首先绘制水果采摘园系统架构图详细描述了该系统的架构,其次运用水果采摘园系统功能模块图和子模块图描绘该系统具有的功能模块,然后采用E-R图和数据库表的形式对数据库的字段、长度、类型等信息进行设计,最后通过详细的描述和列出该系统的主要接口。 第4章系统详细设计4系统详细设计根据上一章对水果采摘园平台的总体设计,本章主要对该平台进行详细设计,首先对系统进行对象设计,并采用类图的形式了解该系统的主要对象,其次绘制时序图对该系统类之间的交互作用进行设计,最后通过流程图明确水果采摘园各个模块的具体功能实现。4.1对象设计类图展示了该系统中存在的类、每个类中的内容以及类内部关系的关联。本系统共设计了12个类,分别是:用户类(yonghu)、管理员类(users)、水果商品类(shuiguoshangpin)、订单类(orders)、购物车类(cart)、园区信息类(yuanquxinxi)、地址类(address)、公告信息类(news)、预约记录类(yuyuejilu)、水果商品评论类(discussshuiguoshangpin)、园区信息评论类(discussyuanquxinxi)、收藏类(storeup)。类图如图4.1所示。图4.1类图4.2交互设计4.2.1用户交互用户进入前台系统的首页,点击“登录”按钮,在水果采摘园系统页面跳转之后,在登录界面输入用户名以及密码进行登录操作,用户信息传到系统数据库中进行比对,若比对失败,则登录失败;若比对成功,则登录成功。首次进入该系统的用户未进行账号的注册,数据库中不存在该账号,则登录失败,此类用户需在登录界面点击“注册”按钮,输入用户名、密码、手机号等个人信息进行注册,用户信息传到系统数据库中进行存储,则注册成功。用户在前台系统首页点击“个人中心”按钮,在该界面用户可以编辑个人信息,如:修改密码、更换头像、充值余额、购买会员等操作,编辑后的用户信息传到系统数据库中进行更新,则编辑成功。用户在园区信息界面浏览各类水果采摘园区信息,选择想要前往的园区,点击“预约入园”按钮,在该界面用户需要填写预约信息,如:入园人数、入园时间、用户名和手机号等信息,提交后的预约信息传到系统数据库中进行存储,则预约成功。用户在水果商品信息界面浏览各类水果商品信息,选择想要购买的水果,点击“添加到购物车”后在购物车内总计结算,或直接点击“立即购买”后支付订单,购买后的订单信息传到系统数据库中进行存储,则购买成功。用户时序图如图4.2所示。图4.2用户时序图4.2.2管理员交互管理员进入后台系统的首页,点击“登录”按钮,在水果采摘园系统页面跳转之后,在登录界面输入管理员的用户名以及密码进行登录操作,管理员信息传到系统数据库中进行比对,若比对失败,则登录失败;若比对成功,则登录成功。管理员在后台系统首页,点击“用户管理”按钮,在该界面管理员可以管理用户信息,如:添加、删除、修改、查询用户操作,管理后的用户信息传到系统数据库中进行更新,则操作成功。管理员点击“水果商品管理”按钮,在该界面管理员可以管理水果商品信息,如:添加、删除、修改、查询水果商品操作,管理后的水果商品信息传到系统数据库中进行更新,则操作成功。管理员点击“园区信息管理”按钮,在该界面管理员可以管理园区信息,如:添加、删除、修改、查询园区操作,管理后的园区信息传到系统数据库中进行更新,则操作成功。管理员在水果商品管理界面点击“分类统计”或“库存统计”按钮,在该界面管理员可以查看水果商品的分类、库存统计数据可视化图表,则操作成功;管理员在已完成订单管理界面点击“商品销额”或“类型销额”按钮,在该界面管理员可以查看已完成订单的商品、类型销额数据可视化图表,则操作成功。管理员时序图如图4.3所示。图4.3管理员时序图4.3功能模块设计4.3.1用户模块(1)用户注册登录用户进入前台系统的首页,点击“登录/注册”按钮,系统跳转到登录界面,若用户为首次登录系统的新用户,未进行过注册,无账号,需进行注册操作;若用户为已进行过注册的老用户,则无需注册,直接登录。用户预进行注册操作,点击登录界面的“注册用户”按钮,系统跳转到注册页面,用户在该页面输入用户名、密码、确认密码等注册信息,系统检测两次密码输入是否一致,若不一致则需要重新输入密码,若一致则系统继续检测账号是否存在;若检验账号已存在,则点击“已有账号登录”按钮,系统跳转到登录页面,用户可以直接进行登录操作,若检验账号不存在,则系统对密码进行MD5算法加密并存入数据库中,注册成功。用户预进行登录操作,在登录界面输入用户名、密码,点击“登录”按钮,系统对密码进行MD5加密并访问数据库,与数据库中的数据进行匹配,若校验信息错误,则重新输入用户名、密码,若校验信息正确,则登录成功。用户注册登录流程图如图4.4所示。图4.4用户注册登录流程图(2)用户个人中心用户进入前台系统的首页,点击“个人中心”按钮,系统跳转到个人中心界面,用户可以在该界面查看自己的个人信息,若用户需修改个人信息,则点击输入框修改信息,点击提交修改后的信息,系统对密码进行MD5算法加密并存入数据库中,修改成功;若用户无需修改个人信息,则查看个人信息成功。用户个人中心流程图如图4.5所示。图4.5用户个人中心流程图(3)用户预约入园用户进入园区信息页面,在搜索框输入关键字搜索园区,点击园区图片查看园区详情,点击“预约入园”按钮预约园区,输入预约信息,提交信息确认预约,进入预约记录界面支付门票,则预约入园成功。用户预约入园流程图如图4.6所示。图4.6用户预约入园流程图(4)用户查看推荐商品用户进入前台系统的首页,系统判断用户是否登录,根据登录情况采取不同的推荐算法进行商品推荐。若为未登录的用户,则采用基于商品点击量的协同推荐算法,商品设有点击量属性,当用户点击某商品进行查看商品详情时,对该商品的点击量进行加一处理,用户查看推荐商品时,系统根据商品点击量进行倒序排序,将排序结果返回给前端,若结果满足推荐的条数,则展示给用户;若结果不满足推荐的条数,则随机最新添加的商品或其他商品以满足推荐条数,再展示给用户。若为已登录的用户,则采用基于用户历史购买订单的协同推荐算法,系统将历史购买的订单商品及类型进行去重处理,防止重复计算,用户查看推荐商品时,系统查询历史购买订单中的同类型商品,将查询结果返回给前端,若结果满足推荐的条数,则展示给用户;若结果不满足推荐的条数,则随机最新添加的商品或其他商品以满足推荐条数,再展示给用户。用户查看推荐商品流程图如图4.7所示。图4.7用户查看推荐商品流程图(5)用户选购商品用户进入前台系统的首页,点击“水果商品”按钮,系统跳转到水果商品界面,用户点击搜索框,输入搜索内容或选择搜索条件,点击查询按钮,查询水果商品,若无该水果商品则返回无结果页面,用户重新查询;若有该水果商品则返回查询结果页面。用户在查询到的水果列表中选择想要购买的水果商品,点击水果商品图片或名称跳转到水果商品详情界面,用户可以查看该水果商品的详细情况。用户选择水果商品添加到购物车,点击“购物车”按钮,进入购物车页面,若用户想继续添加购物车商品,则回到水果商品页面进行加购操作;若用户想修改购物车商品,则点击加减号对购物车商品的数量进行增加或减少操作;若用户想要删除购物车商品,则点击“删除”按钮对购物车商品进行删除操作。用户管理购物车后,选中购物车商品,点击“购买”按钮,系统跳转到确认订单界面,若用户无收货地址,则点击“个人中心”、点击“我的地址”,添加收货地址,再进行购买操作;若用户有收货地址,则选择其中一个收货地址。若用户的账户余额不足,则点击“个人中心”,充值余额,再进行购买操作;若用户的账户余额充足,则使用账户余额进行支付,购买成功。用户选购商品流程图如图4.8所示。图4.8用户选购商品流程图4.3.2管理员模块(1)管理员用户管理管理员进入后台系统首页,点击“用户管理”按钮,系统跳转到用户管理界面,管理员在该界面可以浏览用户列表。管理员点击搜索框,输入搜索内容,点击“查询”按钮,若不存在该用户则返回无结果页面,管理员重新查询;若存在该用户则返回查询结果页面。管理员点击用户详情,系统跳转到用户详情界面,管理员可以查看用户的详细信息。管理员若想要添加用户,则点击“新增”按钮,进入添加用户界面,输入用户信息并提交,则添加成功。管理员若想要修改用户信息,则点击“修改”按钮,进入修改用户信息界面,修改用户信息并提交,则修改成功。管理员若想要删除用户,则点击“删除”按钮,确认删除用户,则删除成功。管理员用户管理流程图如图4.9所示。图4.9管理员用户管理流程图(2)管理员水果商品管理管理员进入后台系统首页,点击“水果商品管理”按钮,系统跳转到水果商品管理界面,管理员在该界面可以浏览水果商品列表。管理员点击搜索框,输入搜索内容,点击“查询”按钮,若不存在该水果商品则返回无结果页面,管理员重新查询;若存在该水果商品则返回查询结果页面。管理员点击水果商品详情,系统跳转到水果商品详情界面,管理员可以查看水果商品的详细信息。管理员若想要添加水果商品,则点击“新增”按钮,进入添加水果商品界面,输入水果商品信息并提交,则添加成功。管理员若想要修改水果商品信息,则点击“修改”按钮,进入修改水果商品信息界面,修改水果商品信息并提交,则修改成功。管理员若想要删除水果商品,则点击“删除”按钮,确认删除水果商品,则删除成功。管理员水果商品管理流程图如图4.10所示。图4.10管理员水果商品管理流程图(3)管理员园区信息管理管理员进入后台系统首页,点击“园区信息管理”按钮,系统跳转到园区信息管理界面,管理员在该界面可以浏览园区列表。管理员点击搜索框,输入搜索内容,点击“查询”按钮,若不存在该园区则返回无结果页面,管理员重新查询;若存在该园区信息则返回查询结果页面。管理员点击园区信息详情,系统跳转到园区信息详情界面,管理员可以查看园区的详细信息。管理员若想要添加园区,则点击“新增”按钮,进入添加园区界面,输入园区信息并提交,则添加成功。管理员若想要修改园区信息,则点击“修改”按钮,进入修改园区信息界面,修改园区信息并提交,则修改成功。管理员若想要删除园区,则点击“删除”按钮,确认删除园区,则删除成功。管理员园区信息管理流程图如图4.11所示。图4.11管理员园区信息管理流程图(4)管理员数据可视化管理员进入后台系统首页,点击水果商品管理,点击分类统计或库存统计,查看商品分类、库存统计数据可视化图表;点击已完成订单管理,点击商品销额或类型销额,查看订单商品、类型销额数据可视化图表。管理员查看商品分类、库存统计流程图如图4.12所示,管理员查看订单商品、类型销额流程图如图4.13所示。图4.12管理员查看商品分类、库存统计流程图图4.13管理员查看订单商品、类型销额流程图4.3.3订单管理模块(1)用户评价订单用户进入前台系统首页,点击进入商品详情页面,点击评论框输入评论信息,点击提交评论,则成功评价订单。用户评价订单流程图如图4.14所示。图4.14用户评价订单流程图(2)用户退货退款用户进入前台系统首页,点击“个人中心”按钮,点击“我的订单”按钮,系统后台调取数据库数据,跳转到我的订单界面,显示所有订单信息,用户在该界面可以分类查看订单信息,如未支付、已支付、已发货、已完成、已退款、已取消订单。若用户想要对已支付订单进行退款操作,则进入已支付订单界面,点击“退款”按钮,确认退款,则退款成功;若用户想要对已完成订单进行退货操作,则进入已完成订单界面,点击“退货”按钮,确认退货,则退货成功。用户退货退款流程图如图4.15所示。图4.15用户退货退款流程图(3)管理员对已支付订单发货管理员进入后台系统首页,点击订单管理,选择已支付订单,点击“发货”按钮,则发货成功。管理员对已支付订单发货流程图如图4.16所示。图4.16管理员对已支付订单发货流程图(4)管理员查看、回复评论管理员进入后台系统首页,点击“水果商品管理”按钮,管理员点击水果商品评论,系统后台调取数据库数据,跳转到水果商品评论界面,管理员在该页面可以查看所有水果商品评论。若管理员想要回复评论,则点击“回复”按钮,系统跳转到回复评论界面,管理员输入回复内容并提交,即回复成功;若管理员想要删除评论,则点击“删除”按钮,确认删除评论,即删除成功。管理员查看、回复评论流程图如图4.17所示。图4.17管理员查看、回复评论流程图4.4本章小结在本章节的系统详细设计中,主要针对系统从对象、交互、功能模块四个方面进行了详细设计,首先针对该系统的主要对象绘制类图,其次采用时序图的形式表明系统类之间的交互作用,最后运用各个模块的流程图详细描述功能的实现流程。 第5章系统实现5系统实现根据前几章对水果采摘园平台的分析、总体设计、详细设计,本章主要对该系统以代码、截图和文字的形式描述各个功能模块的具体实现。5.1用户模块界面设计5.1.1用户注册登录用户首次使用该系统时,若不进行注册则只能使用该系统部分功能,预执行预约入园或选购水果之类的操作,用户需输入用户名、密码、姓名、手机号等个人信息,完成注册;注册成功后跳转到登录界面,用户需输入用户名、密码,进行登录,同时考虑到用户账户的安全性和私密性,系统对用户的密码采用MD5安全加密算法进行保护。用户注册登录界面如图5.1、图5.2所示。用户注册登录的实现过程:首先进入前端register.vue界面,输入用户名,再输入两次密码,若两次密码不一致则会弹出两次密码不一致,接着输入姓名、性别、手机号等基础信息。再调用后端接口/Usercontroller/register,该接口获取到用户的用户名之后首先进入数据库yonghu表对该用户名进行查找,若找到同样的用户名,则会返回前端消息‘用户已存在’,若不存在用户名相同的用户,则会将信息录入到数据库yonghu表中。登录时进入前端界面login.vue,填写用户名、密码,再点击按钮进行登录,点击按钮时会调用后端的接口/UsersController/login,该接口会调用selectOne方法,进入数据库yonghu表查询是否存在该用户名,若存在密码是否与前端返回的一致,若一致,则返回用户的token值,若用户名不存在或者密码与前端返回的不一致则返回账号或密码不正确的信息回前端。用户注册登录核心代码具体见附录A。图5.1用户注册界面图5.2用户登录界面5.1.2用户个人中心用户登录系统后跳转个人中心界面,用户可以在该界面修改自己的个人信息,如密码、姓名、性别、手机号,也可以更换用户头像,用户还进行查看账户积分、充值账户余额、购买会员等操作。用户个人中心界面如图5.3所示。用户个人中心的实现过程:首先前端进入center.vue界面,将已有的用户名、密码、姓名、性别等基本信息显示出来,对需要修改的地方进行修改,并点击按钮更新信息进行更新。点击按钮触发事件调用后端接口/UsersController/update,该接口获取到用户的用户名之后首先进入数据库yonghu表对该用户名进行查找,若找到同样的用户名,则会返回前端消息‘用户已存在’,若不存在用户名相同的用户,则会将信息录入到数据库yonghu表中。用户个人中心核心代码具体见附录B。图5.3用户个人中心界面5.1.3用户预约入园(1)搜索园区:用户可以在“园区名称”搜索框中输入需要查看的园区名称的关键字以找到对应的园区,也可以在“园区地址”搜索框中输入需要前往的地区名称的关键字以找到地址附近的园区,通过是否有优惠活动分类搜索到用户想要查看的园区。(2)查看园区详情:用户可以在搜索到相关园区后,点击列表中的园区图片进入园区详情界面,查看该园区的名称、园区地址、园区电话、园区票价、园区限制的入园人数、园区是否有优惠活动以及园区的介绍等相关信息。(3)预约园区:用户可以在查看园区详细情况后找到想要前往的园区,点击该园区详情界面中的“预约入园”按钮,选择入园人数、入园时间,填写用户名、手机号,提交用户的园区预约信息。(4)支付门票:用户可以在提交预约园区订单后,进入预约记录界面,查看个人所有的园区预约记录,找到未支付的预约订单,点击支付按钮,选择支付方式,支付园区门票。用户预约入园界面如图5.4所示。用户预约入园的实现过程:首先打开前端/yuanquxinxi/list.vue界面,调用后端接口/YuanquxinxiController/lists将所有的园区信息显示出来,在这个界面可以通过调用后端接口/YuanquxinxiController/query针对园区名称、园区地址、优惠活动对园区进行筛选,也可以自行浏览选择园区,点击园区图片进行前端跳转至/yuanquxinxi/detail.vue,此时后端会调用接口/YuanquxinxiController/detail{id}将某个园区的详细信息展示出来,在此界面点击预约入园按钮触发事件调用后端接口/YuyuejiluController/add将预约记录存入后端数据库。用户预约入园核心代码具体见附录C。图5.4用户预约入园界面5.1.4用户选购商品(1)查看推荐商品:用户可以在系统首页以推荐商品的图片和名称的形式直观查看近日经常购买的同类型及浏览过的感兴趣的水果商品,系统通过数据库中存储的该用户的历史水果商品购买订单以及该用户查看的水果商品的最近点击时间排序,进行商品推荐。(2)分类检索商品:用户可以根据水果商品的类型、“特价商品”、“优惠活动”、最低和最高价格对水果商品进行筛选,在“商品名称”搜索框中输入需要查看的水果商品名称的关键字,以便于用户更快的寻找到需要购买的水果商品。(3)查看商品详情:用户可以在分类检索到相关水果商品后,点击列表中的水果商品图片进入水果商品详情界面,查看该水果商品的名称、价格、单次限购数量、库存、商品规格、是否为特价商品、是否有优惠活动等相关信息。(4)管理购物车:用户可以在查看水果商品详细情况后找到想要购买的水果商品,点击水果商品详情界面中的“添加购物车”按钮,进行添加购物车商品操作;用户进入购物车界面,点击商品数量的加减号,进行修改购物车商品数量操作;用户点击对应商品的“删除”按钮,进行删除购物车商品操作。(5)支付订单:用户可以在管理购物车后,全选需要购买的水果商品,点击“购买”按钮,在确认下单界面选择合适的收货地址、确认订单信息后,进行支付操作。用户选购商品界面如图5.5-图5.8所示。用户选购商品的实现过程:首先进入前端首页home.vue,在此界面调用后端接口/ShuiguoshangpinController/autoSort2使用协同算法将用户的推荐水果信息展示出来。用户可以点击上方导航栏,选择水果商品按钮跳转至前端界面/shuiguoshangpin/list.vue,通过调用后端接口/ShuiguoshangpinController/lists将所有的水果列表展示出来。用户可以对商品名称、特价商品等内容调用后端接口/ShuiguoshangpinController/query进行筛选。用户点击商品图片进行前端页面跳转至/shuiguoshangpin/list.vue,调用后端接口/ShuiguoshangpinController/detail{id}将该商品的详细信息显示出来,在该页面可以点击按钮添加到购物车,触发事件调用后端接口/CartController/add将商品信息添加到购物车中,也可以点击按钮立即购买,触发事件调用后端接口/OrdersController/add将商品信息添加到订单中。用户选购商品核心代码具体见附录D。图5.5用户分类检索商品界面图5.6用户查看商
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026肇庆学院公开招聘劳动合同制工作人员2人考试备考题库及答案解析
- 成都市郫都区安德幼儿园招聘笔试备考题库及答案解析
- 2027甘肃省电力投资集团有限责任公司秋季校园招聘考试模拟试题及答案解析
- 2026年语音识别行业洞察报告及未来五至十年发展趋势报告
- 2026年进排气系统行业洞察报告及未来五至十年发展趋势报告
- 2026年档案盒行业洞察报告及未来五至十年发展趋势报告
- 招聘1人!玉树州职业技术学校编外教师招聘笔试参考题库及答案解析
- 2026年武汉中远国际货运有限公司人员招聘考试模拟试题及答案
- 2026年西咸新区若干重点企业招聘笔试参考题库及答案解析
- 2026年安徽港口物流有限公司社会招聘6名笔试模拟试题及答案解析
- 部编版五年级上册语文第五单元第16课《金字塔》教学课件(新教材)
- 2型炎症性疾病靶向治疗药物临床合理应用专家共识
- 电力员工技能培训记录
- 2026年国家人工智能产业投资基金降低AI创新创业成本申请指引
- 医院统战工作责任制度
- T∕CIECCPA 119-2026 动力电池运维阶段数字孪生技术规范
- 《边坡工程技术标准》THNKCSJ009-2023
- 煤矿通风工考试题及答案
- 吞咽困难教学课件
- 心外科发展规划护理
- 认识水果讲课件
评论
0/150
提交评论