1
基于 web 的网络订餐系统的设计与实现
2
目 录
摘 要.........................................................................................................I
Abstract......................................................................................................II
1 绪论 ........................................................................................................1
课题研究背景 .....................................................................................................1
研究现状 .............................................................................................................1
主要内容 .............................................................................................................3
本文结构 .............................................................................................................4
2 网上订餐系统相关技术介绍 ................................................................5
MyBatis 框架介绍 ...............................................................................................5
Spring 框架概要 ..................................................................................................6
Spring MVC 框架介绍 .......................................................................................7
Mysql 数据库介绍 ...............................................................................................8
JSP 介绍 ...............................................................................................................8
3 网上订餐系统分析 ..............................................................................10
系统可行性分析 ...............................................................................................10
系统业务流程分析 ...........................................................................................10
系统用例分析 ...................................................................................................11
4 网上订餐系统概要设计 ......................................................................13
系统功能模块设计 ...........................................................................................13
订单管理模块流程设计 ...................................................................................14
餐品管理模块流程设计 ...................................................................................14
用户注册登录模块流程设计 ...........................................................................15
购物车管理模块流程设计 ...............................................................................16
下单流程设计 ...................................................................................................16
数据库设计 .......................................................................................................17
5 网上订餐系统实现 ..............................................................................21
用户登录实现 ...................................................................................................21
管理员(商户)订单管理实现 .......................................................................23
3
管理员(商户)餐品、菜系管理实现 ...........................................................25
消费者注册实现 ...............................................................................................28
消费者购物车、下单功能实现 .......................................................................28
6 网上订餐系统测试 ..............................................................................33
测试过程 ...........................................................................................................33
测试订餐系统前端用例 ...................................................................................33
测试订餐系统后端用例 ...................................................................................34
测试设计评估及改进 .......................................................................................36
结论 ..........................................................................................................37
参考文献 ..................................................................................................38
I
摘 要
由于当今社会人们生活节奏普遍加快,人们对于美食的要求也在不断增加,
但是由于人们的工作越来越繁忙,往往午休时间只有 1 个小时左右,这就限制了
人们去饭店享用美食,所以产生了网上订餐的需求。并且由于近年来,随着计算
机技术的飞速发展,在线支付已经逐渐成为一种主流趋势,这很好的弥补了网上
订餐付款的问题。网上订餐相比于堂食更加便捷,人们不用花费长时间的等待,
可以提前订餐,当到了休息时间,直接就可以享用美食,这样变相的延长了人们
休息的时间。
本文基于 SSM 框架,设计开发了网上订餐系统,实现了消费者和管理员(商
户)相关功能模块。在消费者功能模块中,消费者可以进行浏览菜品和在线订购
等操作,在商户功能模块中,商户可以进行新增菜品和发货等操作。
关键词:网上订餐;电子商务;SSM;SpringMVC
II
Abstract
Due to the generally accelerated pace of life in today's society, people's
requirements for food are also increasing. However, due to people's increasingly busy
work, the lunch break is often only about 1 hour, which limits people to go to
restaurants to enjoy food. demand for online ordering. And because in recent years,
with the rapid development of computer technology, online payment has gradually
become a mainstream trend, which makes up for the problem of online ordering
payment. Online ordering is more convenient than dine-in. People don’t have to wait
for a long time, they can order in advance, and when it is time to rest, they can enjoy
the food directly, which prolongs the time for people to rest in disguise.
Based on the SSM framework, this paper designs and develops an online
ordering system, and implements related functional modules for consumers and
administrators (merchants). In the consumer function module, consumers can perform
operations such as browsing dishes and online ordering, and in the merchant function
module, merchants can perform operations such as adding dishes and shipping.
Key words: Online ordering; E-commerce; SSM; SpringMVC
1
1 绪论
课题研究背景
当前,互联网信息技术已经越来越成为当代人们生活上和生产工作活动中一
项不可或缺的互联网重要通讯工具。通过网络技术,人们之间高效的进行沟通、
团队协同工作和内容共享都非常简捷。网络信息应用服务已日益广泛地被应用于
经济各个领域。在此市场背景推动下,电子商务概念应运而生,并因此迅速地被发
展成熟起来。要依法及时推动建立完善和培育完善适合电子商务发展趋势的电子
商务物流体系平台和交易渠道。消费者今后在境外网上购物交易的更主要沟通方
式也是如何通过电子商务。
在当前互联网内容时代,许多传统互联网餐饮市场内容的最主要的传播媒介
和互动宣传等方式更多还是以实际餐饮立面内容的形式开始出现,互联网领域完
整的真实餐饮市场体系至今尚未得以完全地建立形成和发展完善。电子商务市场
的迅猛发展无疑给整个传统的餐饮市场模式带来一个了一次巨大革命性的革命
性飞跃。餐饮市场还可以考虑重点去发展具有个性化、特色餐饮的增值服务,利
用第三方的商业平台去推广企业品牌,增加销售。因此,电子商务无疑为提升传统
零售餐饮业服务注入出了一个新时期的商业活力,必将有效推动传统餐饮业市场
的持续迅速发展。
在当今这种消费趋势推动下,餐饮市场已经在网络电子商务领域中开始扮演
了一种越来越重要的消费角色,网上电子订餐服务系统的应运而生。人们从此不
需要自己去正规餐馆里面吃饭,也可以避免去了餐厅排队就餐的诸多麻烦。他们
每天只在需要时段通过手机互联网在线购买一款营养种类丰富、价格最实惠最好
的可以满足其自己饮食需求的健康食品,这也不仅极大节省掉了等待他们购物的
漫长时间,也大大的为网络餐饮市场商家提供方便了品牌网络推广途径和营销推
广,创造着更多潜在的巨大商业机会。
研究现状
运用餐饮管理软件系统进行经营管理,不仅迅速提高管理了中国餐饮市场公
司的规范化管理和水平,还为提供了更为及时与有效准确的提供餐饮内容,让中国
消费者可根据各餐厅实际提供服务的各项内容而迅速准确找到属于自己的需要
选择的餐厅美食。与我国传统的餐饮市场中的传统手工操作管理相比,不仅大幅
度节省了企业用户管理的宝贵时间,而且还在大量获得实际经济效益增长的同时,
提高到了传统餐饮企业管理工作上的效率。不仅是如此,餐厅自身还将可以继续
2
通过移动互联网平台推广属于自己特色的服务品牌,并希望通过收集消费者反馈
的反馈内容来充实完善餐厅内容。自己发现的服务问题改进和创新提供顾客更高
质量化的选择食物体验和提供更好的个性化服务,使餐厅能够有个更大发展的自
我成长空间。
在欧洲一些和国外,网上的在线自助订餐和这种在线服务形式已是开展得的
时间都已经比较之早,随着现代电子商务及快递与物流网络的进一步快速发展普
及的发展和现代电子商务中网上的订单式交易这种业务模式及应用得到的社会
条件也日益地发展与成熟,网上的在线自助订餐等方式目前正日益快速的进入中
国人千家万户。不仅限于餐饮电子商务如此,随着将来我国的电子商务平台物流
行业的得到进一步地发展,我国乃至整个我国餐饮业电子商务平台和国内物流业
电子商务平台都是将使企业平台企业和平台商家双方的实现了到了真正的利益
双赢。进一步地也必将促进并带动到了在中国供应链上游的国内物流产业地发展
和带动国内物流下游的我国第三方的供应链物流产业地的发展。当前,餐饮的电
商行业一个较能被消费者市场普遍认可及接受的一种商业模式运营它的基本模
式通常也是指由商家消费者先由自己申请注册或建立第三方公司网站或消费者
自行报名加入到第三方的电商平台,消费者由自己注册和加入第三方的用户平台
可以自己通过使用电脑互联网设备或通过其它的移动或智能设备等来享受在线
网上自助下单订餐。商家能够对用户以最快的烹饪时间内上门快速制作送出优质
饭菜,并同时能保障通过第三方线下或专业物流快递员送达的饭菜迅速准确到达
和送货。通过残酷的风险评估分析系统和劳动生产经验密集型的标准化操作及管
理培训方法,在给用户在最短的上门烹饪操作时间范围内迅速成功的将优质美味
饭菜快速准时地送到目标用户手中。从满足用户需求最大化的角度综合分析情况
来看,订餐者的确已普遍享受或得到了另外的一种更为经济低成本、迅速与方便
实用的新型在线即时用餐服务预订消费模式。但是,现有互联网订餐行业的种种
传统商业运营手段和消费模式之间也同样仍然面临或多或少所存在着的其他许
多现实潜在的问题。
主要体现在:
(1)缺乏有效的监控体系。餐饮业对食品安全的要求非常高。如果对供给侧
商家的食品供应过程没有有效的监督,将不可避免地出现制造问题食品的黑心商
家。
(2)现有个体商户难以建立大型电子商务平台。选择加入是他们唯一的选择。
电商平台和商家之间的利益竞争不利于一些特色餐厅的发展,倾向于生产迅速、
低成本的食品。
(3)订餐服务管理应用系统本身缺乏承担对订餐用户内容加密保护功能的系
3
统安全维护责任。大量注册用户在平台上进行注册申请后,内容往往被过度复制
使用,账号无法注销,这也意味着个人内容无法恢复。尽管如此,政府部门已经慢慢
开始在关注网络食品和订餐软件市场方面的规范健康地发展,并发布制定了一些
具指导性价值的相关规则。一些知名学者都已经陆续开始在对系统层面上和通过
技术手段方面进行深入研究,以帮助促进国内整个互联网订餐消费市场未来的进
一步健康良性发展。
学术界最关注研究的仍然是个性化无线订餐系统中的相关技术及实现。当前
关注的主要前沿问题将不仅主要体现在如何应用这些新技术去实现无线订餐内
容管理及系统,还重点体现在无线个性化无线订餐系统内容检索算法中的相关应
用,以及无线订餐系统内容推送系统算法及其优化方面的问题研究。讨论如何去
在这些系统和实现方案中去应用一些相关技术的算法。例如,利用贝叶斯网络技
术对用户行为特征进行建模并分析,在用户在线订购服务过程中可通过选择固定
用户的最佳订购的时间节点和时间地点等对其订购的行为特征进行概率的统计,
从而能获得一些指导性建议。该行为评价能够通过数据量化,粗略的判断客户最
近一天是否会产生出了较大量的错误行为评价,并能够根据某个特定时段用户的
最佳选择用餐行为,推荐最佳餐点数量和设置最佳餐桌座位,从而可以提高出勤
率。
随着网络新业务开发和技术平台的逐步发展成熟和对订餐业务相关问题理
论的研究逐步的发展深入,订餐服务管理信息化平台将在逐步实现网站基本的功
能服务的同时,将进一步通过网站内容系统逐步实现对餐饮业务流程内容的全面
标准化、标准化和可视化。大数据深度挖掘服务与服务提升带来了智能化决策分
析支持、人性化的内容智能推送、便捷的安全智能支付等。
主要内容
在全面研究考察了国外现有网络订餐电子商务平台应用的基本现状情况和
最新发展趋势后,结合现阶段国内外应用环境,分析讨论了未来订餐电子平台发展
的市场发展的潜力。从应用系统需求满足的需求角度,详细的介绍出了网络订购
子平台具体需要系统提供相应的系统功能。用户终端根据需要分别为每个用户端
提供在线选择商业区、选择店铺、订餐、将用户当前在线订单记录保存添加到购
物车、在线支付、评估订单金额等服务功能。提供订单存储及编辑、菜单修改、
订单状态查看功能和订单状态修改等功能。在进一步明确了系统需求分析后,同
时还对在设计的过程中面临的另一些主要难点也进行了深入详细全面的详细讨
论,并最后在本章最后部分给出了最具体有效的解决方案。主要工作特点创新:
(1)从企业实际管理应用问题出发,设计了并初步实现出了这样一个企业通用
的互联网订餐平台。
4
(2)为了能够让平台产品更强有市场生命力,将目标用户分为消费者和管理员
(商家)。与其他普通商场的统一订货销售管理平台系统所不同的特点是,此统一
平台还可以对多家实体门店订货进行管理联合使用。
本文结构
本文分为七个部分:
第一报告部分:介绍研究了网上电子订餐系统开发的整体研究及背景,分析评
价了开展该服务系统研发的整体研究工作意义何在和巨大发展空间潜力,并分别
通过实证分析相关结果最终确定开展了哪些主要系统的开发研究及内容选择和
应用开发工作。
第二部分:介绍阐述了网上电话订餐服务系统应用所必须涉及到的各种相关
共性技术基
第三大部分:对网上在线订餐服务系统用户的实际业务需求点进行作了需求
分析,并结合实际进行做了一些详细实用的系统业务流程优化分析。
第四大部分:根据订餐系统设计的功能需求的分析,进行网上在线订餐平台系
统架构的总体设计,包括网站各部分功能模块之间的关系具体流程设计流程和系
统数据库框架的优化设计。
第五部分:在基本明确了系统实现的用户需求的分析目标和初步设计实现思
路框架后,利用相关数据库技术迅速展开项目开发研究工作,完成了系统设计的实
现。
第六测试部分:为了能保证系统内部各环节功能系统的高稳定性,对模块系统
进行综合测试,首先系统对中各主要单元模块性能进行分析测试,然后分别对系统
各功能单元模块系统进行分析集成,对整个系统稳定性进行一个整体综合测试。
第七大部分:进行分析总结,并同时对自己下一步的工作安排进行战略展望。
5
2 网上订餐系统相关技术介绍
MyBatis 框架介绍
本文使用 MyBatis 作为持久层框架,该框架有很多优势,主要可以根据 sql
语句动态配置来对数据库进行相应操作,该框架同时包含数据库的高级特性如触
发器,函数,存储过程等。MyBatis 使用配置文件的方式记录数据库连接参数实
现连接,不需要采用传统的 jdbc 模式就能拿到存储在数据库中的数据,采用这
种连接方式能有效的减少创建数据表和销毁数据表时的开销。此外,该框架以配
置文件的形式实现 sql 语句进而操纵数据库[1-5],java 的类映射成数据库中的数据。
Mybatis 框架主要分为接口层、数据处理层、基础支撑层这三层架构,如
下图所示。
图 2-1 Mybatis 结构图
第一层接口:api 接口层提供相关功能的接口,服务层调用这些接口后。实
际处理业务层只需要使用这些接口就可以获得相应的功能,从而完成对数据库的
操作。当系统调用某一接口后,Mybatis 框架就可以获取配置文件中对应的 sql
语句对数据库进行相应增删改查。
第二层数据:当服务层调用接口层的接口后,数据层会找到相应的配置文件
中的 sql 语句对数据库进行增删改查,操作数据库后数据库会返回相应数据。数
据层主要是将原始操作封装为接口以便调用,当其他层调用这些接口后可以非常
简单的对数据库进行相应增删改查。
第三层支撑:基础支撑层主要上存储连接数据库操作数据库的基本的参数,
例如操作数据库的驱动,数据库的用户名及密码等。
6
Spring 框架概要
本文使用 Spring 框架作为主要设计层框架,该框架是目前较为流行的开源
层框架,该框架主要负责业务层和其它层的耦合问题,该框架主要是采用接口解
决耦合问题,虽然有一定弊端,但是可以解决一部分耦合问题。
在任何 TomCat 和 JBoss 这类服务器中,Spring 框架可以承受不同环境的影
响,使用基础功能。同时 Spring 框架不会受到特定的服务器限制,不会将自身和
指定项目和对象相绑定,这一特性展现了 Spring 框架的优势:在 Spring 框架中
已经配置好的对象可以在不同的项目和不同环境中执行。所以 Spring 框架可以
被不同服务器重用,降低耦合性,增加可扩展性。 Spring 框架的体系结构如图
2-2 所示。
图 2-2 Spring 体系结构
在 Spring 框架中每个模块或组件都是独立的,他们可以单一的被调用,或
者多个联合被调用。主要包括核心容器、Sprisng 上下文和 Spring AOP[6,7]。
Spring 中最基本的功能模块(特性)由核心容器实现。该容器采用对象工厂
来创建、加载实例。该容器的功能主要利用控制反转对资源进行操作,将原本资
源控制权限从双方控制转变为由 Spring 的核心容器来控制,进而减弱了 JAVA
对象的耦合度,从而让实现功能时主要关注使用对象而不是创建对象。
Spring 上下文主要是通过 这一配置文件保存框架功能的
相关参数信息,当工程启动时 Spring 框架可以自动读取 该配
置 文 件 并 对 所 有 模 块 进 行 初 始 化 。 在 配 置 文 件 中 的
Spring-content 标签中配置相关功能,例如检验输入字段的有效性,管理程序异
常等。
Spring 框架中除了 IOC 功能外之外,该框架还有另外一个叫做 AOP 的功能
7
也十分强大。该功能本质上是一个阻断器,主要的功能是操作某些将要执行或者
已经执行完成的方法。使用该功能 ,我们可以将酒店管理系统中设计的核心功能
和一些通用的方法分开,易于实现日志管理,数据库基本信息的管理从而减少代
码冗余,将核心代码和通用代码更加具体、清晰的表现出来。
Spring MVC 框架介绍
Spring MVC 框架主要核心思想的采用一个分发器来处理用户的各个请求,
当有一个请求进来后,该分发器会将这个请求分配给相应的程序进行处理,此外,
该框架还可以进行地址映射、数据库视图分析、程序参数检验、对文件进行便捷
的上传下载等功能。该框架主要采用注解的方式来表示不同功能,通过 Controller
注解来获取所有请求,拿到请求后用 RequestMapping 注解来处理请求[8-12]。该框
架的主要的体系结构如图 2-3 所示。
图 2-3 SpringMVC 体系结构
Spring-mvc 主要由七个核心部件组成,共同完成从请求到响应再获取数据库
数 据 , 再 到 返 回 数 据 这 一 流 程 。 在 这 里 我 们 主 要 介 绍 前 端 控 制 器
(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器(Handler)、处
理器适配器(HandlAdapter)、:视图解析器(ViewResolver)和视图(View)。
1. 前端控制器(DispatcherServlet)主要处理用户的请求,当用户的请求到
达后,该控制器作为 MVC 设计模式中的 controller 来控制整体的数据流动,该
组件可以协同其它组件完成用户请求,采用分发器的形式来减少组件之间的耦合
8
度。
2. 处理器映射器(HandlerMapping)主要是根据用户不同的相应,将任务
分配给不同处理器,主要采用配置文件实现接口和注解的不同映射。
3. 处理器(Handler)主要功能是控制后端程序,根据 DispatcherServlet 分
发的不同请求处理器进而处理用户的不同请求,改模块通常是由程序员根据业务
进行自定义,因此该模块可塑性很强。
4. 处理器适配器(HandlAdapter)主要上用来针对 Handler 无法处理的某些
请求,DispatcherServlet 分发任务后发现没有 handler 可以解决,这时会发送到该
模块上进行处理。
5. 视图解析器(ViewResolver)主要是将 handler 处理后的结果转化为 View
视图,主要流程上首先将逻辑视图转化为页面,然后生成对象,最后对该视图进
行渲染,然后根据静态资源 CSS 配置后显示给用户。
6. 视图(View)主要包括 jsp 页面、html 页面和 xml 页面等。改功能模块
主要上根据具体的不同业务进行具体的开发。
Mysql 数据库介绍
现代计算机中存储的数据呈现暴涨的趋势,工程师便设计了数据库及其管理
工具来帮助程序员解决这一问题,使用数据库后,计算机的存储数据更加有秩序,
数据的冗余度大大降低,数据的独立性大大提高,程序员操作数据更加方便。
mysql Server 采用图形界面,使用方法一目了然[13-17]。
(1)mysql Server 是一款 Relational Database Management System
(2)mysql Server 与 Windows 系统完美结合
(3)mysql Server 对计算机的硬件条件要求不高
(4)mysql Server 具有良好的可伸缩性
(2)mysql Server 具有良好的灵活性,它可以适应快速变化的环境
JSP 技术介绍
本系统使用 jsp 进行编写,jsp 是一种开放动态系统的编程软件,它能将 JAVA
语言嵌入在 html 中使用,也能单独使用,同时具有多种有优点,可以说,jsp 已
经成为 Web 脚本技术的先驱。它融合了现代编程软件(如 C,MyEclipse 和
Perl)的一些最佳特性。Linux、jsp、Tomcat 和 mysql 的组合已经成为 Web 服务
器的一种配置标准。jsp 可以用来:收集表单数据、生成动态网页、字符串处理、
动态输出图片、处理服务器端文件系统、编写数据库支持的网页、会话跟踪控制、
处理 XML 文件、支持利用大量的网络协议、服务器端的其他相关操作。目前能
够用在所有的主流操作系统上,包括 Linux、UNIX 的各种变种、Microsoft
Windows 等。今天, jsp 已经支持了大多数的 Web 服务器,包括 Tomcat、
9
tomcat、iis 等。jsp 提供了一个模块;还有一些 jsp 支持 CGI 标准,使得 jsp 能够
作为 CGI 处理器来工作。
10
3 网上订餐系统分析
系统可行性分析
可行性分析是计算机应用开发必备的步骤。在正式开发之前,我们需要预测
在未来开发中可能碰到的问题,同时要评估网上订餐系统对饭店所带来的收益和
风险,并且需要计算项目成本。如果不进行这一步,预算不够的话,项目开发到
一半时发现资金无法支撑整个项目的开发,这会对饭店造成巨大的损失。因此,
本节主要对系统的技术层面、操作层面、已经经济层面进行可行性分析。
从技术层面来说,本文开发的网上订餐系统使用的框架都是目前较为流行的
框架,并且本文开发的系统所使用的都是较为轻量工具如 Mysql。并且使用 ssm
框架来实现 MVC 模式中的业务层、视图层和持久层。本次开发面向的是单一饭
店,因此使用 Tomcat 服务器完全可以满足日常需求,由于正常用户量最多 500,
所以 Mysql 数据库完全够用,其完全免费,体积好可以降低成本。本系统开发周
期短,可以快速上线使用,因此在技术层面上是完全可行的。
从操作层面来说,本系统为了顾客和饭店员工快速上手,所以设计的界面简
单易懂,清楚明了,没有复杂的操作,通过简单的培训就可以快速入手。日常的
操作只需要几步就可以完成,这样可以有效的提高员工工作效率。对于不同角色
本系统提高不同的权限,以此来防止某些误操作,同时系统中所有的操作都会被
记录,如果出现问题可以快速定位解决问题。本系统操作简单,界面友好,所以
在操作层面上是可行的。
从经济层面来说,本软件的实现只需要开发费用和运营费用,但是对比传统
的订餐方式来说,软件可以帮助饭店提升顾客光顾次数,饭店形象,从而带来更
多客户,并且可以减少发生错误的可能性,从而提升饭店的盈利。所以从经济层
面上来说,本软件的开发也是可行的。
系统业务流程分析
网上预约订餐平台系统设计中涉及的主要业务用户角色又被分为消费者和
管理员(商家),具体流程如下图所示。
Commented [1]: 所有二级标题都要首行缩进 2 字符。
下同,请自行一一修改。
11
图 3-1 系统业务流程图
系统用例分析
消费者前台用户用例图:
图 3-2 用户用例图
(1)注册会员并成功登录。如果一个用户注册在订餐支付系统过程中需要用
户完成付费订餐,则系统必须需要客户完成账户注册,然后该用户付款才能进行支
付订餐服务费用。注册用户登记的账户主要包含内容一般是真实姓名、联系客服
的电话姓名和真实联系地址。
(2)快速浏览菜单功能当普通消费者首次进入到该购物网站时,可以先按物品
类别名称和所在城市地区名称浏览网站可选供其订购用的物品菜单,还免费提供
了快速搜索菜单功能,让普通用户即可迅速地浏览商品菜单。
(3)购物车管理。为用户提供在线暂存购物车菜品明细的查询功能,未实名登
消费者登录 浏览商品
挑选商品并
加入购物车
填写地址付
款下单
等待收货
管理员(商
户)登录
订单管理
菜品管理
菜系管理
用户管理
查看订单
根据已付款订
单地址发货
发货
用户
浏览商品
购物车管理
订单模块
注册登录
Commented [2]: 该系统必须先登录才能浏览菜品吗?
这个系统业务流程可以参考我发给你的那个图修改。
Commented [3]: 这边的用户是不是有两类:游客和会员。
游客有“注册”、“浏览商品”、“加入购物车”的功能吧。
12
录系统的注册用户也随时可以直接使用在线购物车功能查看自己购物车清单中
剩余的所有菜品数量;另外如果是您真的想要直接支付自己购物车清单中菜品的
支付订单,您就需要登录。
(4)订单跟踪管理。它是主要用来提供登录的用户如何查看历史订单、下订
单或取消订单。
图 3-3 管理员(商家)用例图
管理员(商家)可以通过平台后端进行用户管理、餐品管理、菜系管理和订
单管理。
其中用户管理主要是商家修改自身信息,如密码,简介等。餐品管理主要是
让商家可以管理预定的菜品,而菜系管理主要是让商家对目前所拥有的菜品类别
进行管理,订单管理是让商家查看订单,为发货做准备。
管理员(商家)
餐品管理
菜系管理
订单管理
用户管理
13
4 网上订餐系统概要设计
系统功能模块设计
本系统主要分为前端订餐系统和后台商家管理系统。其中前端订餐系统主要
包括用户管理、浏览商品、购物车管理、订单管理。后端商家管理系统主要包括
订单管理,用户管理,菜品管理和菜系管理。系统功能图如图所示。
图 4-1 系统功能图
消费者功能模块如下所示:
1. 用户管理:主要包括用户注册,用户登录,用户信息修改等功能。
2. 浏览商品:主要浏览功能包括浏览所有餐品菜单的所有详细菜单内容,
搜索消费者想要搜索的所有餐品。
3. 购物车管理:消费者可以添加想要选购的菜品进入购物车,可以进行结
算。
4. 订单管理:该模块消费者可以查询正在进行自己的订单或取消订单。
管理员(商家)功能模块如下所示:
1. 用户管理:主要是让管理员(商家)对自己的相关信息进行修改,如密
码简介等。
2. 菜品管理:商家可以自行添加、修改、删除想要更改菜品。
3. 菜系管理:商家可以自行添加、修改、删除想要更改菜系。
4. 订单管理:商家需要查看订单,通过订单地址进行发货。
基于web网上订餐系统的设计与实现
用
户
注
册
用
户
登
录
浏
览
商
品
购
物
车
管
理
订
单
模
块
消费者功能模块 商家功能模块
用
户
管
理
菜
品
管
理
菜
系
管
理
订
单
管
理
Commented [4]: ??
Commented [5]: 商家也可以不接单,取消订单的吧?
14
订单管理模块流程设计
订单管理分为三个部分:接收订单、处理订单、查看订单。系统后台自动接
收到用户订单申请后,根据申请订单明细内容来进行后台处理申请订单数据的各
项操作。此外,可以实时查看所有的订单数据以及订单的详细信息内容。
图 4-2 订单管理模块流程图
餐品管理模块流程设计
餐品的管理主要分为下面四个大部分:浏览餐品、添加餐品、删除餐品。系
统管理员就可以实时查看系统所有用户的下单餐品的内容,根据所有用户实际下
单情况和明确列出各批次餐品实际的总销售量,进行自动修改添加或者直接删除
内容,有发现新需要的餐品时还可以手动添加删除餐品。餐品管理模块流程图如
图 4-3 所示。
15
图 4-3 餐品管理模块流程图
用户注册登录模块流程设计
未直接通过登录注册用户的用户现在也还可以先登录来查看菜单栏页面上
提供的所有菜品的所有餐品的内容,但是若要再次进行在线点餐服务的其他全部
菜品操作就还必须用户需要自己先去登录。如果当前用户暂时没有成功注册的账
号,用户目前仍然是可以通过继续登录进行新账号的注册。用户注册登录模块流
程图如图 4-4 所示。
图 4-4 用户注册登录模块流程图
16
购物车管理模块流程设计
购物车的日常管理一般要分为以下这样的三个很重要的部分:查看所有当前
的购物车、删除当前所有的餐品、清空当前所有的购物车。用户只要首次使用登
录帐号注册后通过点击进入到我自己的购物车页面就已经可以很轻松地查看当
前我自己购物车页面中的出现了的全部餐品,点击清除全部餐品按钮后面对下一
应出现的全部删除当前购物车按钮也一样可以彻底全部的删除掉当前购物车餐
品,点击清空全部当前的购物车按钮后面则一样可以彻底全部将当前的购物车页
面中所出现过的所有购物车的全部餐品清空。购物车管理模块流程图如图 4-5 所
示。
图 4-5 购物车管理模块流程图
下单流程设计
当消费者选购好商品后,返回购物车点击下单填好地址,选择付款方式,付
款后等待商家发货即可。
17
图 4-6 消费者下单流程图
数据库设计
数据库模型的分析设计的实现能力主要指基于对数据库实体类数据表的模
型设计的分析研究能力与具体分析模型设计的实现的结果,本节在文章结构中还
将会尽量主要详细地提出从数据库分析设计中的最主要的概念模型设计出发并
将给出 ER 图,并也将具体给出最主要的类型的数据表型设计的一些详细分析设
计内容。数据库 E-R 图如图 4-6 所示。
开始
查看购物车
商品
成功
填写地址并
付款
生成订单
等待收货
结束
失败
18
图 4-7 全局 E-R 图
管理员内容表(admin)用来存储平台管理员的基本内容,表字段内容 如表 4-1
所示。
表 4-1 管理员内容表
字段名 字段类型 字段大小 能否为空 默认 备注
id int 11 主键 null 标识递增
username varchar 200 否 null 登录名
password varchar 200 否 null 密码
用户内容表(user)。存储订餐系统中注册的消费者用户和平台用户的基本内
容,表字段内容如表 4-2 所示。
表 4-2 用户内容表
字段名 字段类型 字段大小 能否为空 默认 备注
user_id int 11 主键 null 标识递增
用户 下单 菜系
订单
n m
菜品
包含
菜系名
管理 n
n
管理员
(商户)
1
菜名简介
价格
用户名 密码
密码 用户名
真实姓名
联系电话
电子邮箱
地址
订单状态
下单时间
总额
收货人
收获地址
联系电话
19
username varchar 200 否 null 用户名
password varchar 200 否 null 密码
truename varchar 200 是 null 真实名字
email varchar 200 是 null 电子邮箱
phone varchar 200 否 null 移动电话
address varchar 200 是 null 地址
菜系分类内容表(meal_series)。存储系统中所有菜系分类,表字段内容如表
4-3 所示。
表 4-3 菜系分类内容表
字段名 字段类型 字段大小 能否为空 默认 备注
series_id int 11 主键 null 标识递增
series_name varchar 200 否 null 菜系名
菜单内容表(meal)。存储系统中所有菜品内容,表字段内容如表 4-4 所示。
表 4-4 菜单内容表
字段名 字段类型 字段大小 能否为空 默认 备注
meal_id int 11 主键 null 标识递增
series_id int 11 否 null 菜系,外键
meal_name varchar 200 否 null 菜名
meal_descriptio
n
varchar 200 是 null 简介
meal_price decimal 0 否 null 价格
meal_image varchar 200 否 null 图片地址
订单内容表(order)。存储系统中所有订单内容,表字段内容如表 4-5 所示。
表 4-5 订单内容表
字段名 字段类型 字段大小 能否为空 默认 备注
order_id int 11 主键 null 标识递增
user_id int 11 否 null 用户 id,外键
order_time datetime 0 否 null 下单时间
order_name varchar 200 是 null 收货人
order_address varchar 200 否 null 收货地址
order_phone varchar 200 否 null 联系电话
20
order_price decimal 8 否 null 全部金额
order_state varchar 200 否 null 订单状态
21
5 网上订餐系统实现
用户登录实现
不论是消费者还是管理员(商户)都需要登录系统后才可以进行操作,登录
时系统 WEB 层需要提取用户名、密码, 主要通过 UserAction 处理类来过多成
逻辑。用户登录过程的部分代码示例如下:
$(function () {
$("").hide();
//验证不能为空
$("").submit(function(){
if(0==$("#name").val().length||0==$("#password").val().length){
$("").html("账号或密码不能为空");
$("").show();
return false;
}
return true;
});
if("${msg}"=="true"){
$("").html("账号或密码错误");
$("").show();
}
})
消费者登录效果图如图 5-1,5-2 所示。
图 5-1 消费者登录界面
Commented [6]: 分别添加个前、后台的文件结构图吧。
22
图 5-2 管理员(商户)登录界面
消费者登录时,获取表单中的用户名和密码,封装进 User 类中,通过业务
逻辑组件 UserBiz 调用 DA。组件完成对数据库的访问进行验证用户内容。如果
登录验证成功会返回一个用户的 List 集合,将用户对象存入 Session 中并转到主
页的 Action。在主页面消费者可以进行订餐,将选好的餐品放入购物车中。
23
图 5-3 订餐界面
管理员(商户)订单管理实现
商户登录系统后可以查看消费者的订单,并且可以选择是否发货。如图 5-4
所示。查看订单的部分代码示例如下:
<section class="Hui-article-box">
<nav class="breadcrumb"><i class="Hui-iconfont"></i> 首页
<span class="c-gray en">></span>
订单管理
<span class="c-gray en">></span>
订 单 列 表 <a class="btn btn-success radius r"
style="line-height:;margin-top:3px" href="javascript:();"
title="刷新" ><i class="Hui-iconfont"></i></a> </nav>
<div class="Hui-article">
<article class="cl pd-20">
<div class="cl pd-5 bg-1 bk-gray mt-20">
<span class="r">共有数据:<strong>${totals}</strong> 条</span>
</div>
<table class="table table-border table-bordered table-bg" id="mytable">
<thead>
<tr>
<th scope="col" colspan="10">台后订单列表</th>
</tr>
<tr class="text-c">
24
<th width="">ID</th>
<th>地址</th>
<th>买家</th>
<th>总价</th>
<th>状态</th>
<th width="150">操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${os}" var="order">
<tr class="text-c">
<td>${}</td>
<td>${}</td>
<td>${}</td>
<td>${}</td>
<td>
<c:if test="${==0}">
未支付
</c:if>
<c:if test="${==1}">
未发货
</c:if>
<c:if test="${==2}">
已发货
</c:if>
<c:if test="${==3}">
已收货
</c:if>
</td>
<td>
<a title="查看" href="javascript:;"
onclick="orderIetm_list(' 订 单 详 情
','seeOrderItem?oid=${}','1','500','310')"
25
class="ml-5" style="text-decoration:none">
<span class="label label-success radius">查看详情</span>
</a>
<c:if test="${==1}">
<a title="发货" href="/order/orderDelivery?id=${}"
class="ml-5" style="text-decoration:none">
<span class="label label-success radius"> 发 货
</span>
</a>
</c:if>
<c:if test="${==2}">
<span class="label radius">已发货</span>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</article>
<article class="cl pd-20">
<%@include file="../"%>
</article>
</div>
</section>
图 5-4 商家订单管理界面
管理员(商户)餐品、菜系管理实现
在本模块中,商户登录系统后可以对饭店的各种菜品,菜系进行管理,可以
26
对菜品进行相应的增加修改和删除,对菜系也可以进行相应的增加修改删除。相
应的代码如下所示,菜品和菜系管理界面如 5-5,5-6 所示。
<section class="Hui-article-box">
<nav class="breadcrumb"><i class="Hui-iconfont"></i> 首 页 <span
class="c-gray en">></span> 商品管理 <span class="c-gray en">></span> 商品分类
管 理 <a class="btn btn-success radius r" style="line-height:;margin-top:3px"
href="javascript:();" title=" 刷 新 " ><i
class="Hui-iconfont"></i></a></nav>
<div class="Hui-article">
<article class="cl pd-20">
<div class="cl pd-5 bg-1 bk-gray mt-20">
<input type="text" class="input-text" style="width:150px" placeholder="输
入分类名称" id="newCateName" name="">
<button class="btn btn-secondary radius"
onclick="admin_category_add()">添加分类</button>
如果分类无法删除的话,是因为该分类下有商品
<span class="r">共有数据:<strong>${size}</strong> 条</span> </div>
<table class="table table-border table-bordered table-bg">
<thead>
<tr>
<th scope="col" colspan="7">分类列表</th>
</tr>
<tr class="text-c">
<th width="25"><input type="checkbox" name="" value=""></th>
<th width="40">ID</th>
<th width="100">分类名称</th>
<th width="100">操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="category">
<tr class="text-c">
27
<td><input type="checkbox" value="1" name=""></td>
<td>${}</td>
<td>${}</td>
<td><a title=" 编 辑 " href="javascript:;"
onclick="admin_category_edit(' 分 类 编 辑 ','editCategory?id=${}','1','','310')"
class="ml-5" style="text-decoration:none">
<i class="Hui-iconfont"></i></a> <a
deleteLink="true" title=" 删除" href="/category/delCategory?id=${}" class="ml-5"
style="text-decoration:none"><i class="Hui-iconfont"></i></a></td>
</tr>
</c:forEach>
</tbody>
</table>
</article>
</div>
</section>
图 5-5 菜品管理界面
图 5-6 菜系管理界面
28
消费者注册实现
当消费者想要点餐时,首先需要登录,如果消费者没有注册过账号,那么可
以点击点餐主界面右上角的注册按钮,跳转到注册界面,消费者需要输入姓名,
密码,邮箱和手机号。注册核心代码如下所示,用户注册界面如 5-7 所示。
$(function () {
//验证不能为空
$("").submit(function(){
if(0==$("#name").val().length||0==$("#password").val().length){
alert("账号不能为空");
return false;
}
return true;
});
})
图 5-7 用户注册界面
消费者购物车、下单功能实现
当消费者成功登录系统后,可以将想要预订的食物添加到购物车内,如图 5-8
所示,当用户选择完成后,点击下单系统会跳转到地址填写界面,如图 5-9 所示,
填写好地址后选择支付方式点击提交订单就可以成功订餐。核心代码如下所示。
<script type="text/javascript">
var oiids = [];
//总购买数量
var totalNumb=0;
29
//订单总价
var totaljiage=0;
function dianji(object,oiid,price){
//订单项购买数量
var num = $("#oiNumber"+oiid).val()*1;
//保存选中的订单项的小计
var currentTotaljg = 0;
//保存商品具体价格
var p=0;
//判断是否是会员 进行折扣
if(${==1}){
p = price*;
$("xiaoji08").val(p*num);
}else{
p=price*1;
$("xiaoji1").val(p*num);
}
//选中订单项
if(==1){
//获取当前订单项的购买商品数量
num = $("#oiNumber"+oiid).val()*1;
//获取下单数量 默认 0
totalNumb += num;
//计算当前订单项小计
currentTotaljg = num*p;
totaljiage += currentTotaljg;
//更新订单价格
$("#OisTotal").text("$"+totaljiage);
//更新下单的购买数量
$("#OisNum").text(totalNumb);
//添加订单项 id
(oiid);
}else{//撤销订单项
30
num = $("#oiNumber"+oiid).val()*1;
totalNumb -= num;
currentTotaljg = num*p;
totaljiage -= currentTotaljg;
$("#OisTotal").text("$"+totaljiage);
$("#OisNum").text(totalNumb);
removeByValue(oiids,oiid);//这里突然没有 js 的 remove 方法,自定义一个
}
}
function removeByValue(arr, val) {
for(var i=0; i<; i++) {
if(arr[i] == val) {
(i, 1);
break;
}
}
}
//提交购物车订单
function subMyOrder() {
if(==0){
alert("请勾选要买的商品");
return false;
}
="/fore/forebuy?oiid="+oiids;
}
function delOrderItem(oiid) {
$.get(
"foreDelOrderItem",
{"oiid":oiid},
function (result) {
if(result="success"){
$("#delOrderItem"+oiid).parent().remove();
}else{
31
alert("登录过期,请登录");
}
}
);
}
</script>
图 5-8 购物车界面
图 5-9 消费者填写地址界面
32
图 5-10 查看订单界面
33
6 网上订餐系统测试
测试过程
分 析 在 线 订 餐 系 统 , 确 定 要 测 试 的 内 容 并 制 定 测 试 计 划 , 本 系 统 在
Windows10 64 位专业版上运行只进行功能测试。测试主要分为消费者功能模块
测试和管理员(商户)功能模块测试。执行测试,准备搭建测试环境,并记录测试
内容。提交并解决测试中的 bug。
测试订餐系统前端用例
表 6-1 测试用例执行情况
需 求 功 能
名称
测 试 用 例 名
称
执行说明 执行情况 是否通过
启动订餐
系统
启动测试 测试服务器是否能打开;测试
订餐系统是否能正常运行,订
餐系统页面间转换是否正常。
良好 是
用户登录 登录测试 测试用户打开订餐系统时能否
进行用户登录,是否跳转主页
面流畅;是否登录成功。
良好 是
图片轮播 图片轮播测
试
测试轮播图是否正常轮播;测
试轮播图的图片是否能点击跳
转对应美食或活动页面。
良好 是
查看餐品
详情
查看美食详
情测试
测试点击美食或点击热门活动
是否能流畅跳转至对应的美食
详情也页面;测试美食详情页
面内容是否展现完好和运行流
畅。
良好 是
添加购物
车
添加功能测
试
测试菜品是否能正常添加到购
物车,刷新界面后购物车内的
菜品是否还在
良好 是
用户注册 注册测试 测试用户是否能正常填写注册
相关信息,点击注册后是否能
正常注册
良好 是
34
填写送货
地址
测试填写地
址功能
测试地址文本框是否可以正常
的输入文字
良好 是
下单功能 测试下单功
能
测试是否可以正常选择支付方
式正常下单
良好 是
查看订单
功能
测试查看订
单功能
测试消费者查看自己订单信息
是否能正常显示
良好 是
测试订餐系统后端用例
表 6-2 测试订餐系统后端用例表
功能 执行说明
执行情况 是否通过
系统登录
管理员登
录
输入框输入用户
名和密码
良好 是
查询
查询订单
内容
无 良好 是
新增
新增订单
内容
点击新增按钮,输
入相关内容并点
击保存
良好 是
删除
删除订单
内容
点击删除按钮,弹
出对话框并点击
确定
良好 是
订单
管理
编辑
编辑订单
的内容
点击修改按钮,修
改相关内容并点
击保存
良好 是
查询
查询菜品
内容
无 良好 是
菜品
管理
新增
新增菜品
内容
点击新增按钮,输
入相关内容并点
击保存
良好 是
35
删除
删除菜品
内容
点击删除按钮,弹
出对话框并点击
确定
良好 是
编辑
编辑菜品
内容
点击修改按钮,修
改相关内容并点
击保存
良好 是
查询
查询菜系
内容
无 良好 是
新增
新增菜系
内容
点击新增按钮,输
入相关内容并点
击保存
良好 是
删除
删除菜系
内容
点击删除按钮,弹
出对话框并点击
确定
良好 是
菜系
管理
编辑
编辑菜系
内容
点击修改按钮,修
改相关内容并点
击保存
良好 是
查询
查询商家
信息
根据商家名称进
行查询
良好 是
新增
新增商家
信息
点击新增按钮,输
入相关内容并点
击保存
良好 是
删除
删除商家
信息
点击删除按钮,弹
出对话框并点击
确定
良好 是
商家
管理
编辑
编辑商家
信息
点击修改按钮,修
改相关内容并点
击保存
良好 是
查询
查询订单
信息
根据订单号进行
查询
良好 是
订单
管理
发货
对已经支
付订单发
货
点击发货按钮 良好 是
36
查询 查询评论
根据关键字称进
行查询
良好 是
评论
管理
删除 删除评论
点击删除按钮,弹
出对话框并点击
确定
良好 是
测试设计评估及改进
这个测试是为了测试网上订购系统的质量。这样做的目的是为了让用户能够
顺利地使用订购系统,并确保每个功能都能正常运行。并评估整体的稳定性和可
操作性,然后提出人们与系统交互方式的改变。例如发现环境和软件版本不支持,
环境框架存在漏洞;点餐的系统未连接到服务器后台,点餐的系统无法显示数据;订
餐系统的前端设计缺乏,用户与系统的交互效果不佳。然后再次开发和补充测试
问题。
37
结论
从一开始,系统的设计和开发对我来说不简单,由于时间长,部分基础的理论
知识已经忘记。后来,通过我的不断学习、试验、实验和修改,系统终于能够正常
运行。这是真的很难,但充满了成就。感觉的过程。该系统与实际设计相符。在
系统设计开发之前,对普通游客的爱好特点进行了大量的调查研究。本系统是根
据调查结果进行设计开发的,充分考虑了这些经济压力带来的具体需求。系统操
作简单简捷,后台维护也非常简捷,让系统的每一个操作人员和用户都可以一目了
然的操作,查看自己想要知道的内容,详细的了解出行带来的内容。具体情况,公开
透明,促进旅游业的发展,提高经济的可持续发展。
网上订餐系统的开发重点是"订餐系统",开发前、开发中、开发后的系统开发
都必须围绕这一点进行。需要做更多的研究,了解掌握者的真实需求,并详细分析
具体问题。只有需求才能更好的帮助系统的程序设计。盲目开发必然会影响系统
的整体开发、测试和进度。它只会增加自己的工作负载。再好的设计,如果不能
满足客户的需求,那么这个设计就没有多大用处了。在设计中要避免的主要问题
是,在没有仔细研究实际情况的情况下,只专注于输入代码,这很容易导致最终的
错误。从一开始进入美术学校就一直持续到了到现在,我已经从绘画中学的到了
室内设计的很多的相关设计知识,为我后来的我以后从事的室内设计职业的设计
专业方向发展打下基础奠定打下了一个十分的坚实而可靠的基础。软件是使用
mybits 和 spring 框架开发的。开发过程中难以把握的是如何准确使用 spring 框架,
系统如何给用户带来体验感。这些也让我有了更扎实的知识和实践技能。更上了
一层楼,为今后我的以后的各项工作发展打下更为坚实有力的基础。由于时间、
经验和自身水平的问题,我的设计可能还不够完美,还有不足之处。我相信通过我
未来的不断学习,我会有更好的作品。
38
参考文献
[1]米国佼.基于 技术的酒店内容管理系统的设计与实现[D].吉林大学,2020
[2]刘若愚.B/S 模式下的物业管理系统设计[J].池州学院学报,2018,20(5):25-27.
[3]钟路,徐俊杰,彭钮,等.基于 Struts 和 JD 的物业管理系统的设计与实现[J].计算机与数
字工程,2020,34(3):140-142.
[4]曾喜银.基于 Internet 的物业管理系统的设计和实现[J].现代电子技术,2020,30(8):68-70.
[5] 杨 骏 , 张 华 强 . 使 用 SSH 架 构 酒 店 内 容 管 理 系 统 [J]. 计 算 机 光 盘 软 件 与 应 用 ,
2020(20):233-234.
[6]姚芬.物业管理系统 架构设计[J].电子设计工程,2020,23(13).
[7]陈会.基于 VB 开发的酒店内容管理系统[J].内容系统工程,2021(4): 53-53
[8]Bouffard GLanetJ. The Ultimate Control Flow Transferina Java based Smart Card
[J].Computers&Security,2020,50(6):33-46
[9]Cristian T. Sample Development on Java Smart-Card Electronic Wallet Application [J]. Journal
of Mobile Embedded & Distributed Systems,2020,11(6):333-351
[10]Shen J Rent Zhang J. Designand Implementation of lmplementation Electronic Coupon
System Based on JavaCard [J].Journal of Computational Information Syst2020,11(9):3229-3236
[11]黄佳美.基于 技术的酒店内容管理系统设计与实现[D].吉林大学,2020
[12]刘宏.当前物业管理纠纷解决存在的问题与对策研究[D].西南政法大学,2019
[13]陈志行.酒店内容管理系统的设计与实现[D].吉林大学,2020. 项目来源(课题、基金、
项目等名称、来源、编号、年月)
[14]徐连霞,傅伟.酒店内容管理系统的设计与实现[J].现代营销(内容版),2019,(10):189.
[15]郭保卫,苑丰.基于 Web 的酒店内容管理系统[J].内容与电脑(理论版),2018,(22):70-73
[16]陈月娟.智能化酒店内容管理系统的研究与构建[J].大庆师范学院学报,2018,38(06):76-79
[17]罗春红.基于大数据下的酒店内容管理系统的开发研究[J].职业,2019,(25):60-61.