摘 要
由于当今社会人们生活节奏普遍加快,人们对于美食的要求也在不断增加,但是由于人们的工作越来越繁忙,往往午休时间只有1个小时左右,这就限制了人们去饭店享用美食,所以产生了网上订餐的需求。并且由于近年来,随着计算机技术的飞速发展,在线支付已经逐渐成为一种主流趋势,这很好的弥补了网上订餐付款的问题。网上订餐相比于堂食更加便捷,人们不用花费长时间的等待,可以提前订餐,当到了休息时间,直接就可以享用美食,这样变相的延长了人们休息的时间。
本文基于SSM框架,设计开发了网上订餐系统,实现了消费者和管理员(商户)相关功能模块。在消费者功能模块中,消费者可以进行浏览菜品和在线订购等操作,在商户功能模块中,商户可以进行新增菜品和发货等操作。
关键词:网上订餐;电子商务;SSM;SpringMVC
1绪论
1.1 课题研究背景
当前,互联网信息技术已经越来越成为当代人们生活上和生产工作活动中一项不可或缺的互联网重要通讯工具。通过网络技术,人们之间高效的进行沟通、团队协同工作和内容共享都非常简捷。网络信息应用服务已日益广泛地被应用于经济各个领域。在此市场背景推动下,电子商务概念应运而生,并因此迅速地被发展成熟起来。要依法及时推动建立完善和培育完善适合电子商务发展趋势的电子商务物流体系平台和交易渠道。消费者今后在境外网上购物交易的更主要沟通方式也是如何通过电子商务。
在当前互联网内容时代,许多传统互联网餐饮市场内容的最主要的传播媒介和互动宣传等方式更多还是以实际餐饮立面内容的形式开始出现,互联网领域完整的真实餐饮市场体系至今尚未得以完全地建立形成和发展完善。电子商务市场的迅猛发展无疑给整个传统的餐饮市场模式带来一个了一次巨大革命性的革命性飞跃。餐饮市场还可以考虑重点去发展具有个性化、特色餐饮的增值服务,利用第三方的商业平台去推广企业品牌,增加销售。因此,电子商务无疑为提升传统零售餐饮业服务注入出了一个新时期的商业活力,必将有效推动传统餐饮业市场的持续迅速发展。
在当今这种消费趋势推动下,餐饮市场已经在网络电子商务领域中开始扮演了一种越来越重要的消费角色,网上电子订餐服务系统的应运而生。人们从此不需要自己去正规餐馆里面吃饭,也可以避免去了餐厅排队就餐的诸多麻烦。他们每天只在需要时段通过手机互联网在线购买一款营养种类丰富、价格最实惠最好的可以满足其自己饮食需求的健康食品,这也不仅极大节省掉了等待他们购物的漫长时间,也大大的为网络餐饮市场商家提供方便了品牌网络推广途径和营销推广,创造着更多潜在的巨大商业机会。
1.2 研究现状
运用餐饮管理软件系统进行经营管理,不仅迅速提高管理了中国餐饮市场公司的规范化管理和水平,还为提供了更为及时与有效准确的提供餐饮内容,让中国消费者可根据各餐厅实际提供服务的各项内容而迅速准确找到属于自己的需要选择的餐厅美食。与我国传统的餐饮市场中的传统手工操作管理相比,不仅大幅度节省了企业用户管理的宝贵时间,而且还在大量获得实际经济效益增长的同时,提高到了传统餐饮企业管理工作上的效率。不仅是如此,餐厅自身还将可以继续通过移动互联网平台推广属于自己特色的服务品牌,并希望通过收集消费者反馈的反馈内容来充实完善餐厅内容。自己发现的服务问题改进和创新提供顾客更高质量化的选择食物体验和提供更好的个性化服务,使餐厅能够有个更大发展的自我成长空间。
在欧洲一些和国外,网上的在线自助订餐和这种在线服务形式已是开展得的时间都已经比较之早,随着现代电子商务及快递与物流网络的进一步快速发展普及的发展和现代电子商务中网上的订单式交易这种业务模式及应用得到的社会条件也日益地发展与成熟,网上的在线自助订餐等方式目前正日益快速的进入中国人千家万户。不仅限于餐饮电子商务如此,随着将来我国的电子商务平台物流行业的得到进一步地发展,我国乃至整个我国餐饮业电子商务平台和国内物流业电子商务平台都是将使企业平台企业和平台商家双方的实现了到了真正的利益双赢。进一步地也必将促进并带动到了在中国供应链上游的国内物流产业地发展和带动国内物流下游的我国第三方的供应链物流产业地的发展。当前,餐饮的电商行业一个较能被消费者市场普遍认可及接受的一种商业模式运营它的基本模式通常也是指由商家消费者先由自己申请注册或建立第三方公司网站或消费者自行报名加入到第三方的电商平台,消费者由自己注册和加入第三方的用户平台可以自己通过使用电脑互联网设备或通过其它的移动或智能设备等来享受在线网上自助下单订餐。商家能够对用户以最快的烹饪时间内上门快速制作送出优质饭菜,并同时能保障通过第三方线下或专业物流快递员送达的饭菜迅速准确到达和送货。通过残酷的风险评估分析系统和劳动生产经验密集型的标准化操作及管理培训方法,在给用户在最短的上门烹饪操作时间范围内迅速成功的将优质美味饭菜快速准时地送到目标用户手中。从满足用户需求最大化的角度综合分析情况来看,订餐者的确已普遍享受或得到了另外的一种更为经济低成本、迅速与方便实用的新型在线即时用餐服务预订消费模式。但是,现有互联网订餐行业的种种传统商业运营手段和消费模式之间也同样仍然面临或多或少所存在着的其他许多现实潜在的问题。
主要体现在:
(1)缺乏有效的监控体系。餐饮业对食品安全的要求非常高。如果对供给侧商家的食品供应过程没有有效的监督,将不可避免地出现制造问题食品的黑心商家。
(2)现有个体商户难以建立大型电子商务平台。选择加入是他们唯一的选择。电商平台和商家之间的利益竞争不利于一些特色餐厅的发展,倾向于生产迅速、低成本的食品。
(3)订餐服务管理应用系统本身缺乏承担对订餐用户内容加密保护功能的系统安全维护责任。大量注册用户在平台上进行注册申请后,内容往往被过度复制使用,账号无法注销,这也意味着个人内容无法恢复。尽管如此,XX部门已经慢慢开始在关注网络食品和订餐软件市场方面的规范健康地发展,并发布制定了一些具指导性价值的相关规则。一些知名学者都已经陆续开始在对系统层面上和通过技术手段方面进行深入研究,以帮助促进国内整个互联网订餐消费市场未来的进一步健康良性发展。
学术界最关注研究的仍然是个性化无线订餐系统中的相关技术及实现。当前关注的主要前沿问题将不仅主要体现在如何应用这些新技术去实现无线订餐内容管理及系统,还重点体现在无线个性化无线订餐系统内容检索算法中的相关应用,以及无线订餐系统内容推送系统算法及其优化方面的问题研究。讨论如何去在这些系统和实现方案中去应用一些相关技术的算法。例如,利用贝叶斯网络技术对用户行为特征进行建模并分析,在用户在线订购服务过程中可通过选择固定用户的最佳订购的时间节点和时间地点等对其订购的行为特征进行概率的统计,从而能获得一些指导性建议。该行为评价能够通过数据量化,粗略的判断客户最近一天是否会产生出了较大量的错误行为评价,并能够根据某个特定时段用户的最佳选择用餐行为,推荐最佳餐点数量和设置最佳餐桌座位,从而可以提高出勤率。
随着网络新业务开发和技术平台的逐步发展成熟和对订餐业务相关问题理论的研究逐步的发展深入,订餐服务管理信息化平台将在逐步实现网站基本的功能服务的同时,将进一步通过网站内容系统逐步实现对餐饮业务流程内容的全面标准化、标准化和可视化。大数据深度挖掘服务与服务提升带来了智能化决策分析支持、人性化的内容智能推送、便捷的安全智能支付等。
1.3 主要内容
在全面研究考察了国外现有网络订餐电子商务平台应用的基本现状情况和最新发展趋势后,结合现阶段国内外应用环境,分析讨论了未来订餐电子平台发展的市场发展的潜力。从应用系统需求满足的需求角度,详细的介绍出了网络订购子平台具体需要系统提供相应的系统功能。用户终端根据需要分别为每个用户端提供在线选择商业区、选择店铺、订餐、将用户当前在线订单记录保存添加到购物车、在线支付、评估订单金额等服务功能。提供订单存储及编辑、菜单修改、订单状态查看功能和订单状态修改等功能。在进一步明确了系统需求分析后,同时还对在设计的过程中面临的另一些主要难点也进行了深入详细全面的详细讨论,并最后在本章最后部分给出了最具体有效的解决方案。主要工作特点创新:
(1)从企业实际管理应用问题出发,设计了并初步实现出了这样一个企业通用的互联网订餐平台。
(2)为了能够让平台产品更强有市场生命力,将目标用户分为消费者和管理员(商家)。与其他普通商场的统一订货销售管理平台系统所不同的特点是,此统一平台还可以对多家实体门店订货进行管理联合使用。
1.4 本文结构
本文分为七个部分:
第一报告部分:介绍研究了网上电子订餐系统开发的整体研究及背景,分析评价了开展该服务系统研发的整体研究工作意义何在和巨大发展空间潜力,并分别通过实证分析相关结果最终确定开展了哪些主要系统的开发研究及内容选择和应用开发工作。
第二部分:介绍阐述了网上电话订餐服务系统应用所必须涉及到的各种相关共性技术基
第三大部分:对网上在线订餐服务系统用户的实际业务需求点进行作了需求分析,并结合实际进行做了一些详细实用的系统业务流程优化分析。
第四大部分:根据订餐系统设计的功能需求的分析,进行网上在线订餐平台系统架构的总体设计,包括网站各部分功能模块之间的关系具体流程设计流程和系统数据库框架的优化设计。
第五部分:在基本明确了系统实现的用户需求的分析目标和初步设计实现思路框架后,利用相关数据库技术迅速展开项目开发研究工作,完成了系统设计的实现。
第六测试部分:为了能保证系统内部各环节功能系统的高稳定性,对模块系统进行综合测试,首先系统对中各主要单元模块性能进行分析测试,然后分别对系统各功能单元模块系统进行分析集成,对整个系统稳定性进行一个整体综合测试。
第七大部分:进行分析总结,并同时对自己下一步的工作安排进行战略展望。
2网上订餐系统相关技术介绍
2.1MyBatis框架
本文使用MyBatis 作为持久层框架,该框架有很多优势,主要可以根据sql语句动态配置来对数据库进行相应操作,该框架同时包含数据库的高级特性如触发器,函数,存储过程等。MyBatis 使用配置文件的方式记录数据库连接参数实现连接,不需要采用传统的jdbc模式就能拿到存储在数据库中的数据,采用这种连接方式能有效的减少创建数据表和销毁数据表时的开销。此外,该框架以配置文件的形式实现sql语句进而操纵数据库[1-5],java的类映射成数据库中的数据。
Mybatis 框架主要分为接口层、数据处理层、基础支撑层这三层架构,如下图所示。
图2-1Mybatis结构图
第一层接口:api接口层提供相关功能的接口,服务层调用这些接口后。实际处理业务层只需要使用这些接口就可以获得相应的功能,从而完成对数据库的操作。当系统调用某一接口后,Mybatis框架就可以获取配置文件中对应的sql语句对数据库进行相应增删改查。
第二层数据:当服务层调用接口层的接口后,数据层会找到相应的配置文件中的sql语句对数据库进行增删改查,操作数据库后数据库会返回相应数据。数据层主要是将原始操作封装为接口以便调用,当其他层调用这些接口后可以非常简单的对数据库进行相应增删改查。
第三层支撑:基础支撑层主要上存储连接数据库操作数据库的基本的参数,例如操作数据库的驱动,数据库的用户名及密码等。
2.2Spring框架
本文使用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-content.xml这一配置文件保存框架功能的相关参数信息,当工程启动时Spring框架可以自动读取Spring-content.xml该配置文件并对所有模块进行初始化。在Spring-content.xml配置文件中的Spring-content标签中配置相关功能,例如检验输入字段的有效性,管理程序异常等。
Spring框架中除了IOC功能外之外,该框架还有另外一个叫做AOP的功能也十分强大。该功能本质上是一个阻断器,主要的功能是操作某些将要执行或者已经执行完成的方法。使用该功能 ,我们可以将酒店管理系统中设计的核心功能和一些通用的方法分开,易于实现日志管理,数据库基本信息的管理从而减少代码冗余,将核心代码和通用代码更加具体、清晰的表现出来。
2.3Spring MVC 框架
Spring MVC框架主要核心思想的采用一个分发器来处理用户的各个请求,当有一个请求进来后,该分发器会将这个请求分配给相应的程序进行处理,此外,该框架还可以进行地址映射、数据库视图分析、程序参数检验、对文件进行便捷的上传下载等功能。该框架主要采用注解的方式来表示不同功能,通过Controller注解来获取所有请求,拿到请求后用RequestMapping注解来处理请求[8-12]。该框架的主要的体系结构如图2-3所示。
图2-3 SpringMVC体系结构
Spring-mvc主要由七个核心部件组成,共同完成从请求到响应再获取数据库数据,再到返回数据这一流程。在这里我们主要介绍前端控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器(Handler)、处理器适配器(HandlAdapter)、:视图解析器(ViewResolver)和视图(View)。
1. 前端控制器(DispatcherServlet)主要处理用户的请求,当用户的请求到达后,该控制器作为MVC设计模式中的controller来控制整体的数据流动,该组件可以协同其它组件完成用户请求,采用分发器的形式来减少组件之间的耦合度。
2. 处理器映射器(HandlerMapping)主要是根据用户不同的相应,将任务分配给不同处理器,主要采用配置文件实现接口和注解的不同映射。
3. 处理器(Handler)主要功能是控制后端程序,根据DispatcherServlet分发的不同请求处理器进而处理用户的不同请求,改模块通常是由程序员根据业务进行自定义,因此该模块可塑性很强。
4. 处理器适配器(HandlAdapter)主要上用来针对Handler无法处理的某些请求,DispatcherServlet分发任务后发现没有handler可以解决,这时会发送到该模块上进行处理。
5. 视图解析器(ViewResolver)主要是将handler处理后的结果转化为View视图,主要流程上首先将逻辑视图转化为页面,然后生成对象,最后对该视图进行渲染,然后根据静态资源CSS配置后显示给用户。
6. 视图(View)主要包括jsp页面、html页面和xml页面等。改功能模块主要上根据具体的不同业务进行具体的开发。
2.4Mysql数据库
现代计算机中存储的数据呈现暴涨的趋势,工程师便设计了数据库及其管理工具来帮助程序员解决这一问题,使用数据库后,计算机的存储数据更加有秩序,数据的冗余度大大降低,数据的独立性大大提高,程序员操作数据更加方便。mysql Server采用图形界面,使用方法一目了然[13-17]。
(1)mysql Server是一款Relational Database Management System
(2)mysql Server与Windows系统完美结合
(3)mysql Server对计算机的硬件条件要求不高
(4)mysql Server具有良好的可伸缩性
(2)mysql Server具有良好的灵活性,它可以适应快速变化的环境
2.4JSP技术
本系统使用jsp进行编写,jsp是一种开放动态系统的编程软件,它能将JAVA语言嵌入在html中使用,也能单独使用,同时具有多种有优点,可以说,jsp已经成为Web脚本技术的先驱。它融合了现代编程软件(如C,MyEclipse和Perl)的一些最佳特性。Linux、jsp、Tomcat和mysql的组合已经成为Web服务器的一种配置标准。jsp可以用来:收集表单数据、生成动态网页、字符串处理、动态输出图片、处理服务器端文件系统、编写数据库支持的网页、会话跟踪控制、处理XML文件、支持利用大量的网络协议、服务器端的其他相关操作。目前能够用在所有的主流操作系统上,包括Linux、UNIX的各种变种、Microsoft Windows等。今天,jsp已经支持了大多数的Web服务器,包括Tomcat、tomcat、iis等。jsp提供了一个模块;还有一些jsp支持CGI标准,使得jsp能够作为CGI处理器来工作。
3 网上订餐系统分析
3.1系统可行性分析
可行性分析是计算机应用开发必备的步骤。在正式开发之前,我们需要预测在未来开发中可能碰到的问题,同时要评估网上订餐系统对饭店所带来的收益和风险,并且需要计算项目成本。如果不进行这一步,预算不够的话,项目开发到一半时发现资金无法支撑整个项目的开发,这会对饭店造成巨大的损失。因此,本节主要对系统的技术层面、操作层面、已经经济层面进行可行性分析。
从技术层面来说,本文开发的网上订餐系统使用的框架都是目前较为流行的框架,并且本文开发的系统所使用的都是较为轻量工具如Mysql。并且使用ssm框架来实现MVC模式中的业务层、视图层和持久层。本次开发面向的是单一饭店,因此使用Tomcat服务器完全可以满足日常需求,由于正常用户量最多500,所以Mysql数据库完全够用,其完全免费,体积好可以降低成本。本系统开发周期短,可以快速上线使用,因此在技术层面上是完全可行的。
从操作层面来说,本系统为了顾客和饭店员工快速上手,所以设计的界面简单易懂,清楚明了,没有复杂的操作,通过简单的培训就可以快速入手。日常的操作只需要几步就可以完成,这样可以有效的提高员工工作效率。对于不同角色本系统提高不同的权限,以此来防止某些误操作,同时系统中所有的操作都会被记录,如果出现问题可以快速定位解决问题。本系统操作简单,界面友好,所以在操作层面上是可行的。
从经济层面来说,本软件的实现只需要开发费用和运营费用,但是对比传统的订餐方式来说,软件可以帮助饭店提升顾客光顾次数,饭店形象,从而带来更多客户,并且可以减少发生错误的可能性,从而提升饭店的盈利。所以从经济层面上来说,本软件的开发也是可行的。
3.2系统业务流程分析
网上预约订餐平台系统设计中涉及的主要业务用户角色又被分为消费者和管理员(商家),具体流程如下图所示。
图3-1系统业务流程图
3.3系统用例分析
消费者前台用户用例图:
图3-2用户用例图
(1)注册会员并成功登录。如果一个用户注册在订餐支付系统过程中需要用户完成付费订餐,则系统必须需要客户完成账户注册,然后该用户付款才能进行支付订餐服务费用。注册用户登记的账户主要包含内容一般是真实姓名、联系客服的电话姓名和真实联系地址。
(2)快速浏览菜单功能当普通消费者首次进入到该购物网站时,可以先按物品类别名称和所在城市地区名称浏览网站可选供其订购用的物品菜单,还免费提供了快速搜索菜单功能,让普通用户即可迅速地浏览商品菜单。
(3)购物车管理。为用户提供在线暂存购物车菜品明细的查询功能,未实名登录系统的注册用户也随时可以直接使用在线购物车功能查看自己购物车清单中剩余的所有菜品数量;另外如果是您真的想要直接支付自己购物车清单中菜品的支付订单,您就需要登录。
(4)订单跟踪管理。它是主要用来提供登录的用户如何查看历史订单、下订单或取消订单。
图3-3管理员(商家)用例图
管理员(商家)可以通过平台后端进行用户管理、餐品管理、菜系管理和订单管理。
其中用户管理主要是商家修改自身信息,如密码,简介等。餐品管理主要是让商家可以管理预定的菜品,而菜系管理主要是让商家对目前所拥有的菜品类别进行管理,订单管理是让商家查看订单,为发货做准备。
4 网上订餐系统概要设计
4.1系统功能模块设计
本系统主要分为前端订餐系统和后台商家管理系统。其中前端订餐系统主要包括用户管理、浏览商品、购物车管理、订单管理。后端商家管理系统主要包括订单管理,用户管理,菜品管理和菜系管理。系统功能图如图所示。
图4-1系统功能图
消费者功能模块如下所示:
用户管理:主要包括用户注册,用户登录,用户信息修改等功能。浏览商品:主要浏览功能包括浏览所有餐品菜单的所有详细菜单内容,搜索消费者想要搜索的所有餐品。购物车管理:消费者可以添加想要选购的菜品进入购物车,可以进行结算。订单管理:该模块消费者可以查询正在自己的订单或取消订单。管理员(商家)功能模块如下所示:
用户管理:主要是让管理员(商家)对自己的相关信息进行修改,如密码简介等。菜品管理:商家可以自行添加、修改、删除想要更改菜品。菜系管理:商家可以自行添加、修改、删除想要更改菜系。订单管理:商家需要查看订单,通过订单地址进行发货。
4.2订单管理模块流程设计
订单管理分为三个部分:接收订单、处理订单、查看订单。系统后台自动接收到用户订单申请后,根据申请订单明细内容来进行后台处理申请订单数据的各项操作。此外,可以实时查看所有的订单数据以及订单的详细信息内容。
图4-2订单管理模块流程图
4.3餐品管理模块流程设计
餐品的管理主要分为下面四个大部分:浏览餐品、添加餐品、删除餐品。系统管理员就可以实时查看系统所有用户的下单餐品的内容,根据所有用户实际下单情况和明确列出各批次餐品实际的总销售量,进行自动修改添加或者直接删除内容,有发现新需要的餐品时还可以手动添加删除餐品。餐品管理模块流程图如图4-3所示。
图4-3餐品管理模块流程图
4.4用户注册登录模块流程设计
未直接通过登录注册用户的用户现在也还可以先登录来查看菜单栏页面上提供的所有菜品的所有餐品的内容,但是若要再次进行在线点餐服务的其他全部菜品操作就还必须用户需要自己先去登录。如果当前用户暂时没有成功注册的账号,用户目前仍然是可以通过继续登录进行新账号的注册。用户注册登录模块流程图如图4-4所示。
图4-4用户注册登录模块流程图
4.5购物车管理模块流程设计
购物车的日常管理一般要分为以下这样的三个很重要的部分:查看所有当前的购物车、删除当前所有的餐品、清空当前所有的购物车。用户只要首次使用登录帐号注册后通过点击进入到我自己的购物车页面就已经可以很轻松地查看当前我自己购物车页面中的出现了的全部餐品,点击清除全部餐品按钮后面对下一应出现的全部删除当前购物车按钮也一样可以彻底全部的删除掉当前购物车餐品,点击清空全部当前的购物车按钮后面则一样可以彻底全部将当前的购物车页面中所出现过的所有购物车的全部餐品清空。购物车管理模块流程图如图4-5所示。
图4-5购物车管理模块流程图
4.6 下单流程设计
当消费者选购好商品后,返回购物车点击下单填好地址,选择付款方式,付款后等待商家发货即可。
图4-6消费者下单流程图
4.7 数据库设计
数据库模型的分析设计的实现能力主要指基于对数据库实体类数据表的模型设计的分析研究能力与具体分析模型设计的实现的结果,本节在文章结构中还将会尽量主要详细地提出从数据库分析设计中的最主要的概念模型设计出发并将给出ER图,并也将具体给出最主要的类型的数据表型设计的一些详细分析设计内容。数据库E-R图如图4-6所示。
图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 | 标识递增 |
username | varchar | 200 | 否 | null | 用户名 |
password | varchar | 200 | 否 | null | 密码 |
truename | varchar | 200 | 是 | null | 真实名字 |
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_description | 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 | 联系电话 |
order_price | decimal | 8 | 否 | null | 全部金额 |
order_state | varchar | 200 | 否 | null | 订单状态 |
5 网上订餐系统实现
5.1用户登录实现
不论是消费者还是管理员(商户)都需要登录系统后才可以进行操作,登录时系统WEB层需要提取用户名、密码, 主要通过UserAction处理类来过多成逻辑。用户登录过程的部分代码示例如下:
$(function () {
$(“div.loginErrorMessageDiv”).hide(); //验证不能为空 $(“form.loginForm”).submit(function(){ if(0==$(“#name”).val().length||0==$(“#password”).val().length){ $(“span.errorMessage”).html(“账号或密码不能为空”); $(“div.loginErrorMessageDiv”).show(); return false; } return true; }); if(“${msg}”==”true”){ $(“span.errorMessage”).html(“账号或密码错误”); $(“div.loginErrorMessageDiv”).show(); } }) |
消费者登录效果图如图5-1,5-2所示。
图5-1消费者登录界面
图5-2管理员(商户)登录界面
消费者登录时,获取表单中的用户名和密码,封装进User类中,通过业务逻辑组件UserBiz调用DA。组件完成对数据库的访问进行验证用户内容。如果登录验证成功会返回一个用户的List集合,将用户对象存入Session中并转到主页的Action。在主页面消费者可以进行订餐,将选好的餐品放入购物车中。
图5-3订餐界面
5.2 管理员(商户)订单管理实现
商户登录系统后可以查看消费者的订单,并且可以选择是否发货。如图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:1.6em;margin-top:3px” href=”javascript:location.replace(location.href);” 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”> <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>${order.id}</td> <td>${order.address}</td> <td>${order.customer.name}</td> <td>${order.total}</td> <td> <c:if test=”${order.status==0}”> 未支付 </c:if> <c:if test=”${order.status==1}”> 未发货 </c:if> <c:if test=”${order.status==2}”> 已发货 </c:if> <c:if test=”${order.status==3}”> 已收货 </c:if> </td> <td> <a title=”查看” href=”javascript:;” onclick=”orderIetm_list(‘订单详情’,’seeOrderItem?oid=${order.id}’,’1′,’500′,’310′)” class=”ml-5″ style=”text-decoration:none”> <span class=”label label-success radius”>查看详情</span> </a> <c:if test=”${order.status==1}”> <a title=”发货” href=”/order/orderDelivery?id=${order.id}” class=”ml-5″ style=”text-decoration:none”> <span class=”label label-success radius”>发货</span> </a> </c:if> <c:if test=”${order.status==2}”> <span class=”label radius”>已发货</span> </c:if> </td> </tr> </c:forEach> </tbody> </table> </article> <article class=”cl pd-20″> <%@include file=”../adminPage.jsp”%> </article> </div> </section> |
图5-4商家订单管理界面
5.3 管理员(商户)餐品、菜系管理实现
在本模块中,商户登录系统后可以对饭店的各种菜品,菜系进行管理,可以对菜品进行相应的增加修改和删除,对菜系也可以进行相应的增加修改删除。相应的代码如下所示,菜品和菜系管理界面如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:1.6em;margin-top:3px” href=”javascript:location.replace(location.href);” 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”> <td><input type=”checkbox” value=”1″ name=””></td> <td>${category.id}</td> <td>${category.name}</td> <td><a title=”编辑” href=”javascript:;” onclick=”admin_category_edit(‘分类编辑’,’editCategory?id=${category.id}’,’1′,”,’310′)” class=”ml-5″ style=”text-decoration:none”> <i class=”Hui-iconfont”></i></a> <a deleteLink=”true” title=”删除” href=”/category/delCategory?id=${category.id}” class=”ml-5″ style=”text-decoration:none”><i class=”Hui-iconfont”></i></a></td> </tr> </c:forEach> </tbody> </table> </article> </div> </section> |
5.4 消费者注册实现
当消费者想要点餐时,首先需要登录,如果消费者没有注册过账号,那么可以点击点餐主界面右上角的注册按钮,跳转到注册界面,消费者需要输入姓名,密码,邮箱和手机号。注册核心代码如下所示,用户注册界面如5-7所示。
$(function () {
//验证不能为空 $(“form.loginForm”).submit(function(){ if(0==$(“#name”).val().length||0==$(“#password”).val().length){ alert(“账号不能为空”); return false; } return true; }); }) |
图5-7用户注册界面
5.5 消费者购物车、下单功能实现
当消费者成功登录系统后,可以将想要预订的食物添加到购物车内,如图5-8所示,当用户选择完成后,点击下单系统会跳转到地址填写界面,如图5-9所示,填写好地址后选择支付方式点击提交订单就可以成功订餐。核心代码如下所示。
<script type=”text/javascript”>
var oiids = []; //总购买数量 var totalNumb=0; //订单总价 var totaljiage=0; function dianji(object,oiid,price){ //订单项购买数量 var num = $(“#oiNumber”+oiid).val()*1; //保存选中的订单项的小计 var currentTotaljg = 0; //保存商品具体价格 var p=0; //判断是否是会员 进行折扣 if(${cst.status==1}){ p = price*0.8; $(“xiaoji08”).val(p*num); }else{ p=price*1; $(“xiaoji1”).val(p*num); } //选中订单项 if(object.checked==1){ //获取当前订单项的购买商品数量 num = $(“#oiNumber”+oiid).val()*1; //获取下单数量 默认0 totalNumb += num; //计算当前订单项小计 currentTotaljg = num*p; totaljiage += currentTotaljg; //更新订单价格 $(“#OisTotal”).text(“$”+totaljiage); //更新下单的购买数量 $(“#OisNum”).text(totalNumb); //添加订单项id oiids.push(oiid); }else{//撤销订单项 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<arr.length; i++) { if(arr[i] == val) { arr.splice(i, 1); break; } } } //提交购物车订单 function subMyOrder() { if(oiids.length==0){ alert(“请勾选要买的商品”); return false; } window.location.href=”/fore/forebuy?oiid=”+oiids; } function delOrderItem(oiid) { $.get( “foreDelOrderItem”, {“oiid”:oiid}, function (result) { if(result=”success”){ $(“#delOrderItem”+oiid).parent().remove(); }else{ alert(“登录过期,请登录”); } } ); } </script> |
6 网上订餐系统测试
6.1 测试过程
分析在线订餐系统,确定要测试的内容并制定测试计划,本系统在Windows10 64位专业版上运行只进行功能测试。测试主要分为消费者功能模块测试和管理员(商户)功能模块测试。执行测试,准备搭建测试环境,并记录测试内容。提交并解决测试中的bug。
6.2 测试订餐系统前端用例
表6-1 测试用例执行情况
需求功能名称 | 测试用例名称 | 执行说明 | 执行情况 | 是否通过 |
启动订餐系统 | 启动测试 | 测试服务器是否能打开;测试订餐系统是否能正常运行,订餐系统页面间转换是否正常。 | 良好 | 是 |
用户登录 | 登录测试 | 测试用户打开订餐系统时能否进行用户登录,是否跳转主页面流畅;是否登录成功。 | 良好 | 是 |
图片轮播 | 图片轮播测试 | 测试轮播图是否正常轮播;测试轮播图的图片是否能点击跳转对应美食或活动页面。 | 良好 | 是 |
查看餐品详情 | 查看美食详情测试 | 测试点击美食或点击热门活动是否能流畅跳转至对应的美食详情也页面;测试美食详情页面内容是否展现完好和运行流畅。 | 良好 | 是 |
添加购物车 | 添加功能测试 | 测试菜品是否能正常添加到购物车,刷新界面后购物车内的菜品是否还在 | 良好 | 是 |
用户注册 | 注册测试 | 测试用户是否能正常填写注册相关信息,点击注册后是否能正常注册 | 良好 | 是 |
填写送货地址 | 测试填写地址功能 | 测试地址文本框是否可以正常的输入文字 | 良好 | 是 |
下单功能 | 测试下单功能 | 测试是否可以正常选择支付方式正常下单 | 良好 | 是 |
查看订单功能 | 测试查看订单功能 | 测试消费者查看自己订单信息是否能正常显示 | 良好 | 是 |
6.3 测试订餐系统后端用例
表6-2测试订餐系统后端用例表
功能 | 执行说明 | 执行情况 | 是否通过 | ||
系统登录 | 管理员登录 | 输入框输入用户名和密码 | 良好 | 是 | |
订单管理 | 查询 | 查询订单内容 | 无 | 良好 | 是 |
新增 | 新增订单内容 | 点击新增按钮,输入相关内容并点击保存 | 良好 | 是 | |
删除 | 删除订单内容 | 点击删除按钮,弹出对话框并点击确定 | 良好 | 是 | |
编辑 | 编辑订单的内容 | 点击修改按钮,修改相关内容并点击保存 | 良好 | 是 | |
菜品管理 | 查询 | 查询菜品内容 | 无 | 良好 | 是 |
新增 | 新增菜品内容 | 点击新增按钮,输入相关内容并点击保存 | 良好 | 是 | |
删除 | 删除菜品内容 | 点击删除按钮,弹出对话框并点击确定 | 良好 | 是 | |
编辑 | 编辑菜品内容 | 点击修改按钮,修改相关内容并点击保存 | 良好 | 是 | |
菜系管理 | 查询 | 查询菜系内容 | 无 | 良好 | 是 |
新增 | 新增菜系内容 | 点击新增按钮,输入相关内容并点击保存 | 良好 | 是 | |
删除 | 删除菜系内容 | 点击删除按钮,弹出对话框并点击确定 | 良好 | 是 | |
编辑 | 编辑菜系内容 | 点击修改按钮,修改相关内容并点击保存 | 良好 | 是 | |
商家管理 | 查询 | 查询商家信息 | 根据商家名称进行查询 | 良好 | 是 |
新增 | 新增商家信息 | 点击新增按钮,输入相关内容并点击保存 | 良好 | 是 | |
删除 | 删除商家信息 | 点击删除按钮,弹出对话框并点击确定 | 良好 | 是 | |
编辑 | 编辑商家信息 | 点击修改按钮,修改相关内容并点击保存 | 良好 | 是 | |
订单管理 | 查询 | 查询订单信息 | 根据订单号进行查询 | 良好 | 是 |
发货 | 对已经支付订单发货 | 点击发货按钮 | 良好 | 是 | |
评论管理 | 查询 | 查询评论 | 根据关键字称进行查询 | 良好 | 是 |
删除 | 删除评论 | 点击删除按钮,弹出对话框并点击确定 | 良好 | 是 |
6.4 测试设计评估及改进
这个测试是为了测试网上订购系统的质量。这样做的目的是为了让用户能够顺利地使用订购系统,并确保每个功能都能正常运行。并评估整体的稳定性和可操作性,然后提出人们与系统交互方式的改变。例如发现环境和软件版本不支持,环境框架存在漏洞;点餐的系统未连接到服务器后台,点餐的系统无法显示数据;订餐系统的前端设计缺乏,用户与系统的交互效果不佳。然后再次开发和补充测试问题。
结论
从一开始,系统的设计和开发对我来说不简单,由于时间长,部分基础的理论知识已经忘记。后来,通过我的不断学习、试验、实验和修改,系统终于能够正常运行。这是真的很难,但充满了成就。感觉的过程。该系统与实际设计相符。在系统设计开发之前,对普通游客的爱好特点进行了大量的调查研究。本系统是根据调查结果进行设计开发的,充分考虑了这些经济压力带来的具体需求。系统操作简单简捷,后台维护也非常简捷,让系统的每一个操作人员和用户都可以一目了然的操作,查看自己想要知道的内容,详细的了解出行带来的内容。具体情况,公开透明,促进旅游业的发展,提高经济的可持续发展。
网上订餐系统的开发重点是”订餐系统”,开发前、开发中、开发后的系统开发都必须围绕这一点进行。需要做更多的研究,了解掌握者的真实需求,并详细分析具体问题。只有需求才能更好的帮助系统的程序设计。盲目开发必然会影响系统的整体开发、测试和进度。它只会增加自己的工作负载。再好的设计,如果不能满足客户的需求,那么这个设计就没有多大用处了。在设计中要避免的主要问题是,在没有仔细研究实际情况的情况下,只专注于输入代码,这很容易导致最终的错误。从一开始进入美术学校就一直持续到了到现在,我已经从绘画中学的到了室内设计的很多的相关设计知识,为我后来的我以后从事的室内设计职业的设计专业方向发展打下基础奠定打下了一个十分的坚实而可靠的基础。软件是使用mybits和spring框架开发的。开发过程中难以把握的是如何准确使用spring框架,系统如何给用户带来体验感。这些也让我有了更扎实的知识和实践技能。更上了一层楼,为今后我的以后的各项工作发展打下更为坚实有力的基础。由于时间、经验和自身水平的问题,我的设计可能还不够完美,还有不足之处。我相信通过我未来的不断学习,我会有更好的作品。
参考文献
[1]米国佼.基于ASP.NET技术的酒店内容管理系统的设计与实现[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]姚芬.物业管理系统ASP.NET架构设计[J].电子设计工程,2020,23(13).
[7]陈会.基于VB开发的酒店内容管理系统[J].内容系统工程,2021(4): 53-53
[8]BouffardGLanetJ.TheUltimateControlFlowTransferinaJavabasedSmartCard[J].Computers&Security,2020,50(6):33-46
[9]CristianT.SampleDevelopmentonJavaSmart-CardElectronicWalletApplication[J].JournalofMobileEmbedded&DistributedSystems,2020,11(6):333-351
[10]ShenJRentZhangJ.DesignandImplementationoflmplementationElectronicCouponSystemBasedonJavaCard[J].JournalofComputationalInformationSyst2020,11(9):3229-3236
[11]黄佳美.基于ASP.NET技术的酒店内容管理系统设计与实现[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.
致谢
四年之后我的大学专业学习的时间就即将宣告正式地结束。在此,我也就表示在一切必须开始之前我就一定要在今天先正式而严肃地向所有在我全国各地的所有朋友的包括所有在我家乡和在本人家乡所曾经求学教育过我的我所有大学母校、我的父母、我现在和我过去的我的所有同学朋友我的我最亲我至爱我之朋友亲人、我过去的我现在和我最好朋友的我所有广大教学的同仁们和我广大的老师朋友们以及我和我深爱着的所有我最最亲爱我的所有老师同学们等人也都表示给我们了以我们共同的最衷心的最最热烈的和最诚挚的地感谢是你们了!但无论如何我都还是首先要在同时也感谢一下包括我在内曾经所有的这些至亲家人,他们也会这样默默地坚定的一辈子来默默支持伴随着我成长的我们在我们大学生涯最后短短四年光阴中的继续学习与事业。多年以来给予我校的学子无限地关怀和爱护鼓励和自我鞭策地鼓励。课堂讲台上展现的就是教师工作学习的认真积极和热情,课堂上作业辅导上学生工作的热情刻苦与认真努力与认真教学认真细致;老师同学们表现的是在课程理论学习方法上工作时的激情刻苦和认真积极努力认真和认真学习积极热情,在学习课外生活工作实践上学习中的认真主动积极热情积极认真热情和积极参与热情积极参与主动,这一切都完全可以用来让你我对于大学中的人生最后这四年会更加地充满着激情感动。
在这刚过去一年的最后这几个月的期间里,感谢那些所有一直在为我们从各方面积极地给予到给我学校最大的帮助及支持中的这些优秀教师合作及伙伴们。在此,向我校所有老师曾经在各位教学中曾经给予学生无私教育帮助辅导过我校并一直热心地教育帮助与教育辅导的培养帮助过了我校学生共同成长发展的老师以及已经在我语文老师所在工作的学校长期从事任代教工作多年的我校所有的广大在校的各位语文老师家长同学朋友们和以及我现在学校的所有各位的语文教师同学们再次由衷的地表示了我们的对我们学校语文老师们的衷心而热烈的真挚的感谢与感恩。
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/160434.html,