在线点餐系统的设计与实现.docx
在线点餐系统的设计与实现摘要随着生活节奏的加快,越来越多的人选择到餐厅就餐。在进行充分调研和需 求分析当前餐饮行业的点餐模式,发现传统的点餐模式的效率很低,顾客需要排 队等待点餐,不仅浪费了顾客的时间,也会造成商家营业额的损失。另一方面, 通信技术的提升使得手机成为人们的主要通讯工具,而互联网的出现,赋予了手 机更丰富的功能。一些餐厅选择做APP来提高点餐效率,但是APP需要顾客下 载,不仅造成使用频率低,卸载率高等问题,仅仅是占用用户内存这一选项就被 众多网友所排斥。针对以上问题,本在线点餐系统前端采用微信小程序技术开发,后台商家管 理系统是基于 Spring Bool 搭建的,使用了 MySQL、Spring data jpa> Lombok、 FreeMarker Bootstrap> WebSockel技术来实现。前端实现的功能是用户扫码进 行菜单的浏览、加入购物车、下单、付款、对订单的评价和历史评价展示、历史 订单的显示(分为待上餐、已取消、待评价、己完成)。后台实现的功能是对菜 单的管理,包括菜品类目的展示、添加、修改和删除,菜品的展示、上架、下架、 增加、删除、修改;能够实现对所有订单的展示和查询,对订单进行完结;对餐 厅管理员的展示、添加和信息的修改。本系统的前端微信小程序很好的解决了就餐问题,小程序的入口就隐藏在微 信中,对用户而言非常方便。顾客无需下载新的APP,只需就坐扫码点餐,极大 的缩短了沟通和等待时间。对于商家来说,使用商家后台管理系统可以更好地管 理餐厅。关键词:在线点餐;微信小程序;Spring Boot会自动在后台帮我们生成SQL语句。3)JPQL查询语言:通过面向对象的查询语言进行查询,避免SQL语句的紧 耦合。JPA只是一种规范,只是定义了一些接口,Hibernate是对JPA进行了实现的 ORM框架。Spingdatajpa可以理解为是对JPA规范的再次封装,底层使用的还 是Hibernate的JPA技术实现。2. 2. 5 LombokLombok项目是一个java库,能以注解方式简化java代码,编译时会自动生 成相应的 getter/setter、构造器、equals> hashcode> toString 方法。用法:4$Dala 注解加在类上,即可自动生成以上方法,遇到final属性则不会生成它的setter方 法。Dala注解可以生成的代码比较多,若只想生成一部分代码,可以使用更加 细化功能的注解。$DToString (配合 exclude、 callSuper> includeFieldNames # 数使用可以按自己想要的格式输出)、Getter Setter> EqualsAndHashCodeo2. 2. 6 FreeMarkerFreeMarker是一款模板引擎,即一种基于模板和要改变的数据,并用来生成 输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面 向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的 组件。模板编写为FreeMarker Template Language (FTL)o编写模板时,可以专注 于页面展示,无需关心数据来源。数据是在模板之外准备的。2. 2. 7 BootstrapBootstrap是前端最受欢迎的框架,来自推特,是基于html> css> javascript的 的开源框架,所有的主流浏览器都支持。它的响应式CSS支持手机、平板电脑、 台式机,为开发人员开发接口提供了一个简洁统一的方案,并且提供了很多功能 强大的内置组件,方便定制,还提供了基于Web的定制。2. 2. 8 WebSocketWebSocket是HTML5新增的协议,它可以在浏览器和服务器之间建立一个 不受限的(不受同源策略的影响)双向通道,服务器可以主动向浏览器发送消息。 浏览器与服务器交换数据的格式通常有两种:文本格式和二进制格式。服务静端 一般发送json格式的文本,方便浏览器处理。实际上TCP协议是支持全双工通 信的,而HTTP协议的请求-响应机制限制了它,WebSocket连接建立以后就不会 使用HTTP协议了。3系统分析本章将叙述项目的可行性分析、需求分析、需求定义和业务分析。系统的需 求分析包括功能需求和非功能需求,业务分析主要进行了顾客点餐业务、管理员 管理菜单业务、管理员管理订单业务三个业务的描述。2.1 项目可行性项目可行性主要从技术可行性、操作可行性、法律可行性、经济可行性四个 方面来阐述项目是否可行。下面针对该系统的这四个方面,讨论其可行性。2.1.1 技术可行性市面上已经有很多的点餐系统在服务顾客和商家,可以参考一些优秀开源项 目进行本系统的开发,更轻松的优化和制定自己想要的功能。2.1.2 操作可行性在线点餐系统买家端使用的是微信小程序进行展示,如今微信已经是国内主 要的通信软件,顾客只需打开微信,使用微信扫一扫功能即可点餐,方便快捷。 卖家端只需打开在线点餐系统的管理页面即可方便的查看订单,对餐厅的菜单进 行修改,并同步更新到微信点餐页面。2.1.3 法律可行性开发在线点餐系统使用的操作系统和编写软件均是正版,不存在任何侵权问 题,可以放心使用。2.1.4 经济可行性项目使用的技术和框架都是开源的,不存在购买问题,如果项目实施成功, 可以让商家更高效的管理餐厅,提升顾客就餐体验,随之而来的是收益的提高。2.2 需求分析经过充分调研分析,传统餐饮行业的运转效率低下,可能出现顾客排队等候 点餐的现象,不仅浪费了顾客宝贵的时间,对餐厅的好感也会降低。餐厅的菜品 进行更新时需要重新打印多份菜单,菜品的价格有调整时也需要重新布置菜单, 管理起来十分麻烦。如今的世界是一个信息化、数字化的世界,一切都变得很方 便,餐厅管理也可以变得很简单。本系统旨在为顾客和商家提供一个平台,缩短顾客点餐等候时间,方便商家 管理菜单和订单,提升服务效率和顾客体验。在线点餐系统可以实现顾客就座扫 码点餐,无需排队等候服务,节省了大量的沟通时间,用餐完毕后还可以评价订 单,商家也可以通过在线点餐系统管理餐厅的菜单,进行菜品的修改等操作,实 时和完结查看订单。商家还可以通过在线点餐系统进行分析顾客的喜好,根据顾 客的评价,制定更好的菜单,更高效的服务顾客,提高餐厅的口碑。2.3 需求定义在线点餐系统的使用者有两个:来餐厅就餐的顾客、卖家。经过调研,发掘 出来的卖家需求:1.实现对餐厅菜单的管理,包括菜品的展示、增加、上架、下 架、删除、修改,菜品种类的增加、删除、修改和展示,订单的展示和完结,管 理员的展示和添加。顾客的需求:可以使用手机浏览菜单,下单,付款,对订单 进行评价。3. 3.1功能需求1)系统功能的划分:该系统分为买家端和卖家端(即后台管理系统)。a.买家部分:能够实现买家对菜单的浏览、加入购物车、下单、付款、对订单的评价和历 史评价展示、历史订单的显示(分为待上餐、已取消、待评价、已完成)。b.卖家部分:能够实现卖家对菜单的管理,包括菜品类目的展示、添加、修改和删除,菜 品的展示、上架、下架、增加、删除、修改;能够实现对所有订单的展示和查询,对订单进行完结;对餐厅管理员的展示、添加和信息的修改。2)系统的功能用例:本系统的用户分为两类:顾客,卖家。用户的角色划分决定了不同用户所具 有的功能不同。系统功能用例图如图3-1所示。图3-1系统功能用例图3)功能描述卖家登录验证a.功能说明:卖家输入账号密码登录系统,提交表单到服务器进行验证, 若在数据库中查询到此账号密码则返回新视图,并设置一个有时间限制 cookie到浏览器,否则会提示登录失败,手机号或者密码不正确。b.参与者:卖家c.功能用例图:卖家登录验证用例图如图3-2所示。图3-2卖家登录验证用例图d.用例描述:卖家登录验证用例如表3-1所示。表3-1卖家登录验证用例描述用例编号:Admin-()1用例名:管理员登录验证 参与者:卖家前置条件:系统正常运行基本事件流:卖家访问卖家后端管理系统 卖家输入账号密码登录 卖家点击登录按钮或回车系统对账号密码进行验证验证成功,返回新视图异常事件流:卖家账号或者密码输入错误,提示登录失败,手机号或者密码不正确。订单展示a.功能说明:卖家点击订单列表,会显示餐厅历史订单。b.参与者:卖家c.功能用例图:订单展示用例图如图3-3所示。图3-3订单展示用例图d.用例描述:订单展示用例如表3-2所示。10表3-2订单展示用例描述用例编号:Order-Ol用例名:订单展示 参与者:卖家前置条件:卖家已经登录卖家后端管理系统基本事件流:卖家点击订单列表服务器返回相应的视图和数据异常事件流:卖家未登录,返回登录页面新增菜品a.功能说明:通过点击菜品新增项来完成菜单的菜品添加b.参与者:卖家c.功能用例图:新增菜品用例图如图3-4所示。图3-4新增菜品用例图d.用例描述:新增菜品用例如表3-3所示。表3-3新增菜品用例描述用例编号Category-01用例名:新增菜品 参与者:卖家前置条件:卖家已经登录卖家后台管理系统基本事件流:卖家点击菜品新增项服务器返回新增菜品表单项 卖家填写菜品相关信息11卖家点击提交菜品按钮异常事件流:卖家未登录,返回登录页面顾客点餐a.功能说明:用户扫码进入小程序浏览菜单,添加菜品到购物车,然 后下单付款。b.参与者:顾客c.功能用例图:顾客点餐用例图如图3-5所示。图3-5顾客点餐用例图d.用例描述:顾客点餐用例如表3-4所示。变J-4 Jg客点餐用例描述用例编号User-01用例名称:顾客点餐12参与者:顾客前置条件:顾客授权小程序获取用户信息基本事件流:顾客扫码餐桌二维码顾客浏览菜单顾客添加菜品至购物车顾客点击去下单按钮顾客点击去结算按钮顾客完成付款异常事件流:顾客未授权小程序获取用户信息权限,提示顾客授权登录 顾客未扫码餐桌二维码就进行菜单浏览,提示顾客先扫码 顾客付款失败,点餐失败可选事件流:顾客下单时添加备注顾客选择用餐人数查看订单a.功能说明:顾客点击我的,查看我的订单可以查询到自己的历史订单。b.参与者:顾客c.功能用例图:查看订单用例图如图3-6所示。图3-6查看订单用例图d.用例描述:查看订单用例如表3-5所示。t3-5型看订单受例描述用例编号userOrder-01用例名称:查看订单13参与者:顾客前置条件:顾客授权小程序获取用户信息 基本事件流:顾客点击我的顾客点击我的订单小程序展示历史订单 异常事件流:顾客未授权小程序获取用户信息权限,提示顾客授权登录可选事件流:顾客点击带上餐, 顾客点击已取消, 顾客点击待评价, 顾客点击已完成,可选事件流:顾客点击带上餐, 顾客点击已取消, 顾客点击待评价, 顾客点击已完成,小程序展示带上餐订单 小程序展示已取消订单 小程序展示待评价订单 小程序展示己完成订单顾客评价a.功能说明:顾客用餐之后可以评价订单b.参与者:顾客c.功能用例图:顾客评价用例图如图3-7所示。顾客评价a.功能说明:顾客用餐之后可以评价订单b.参与者:顾客c.功能用例图:顾客评价用例图如图3-7所示。图3-7顾客评价用例图d.用例描述:顾客评价用例如表3-6所示。应3-6暨评价色例描述 用例编号:UserComment-01用例名称:顾客评价14Design and Implementation of Online OrderingSystemAbstractWith the accelerating rhythm of life, more and more people choose to eat in restaurants. After conducting sufficient research and demand analysis on the ordering mode of the current catering industry, it is found that the efficiency of the traditional ordering mode is very low, and customers need to wait in line to order, which not only wastes customers' time, but also causes the loss of business turnover. On the other hand, the improvement of communication technology makes mobile phones become the main communication tools, and the emergence of the Internet, given a phone with more functions. Some restaurants choose to develop an APP to enhancing efficiency of ordering, but the APP needs customers to download, which not only lead to the low frequency, and the discharge rate is pretty much high, just a memory load problem will be rejected by the numerous net friends.In view of the above problems, the front-end of this online ordering system is developed by WcChat applet technology, and the back-cnd business management system is built based on Spring Boot, which is implemented by MySQL, Spring data jpa, Lombok, FreeMarker, Bootstrap, WebSocket technology. The function of the front end is to scan the code for the user to browse the menu, add to the shopping cart, place an order, pay, the evaluation of the order and the display of the historical evaluation, the display of the historical order (divided into waiting for the meal, canceled, to evaluate, has been completed). The function of the background is to manage the menu, including displaying, adding, modifying and deleting the items of the food category, displaying, shelving, removing, adding, deleting and modifying the dishes; Able to realize the display and query of all orders, the end of the order; Changes to the display, addition, and information of the restaurant administrator.The system's front WeChat small program is a good solution to the dining problem, the entrance of the small program is hidden in WeChat, very convenient for users. Instead of downloading the new APP, customers simply sit down and scan the code to order food, which greatly reduces communication and waiting time. For the business, 参与者:顾客 前置条件:顾客订单已完结基本事件流:顾客点击我的顾客点击我的订单顾客点击待评价顾客填写评价顾客提交评价异常事件流:顾客未授权小程序获取用户信息权限,提示顾客授权登录顾客没有待评价订单3. 2非功能需求1 .易用性方面本系统前台采用微信小程序形式呈现,微信小程序可以说是非常火爆了, 微信用户基本都会使用,点餐操作一目了然,非常简便。卖家后台管理系统 的目的是为了方便卖家管理餐厅,卖家只需登录管理系统,对餐厅的所有操 作都在左侧导航栏分类展示出来,符合人们的操作习惯。2 .响应时间方面本系统规模相对较小,数据量也较少,在日常交互、数据库查询响应时 间较快,在用户可接受的时间范围内。3 .可靠性方面前台背靠微信,系统安全可靠,后台对登录后的所有操作都有拦截机制, 可靠性和安全性较高。3.4业务分析系统主要包括以下业务流程:顾客点餐业务流程、管理员管理菜单业务流程,15管理员管理订单业务流程。3.4.1 顾客点餐业务流程概述顾客授权小程序获取用户信息权限,顾客点击扫码点餐,扫描餐桌二维码后 会进入菜单浏览页面,顾客选择要用餐的菜品加入购物车,点击选好了,进入确 认订单页面,页面显示总计金额,点击总计金额可选择付款方式,顾客可以选择 一个付款方式来进行付款,完成点餐。顾客点餐业务流程图如图3-8所示。图3-8顾客点餐业务流程图163. 4. 2管理员管理菜单业务流程概述管理员登录卖家后端管理系统,点击商品或者类目相关项的新增或列表操作 可以进行商品或类目的新增和展示。其中展示页面可以进行菜品的上架、下架、 修改和删除操作,点击新增后填写相关的菜品或者类目信息,点击提交按钮可以 跳转到相应的展示页面。管理员查看菜单列表流程图、管理员新增菜单流程图分 别如图3-9、3-10所示。图3-9管理员杳看菜单列表流程图图3-1()管理员新增菜单流程图173. 4. 3管理员管理订单业务流程概述管理员登录卖家后端管理系统后会跳转到管理页面,可以查看到餐厅的历史 订单,可以进行新订单取消操作,点击订单详情可以进行订单的完结操作和取消 操作。管理员管理订单业务流程图如图3-11所示。图3-11管理员管理订单业务流程图184概要设计本阶段设计系统的整体结构,将系统模块化,划分各个模块的功能,设计模 块之间的调用关系和层次结构,设计数据库的结构。4.1 系统体系结构设计本系统采用多层架构设计。卖家后台管理系统的前端页面和微信小程序的请 求通过前端控制器访问,前端控制器将各个请求匹配到各个Controller, Controller 调用服务层的方法,根据服务层处理的结果返回响应视图和数据。服务层负责处 理系统的业务,根据系统的业务来定义各种业务逻辑方法,然后调用持久层的方 法来获取数据库数据或者修改数据库数据。系统体系结构图如图4-1所示。持久层数据库表图4-1系统体系结构图19采用多层架构可以提高系统的可维护性和可扩展性。4.2 系统功能模块结构设计在线点餐系统主要分为两个子系统:小程序端的买家系统,web端的后台管 理系统。小程序端主要由点餐模块、订单模块、和评论模块构成。卖家后台管理 系统主要由登录登出模块,订单管理模块、菜品管理模块、菜品类目管理模块、 管理员管理模块。系统功能模块图如图4-2所示。图4-2系统功能模块图4.3 系统功能模块设计.点餐模块顾客在授权小程序获取用户信息权限之后就可以进行点餐了,首先顾客点击 小程序扫码功能扫描餐桌二维码,进入菜单浏览页面,顾客选择喜欢的菜品加入 到购物车,点击选好了跳转到确认订单页面,页面上会显示订单价格,点击合计20 可以弹出付款框,顾客选择一种付款方式来进行付款,完成点餐。付款成功后会 提示下单成功,并跳转到我的界面。1 .订单模块顾客授权小程序获取用户信息权限后点击我的,再点击我的订单,可以看到 历史订单。订单的状态有四种,待上餐、已取消、待评价、已完成。2 .评论模块顾客授权小程序获取用户信息权限后点击我的,点击我的评论可以看到自己 的评论,也可以点击我的订单,对待评价的订单进行评价。3 .登录登出模块卖家可以通过按钮登录登出卖家后台管理系统。4 .订单管理模块卖家登录后台管理系统之后就可以进行订单的管理了,包括订单的完结操作 和取消操作。5 .菜品管理模块卖家登录后台管理系统后可以进行菜品管理,包括菜品的新增、删除、修改、 上架、下架操作。6 .菜品类目管理模块卖家登录后台管理系统后可以进行菜品类目的管理,包括菜品类目的新增和 修改操作。7 .管理员管理模块卖家登录后台管理系统后可以进行系统管理员的管理,包括管理员的新增和 信息修改。8 .4数据库设计在线点餐系统的数据库选择的是MySQL数据库,MySQL数据库的优点:1)性能比较高、服务稳定、适用于分布式开发,使用MySQL数据库可以 有很好的扩展性,易于维护;2)开源无版权限制;3) MySQL的用户很多,遇到的问题基本都会有前辈解决经验。214. 4.1概念模型设计概念模型设计用来描述实体之间的关系,经常用E-R图来描述,全局E-R模 型是与数据模型和计算机软硬件环境无关的,概念模型的结果(E-R模型)无法 在计算机中直接使用。本系统的涉及的实体有卖家、买家、评论、订单、订单项、菜品、菜品分类。 1)全局E-R图如图4-3所示。图4-3全局E-R图下面是系统的分E-R图2)卖家E-R图如图4-4所示。卖家实体的属性有卖家id、用户名、密码、电话、图4-4卖家E-R图 创建时间、修改时间。223)订单E-R图如图4-5所示。订单实体的属性有订单id、顾客名字、顾客电话、 顾客桌号、顾客openid、订单项数量、支付状态、订单状态、创建时间、更新时图4-5订单E-R图间。4)订单项ER图如图4-6所示。订单项实体的属性有订单项id、订单id、菜品 id、菜品名称、菜品价格、菜品数量、菜品图片、创建时间、更新时间。图4-6订单项E-R图5)评论E-R图如图4-7所示。实体评论的属性有评论id、评论人、openid评论 内容、创建时间。23评论id评论人openid评论评论内容创建时间图4-7评论E-R图6)菜品E-R图如图4-8所示。菜品实体的属性有菜品id、菜品名称、菜品价格、菜品库存、菜品图片、菜品描述、菜品状态、分类编号、创建时间、修改时间。图4-8菜品E-R图7)菜品分类E-R图如图4-9所示。菜品分类实体的属性有分类id、分类名称、24 the use of the business background management system can better manage the restaurant.Key words: Online Ordering; Wechat Mini Program; Spring Bootin分类编号、创建时间、修改时间。图4-9菜品分类E-R图4. 4.2抽象数据对象根据前面的分析和经验可以得出在线点餐系统中几个基本的数据对象:Seller (卖家)、user (买家)、comment (评论)、order (订单)、order_detail (订单项)、 product (菜品)、producjcategory (菜品分类)。由于买家端采用的是小程序形式 展示,所以可以不用保存顾客具体信息,只需根据顾客授权登录后的opcnid标 志顾客即可,减少数据库的规模,提高数据库性能。5. 4.3数据库设计命名规范(1) 表名命名规则根据在线点餐系统涉及的数据对象,可以得出需要设计以下的数据库表:卖 家信息表、评论表、订单表、订单项表、菜品表、菜品分类表。表的命名规则是25由相应的英文单词来命名。(2) 字段命名规则由对应的表名开头,字段名也用相应的英文单词表示,写在表名之后,中间 用隔开。4. 4. 4数据库逻辑结构设计本小节将展示抽象数据在数据库中的表示以及表中字段的含义和数据类型。 1)数据库表如表4-1所示。表4-1数据库表汇总数据库表名中文名文字说明comment评论顾客评论信息表order_master订单表顾客订单信息表order_detail订单项顾客订单详情信息表ProductInfo菜品餐厅菜品信息表Product_category菜品分类餐厅菜品分类信息表Seller_info卖家餐厅管理员信息表2)各数据库表的设计a.评论信息表如表4-2所示。包含的字段有评论id、评论人名字、顾客 opcnid评论内容、创建时间。表4-2评论信息表序号字段名称字段类型大小允许为空最大长度备注1commcnt_idInt11否20主键2comment_namevarchar64否703openedvarchar64否704comment_contenttext100否1005create_timetimestamp0否26b.订单项表如表4-3所示。包含的字段有订单项id、订单id、菜品id、菜品 名称、菜品价格、菜品数量、菜品图片、创建时间、更新时间。表4-3订单项表序号字段名称字段类型大小允许为空最大长度备注1detail_idvarchar32否32主键2order_idvarchar32否323product_idvarchar32否324product_namevarchar64否645product_pricedecimal8否86product_quantityint11否117product_iconvarchar512否5128create_timetimestamp0否09update_timctimestamp0否0c.订单表如表4-4所示。包含的字段有订单id、买家名称、买家电话、买家 桌号、买家的openid、订单金额、订单状态、支付状态、创建时间、更新时 间。表4-4订单表序号字段名称字段类型大小允许为空最大长度备注1order_idvarchar32否32主键2buyer_namevarchar32否323buyer_phonevarchar32否324buyer_addressvarchar128否1285buyer_openidvarchar64否646order_amountdecimal8否87order_statustinyint3否38pay_statustiny_int3否39create_timetimestamp0否010update_timetimestamp0否0d.菜品分类表如表4-5所示。包含的字段有菜品类目id、菜品类目名称、菜 品类目数字编号、创建时间、更新时间。27表4-5菜品分类表序号字段名称字段类型大小允许为空最大长度备注1category_idint11否11主键2category_namevarchar64否643category_typeint11否114create_timetimestamp0否05update_timetimestamp0否0e.菜品表如表4-6所示。包含的字段有产品id、菜品名称、菜品价格、菜品 库存、菜品图片、菜品描述、菜品状态、菜品类目编号、创建时间、更新时 间。表4-6菜品表序号字段名称字段类型大小允许为 空最大长 度备注1product_idvarchar32否32主键2product _namevarchar64否643product _pricedecimal8否84product_stockint11否115product_iconvarchar512否5126product_descriptionvarchar64否647product_statustinyint3否38category_typeint11否119create_timetimestamp0否010update_timetimestamp0否0f.卖家信息表如表4-7所示。包含的字段有卖家id、用户名、密码、电话、 创建时间、更新时间。表4-7卖家信息表28序号字段名称字段类型大小允许为空最大长度备注1seller_idint11否11主键2usernamevarchar32否323passwordvarchar32否324phonevarchar64否645create_timetimestamp0否06updatc_timetimestamp0否04.5项目类设计项目中类的主要命名规范:1) controller层类名命名为模型名+Controllcr,例如UserController,有关用 户的操作全部写在这个类里;Service层类名命名为模型名+Service,例如UserService,有关顾客的业 务逻辑都写在这个类里;2) repository层类名命名为模型名+Repository,例如UserRepository,有关 顾客的数据库操作都写在这个类里;3) entity层类名命名为模型名,例如Commento项目中的controller层的类主要进行路径匹配,一个访问路径对应一个方法。SellerProductController 类的设计如图 4-10 所示。在SellerProductController中定义了进行相应业务操作的Service层属性,还定义SellerProductController-productservice-categoryserviceHistOtonSaleO+offSaleOtindexO+save0 +deleteO图 4-10 SellerProductControHler 类图了菜品的展示、上架、下架、修改、新增、删除操作。ScllerAdminControllcr 类的设计如图 4-11 所示。Selle rAd minController-seller InfoRepository-HoginAdminO-HogoutO-HistO-HndexO +5ave0图 4-11 AdminUserController 类图29 在 SellerAdminController 类中定义了 sellerlnfoRepository 属性来进行管理员(也 就是卖家信息)的相关数据库操作,还定义了管理员登录、登出、列表展示、修 改、新增操作。SellerOrderController 类的设计如图 4-12 所示。Selle rOrderController-orderServicefctofsearchO-KancelO+detailO+finishO图 4-12 SellerOrderController 类图在SellerOrderController类中定义了 orderService属性进行订单的业务逻辑操作, 还定义了卖家订单的展示、查找、取消、详情、完结操作。SellerCategoryController 类的设计如图 4-13 所示。SellerCategoryController-categoryserviceproductservice4fct0-HndexO+saveO +deleteQ图 4-13 SellerCategoryController在SellerCategoryController类中定义了 categoryService属性来对菜品类别进行业 务逻辑操作,productScrvicc属性进行菜品的业务逻辑操作,还定义了菜品类目 的展示、修改、新增、删除操作。305详细设计和实现本章将叙述项目的环境搭建、类设计和具体实现。系统的具体实现包括管理 员登录、后台管理系统主页、菜品管理、微信小程序主页。5.1 环境搭建本系统的后台卖家管理系统使用Spring Boot搭建,项目的依赖使用maven 导入。5.1.1 项目总体框架搭建本系统的后台卖家管理子系统的代码结构如图5-1所示,采用三层架构开发, aspect包中的代码是Spring AOP切面的相关代码,用来进行用户登录状态的统 一验证,避免在web层中重复写大量的的验证代码。config包中的代码是 webSocket的相关配置代码。constant包中放置的是项目中的常量,统一放置到 该包下方便后期维护管理,提高