




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于B/S模式的网上点餐系统摘要随着人们生活节奏的不断加快,传统的订餐方式已经不能满足大部分消费者的需求了,一个良好的网上点餐系统不仅能够增加餐厅的销售渠道、有助于餐厅的管理,还能便利消费者的消费和选择。本系统使用Java开发语言和JSP技术,采用了MVC结构来构架B/S模式服务器以及SSM整合框架来搭建开发坏境,为了使界面友好、丰富和统一,加入了JavaScript+CSS技术,在系统的数据存储方面,采用了Mysql数据库。本文充分分析了当前已有的网上点餐系统,以及中小型餐厅的需求,设计并实现了网上点餐系统。本系统拥有用户注册登陆、店铺浏览、商品浏览、购物车、店铺信息设置、店铺商品和订单管理以及一些信息的查询等功能。本文重点介绍了网上点餐系统的需求分析、数据库设计、系统模块详细设计等一系列开发流程。系统不仅实现了网上点餐系统的基本功能,而且系统运行流畅、交互性好。关键词:餐饮;网上点餐; MVC;B/S模式;数据库Online Ordering System Based on B/S ModelABSTRACTWith the accelerating pace of life, the traditional ordering methods can not satisfy the needs of most consumers, a good online ordering system is not only able to increase shop sales channels, help manage the shop, but also to facilitate consumer by consumption and choice.This system is designed and developed from the perspective of software engineering with usage of JavaScript and JSP technology. The new system applies MVC structure to frame B/S model server. To make the interface friendly, rich and unified, JavaScript+CSS technology is added. In the aspect of data storage, Mysql database is applied. This paper analyzes the current needs of the existing ordering system, as well as small and medium sized shop, designed and implemented an online ordering system. The system has the user login and regist, shop browsing, goods browsing, shopping cart, shop settings, shop goods and order management, and query some information functions, etc.This paper focuses on the storage management system needs analysis, function, database design, system function module design, and a series of development process. System not only completed the basic function of the warehouse management system, and the system is running smoothly, and the interface is friendly.Key Word:Catering industry; Online ordering; MVC; B/S model; Database目录1 绪论11.1 课题背景与研究意义11.1.1 选题的背景11.1.2 研究的意义11.2 网上点餐的现状及分析21.3 毕业设计的主要工作以及论文的主要内容22 系统开发技术介绍32.1 Java语言32.2 Struts2+Spring+Mybatis框架32.3 MVC开发模式43 系统需求分析53.1 系统需求分析概述53.2 可行性分析53.2.1 技术可行性53.2.2 社会可行性63.2.3 经济可行性63.3 系统需求分析73.3.1 系统功能性需求分析73.3.2 用户需求分析74 系统总体设计94.1系统的功能结构94.2系统功能模块介绍94.3 数据库设计104.3.1 数据库概念结构设计104.3.2 数据库表结构135 系统详细设计和实现175.1 用户前台模块175.1.1 店铺浏览和查询175.1.2 店铺商品浏览185.1.3 购物车实现195.1.4 用户注册和登录205.1.5 用户订单查看和处理225.2 后台店铺管理模块245.2.1 店铺注册和登录245.2.2 店铺信息设置255.2.3 商品信息管理265.2.4 订单信息管理295.3 图片上传和图片预览295.4 信息验证316 系统测试336.1 系统测试概述336.2 测试项目及测试内容336.3 系统用例34结束语36参考文献37致谢38附录:部分源代码清单39附件1 开题报告(文献综述)附件2 译文及原文影印件 1 绪论1.1 课题背景与研究意义1.1.1 选题的背景时代在进步,科技在发展,网络已经成为了我们生活中不可或缺的部分,网络的发展也给我们带来了无限的商机和便利1。在餐饮行业,网络也同样能够发挥作用,由此诞生了网上点餐系统。民以食为天,餐饮离不开人们的生活。餐饮服务业是一种平凡化、多样化的服务产业,电子商务则是最能凸显出平凡化、多样化的商务方式2。随着网络技术的发展和普及,将两者结合起来而出现的方便、快捷的网上点餐系统进入人们的生活,越来越多的人都会选择通过电脑、手机来进行商品的购买。如今,中国已经是全球互联网人口排名非常靠前的国家,这自然而然的会形成一个庞大的使用网上购物的用户群体3。在餐饮行业,通过网络进行食品出售已经成为一种必然的趋势。对于那些在学校的大学生和在公司上班的白领,一个方便的网上点餐系统将是他们最想要的。1.1.2 研究的意义在企业经营管理方面,实行信息化的网上点餐的管理效果、成本等方面更为显著。首先,网上点餐可使餐饮企业提高效率,节约成本。通过计算机处理的数据更为准确,而且没有延迟,店主可以更轻松的管理店铺。其次,网上点餐可以更好的帮助餐饮企业在网上进行销售。通过信息管理,可以记录餐饮企业各方面的数据,准确且不会出错。第三,网上点餐可帮助餐饮企业提高服务质量和服务效率。不会再出现当顾客过多时,餐厅点菜前台过于拥挤;也不会再出现由于要记录的订单过多而导致服务员忘记了某些订单或下错了某些订单的菜品和数量,导致顾客漫长的等待用餐时间。第四,网上点餐可帮助商家堵住管理漏洞。菜品的价格、折扣都可以由店主在后台进行管理控制。当用户结账时,不用担心账单由于人为计算失误而导致多出了钱,服务员也没必要去计算每一份账单的价格,避免了传统方式下收银的各种弊端。1.2 网上点餐的现状及分析在很多发达国家中,他们充分利用了信息的资源,将计算机技术成熟的应用于各行各业,其中包括餐饮行业。美国消费者更倾向于使用网上点餐的方式在网上订购外卖,特别是一些较为年轻的人。总而言之,网上点餐将成为餐饮行业的主流之一。我国网上点餐还处于形成期向成熟期不断完善的过程中,由于网络的快速发展,为网上点餐系统的建立提供了信息传输上的支持;计算机的普及和价格的不断下降,使网上点餐的经济适用性得到了保证。随着电子商务和网上购物的兴起,使得网上点餐实现信息化具备了网络基础和条件。目前国内市场上已经出现的网上点餐系统主要有2种形式,一种是B2C的模式,就是有一定规模和资金的餐饮企业建立属于自己的网上点餐系统,比如麦当劳、肯德基等,主要是为顾客提供一些食品的外送服务。另一种是O2O的模式,即Online To Offline,将线下商务与互联网结合在一起4,这种网上点餐系统综合了很多店家的信息,给消费者一个平台去选购这些店家的商品,店家确认后将菜品送至顾客的手上,比如现在非常流行的饿了么、美团外卖等。第二种形式的网上点餐方式是国内餐饮行业开始由形成期向成熟期过度的标志,本系统采用的就是这种O2O的模式。1.3 毕业设计的主要工作以及论文的主要内容在毕业设计期间,我翻阅了较多的参考文献和书籍,先后完成了国外英文文献资料的翻译、开题报告等写论文的前期准备工作,为接下来的撰写论文做好了充分的准备。通过学习软件设计的原理,在毕设期间,我对毕业课题进行了系统的需求分析、可行性分析、详细设计、编码实现、调试和系统测试,完成了毕业设计系统。本系统具有用户注册登录、查看店铺、查看店铺商品、订单管理、店铺信息设置、店铺商品和订单管理等功能。论文主要介绍了开发网上点餐系统的选题的背景、研究的意义、网上点餐现状以及分析,设计中所用到的工具和技术,可行性分析、需求分析、系统的结构、功能以及数据库的设计,各个模块的详细设计与实现,以及系统的测试、结束语、参考文献和致谢。其中最重要的是需求分析和详细设计与实现这两个部分。2 系统开发技术介绍2.1 Java语言众所周知,Java语言是当下最流行的开发语言之一。从开发的角度上来说,它比别的开发语言更为安全,而且Java语言开发出的系统具有跨平台运行的特性。因为JVM有灵活的类加载器机制,一个应用程序允许有多个类加载器存在5。只要在不同的平台上装上JVM,Java开发的程序就可以实现跨平台运行。从学习的角度上来说,Java语言是面向对象的开发语言,可以把实际生活中的问题应用到Java开发的逻辑中去,这样可以大大方便学习Java的人的理解,从而使得Java相比于其他语言更容易上手。Java自面世以来,对C+造成了一定的冲击。它继承了C+面向对象编程的特点,但是学起来比C+容易的多,与其他语言相比更适合现代开发工具。事实上,Java语言的语法与C语言和C+语言很接近,对于熟悉C+的开发人员来说,可以很快的熟悉和使用。特别是Java语言不使用指针,而是引用,不会出现像C+那种指针指错对象而导致的错误。并提供自动的垃圾回收机制,使得程序员不必为内存管理而担忧6。2.2 Struts2+Spring+Mybatis框架(1)Struts2简介Struts2是一个基于MVC设计模式的Web应用框架,它从Web开发的角度上相当于Servlet,用来连接系统的视图层和数据层,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2框架是由Struts1经过程序员不断努力升级而来的框架,它相比于Struts1框架更为成熟,随着Java开发技术的不断进步,它已经能够完美的和Spring框架整合,使Java项目的开发更简单。(2)Spring简介Spring框架是一个分层架构,它由七个定义良好的模块组成8。其中在本系统用的组件主要是IOC控制反转和AOP面向切面编程。 Spring在我看来是Java常用框架中最受推崇的,它的轻量级特点可以让它很轻松的与很多其他框架整合。Spring框架中对每一个功能都封装的很好,它的IOC控制反转使我们写程序产生对象时不用每一个都去新建;它的AOP面向切面编程,能够在数据库提交事务的时候进行有效的控制。(3)Mybatis简介Mybatis是一个基于Java的持久层框架,它支持普通的SQL查询,存储过程和高级映射9。Mybatis最强大的特性之一就是他的动态语句功能。Mybatis框架相比于Hibernate来说,它比Hibernate更轻量级,占用的资源比Hibernate少,更容易被人使用。同时,它能够自主的管理SQL语句,对于数据库的映射完整,他的动态SQL语句使程序员对数据库的操作更为方便。2.3 MVC开发模式最初的时候,网页的开发是不讲究代码开发规范的,代码像砖一样堆放在一个系统里,当砖堆得太高太厚以后,堆这些砖的人都难找到自己想要的那块砖了,于是就出现了最早的代码页面分离技术、面向对象技术等。虽然代码页面分离技术解决了当时的问题,但是当Web开发更加庞大时,分离页面技术就不能解决问题了,而是需要将页面的展示和页面的控制分开。于是,Web开发出现了一种新技术:MVC。MVC是一个开发模式,它强制性的将应用程序的输入、输出和处理分开10。一般来说,使用MVC设计模式开发的应用程序都会被分成3个核心部件,它们分别是模型、视图、控制器。(1)视图:视图就是展现给用户看的界面,他在MVC中担负着表现的职责。(2)模型:模型可以简单的理解为操作的数据和信息。(3)控制器:是接收从视图上传过来的数据和操作,并将传来的数据交给模型处理,并将模型处理的结果反馈给相应的视图,它处在视图层和模型层之间。本系统使用MVC的开发模式,这使本系统的结构清晰的分出了视图层、模型层和控制器层三个层次,让我在进行编码实现时更效率和快捷。3 系统需求分析3.1 系统需求分析概述系统需求分析阶段的主要任务是在掌握了用户具体需求的基础上,对组织内部的管理现状以及信息的处理流程进行分析11,该阶段的重点工作就是对用户的业务全过程进行全方位的分析。在进行系统分析时应遵循分析的原则,系统分析的原则主要有下面三点。(1)整体性原则:用整体的观点看问题,追求整体的效果。(2)科学性原则:根据严格的工作步骤,用科学的方法和工具进行分析,使结果更具说服力。 (3)综合性原则:要求我们需要综合分析,统揽全局系统的各个功能模块和目标,使系统运行最优化。3.2 可行性分析可行性分析,就是在设计的初级阶段,考虑在经济上、技术上、资金上、以及人力上是否适合开发这个系统。同时考虑系统设计的开发难点和重点。下面我将分别从技术上、社会上和经济上来研究本系统的可行性。3.2.1 技术可行性本论文介绍的网上点餐系统主要是用Java+JSP语言开发的,应用了Jquery,Struts2,Spring,Mybatis等框架,采用了Mysql数据库。对于熟悉Java或C+的人来说,都知道Java非常的容易学习和上手,而JSP的本质其实上就是Servlet,是现在使用比较广泛和成熟的Web开发方式。Jquery是JavaScript的框架,其中封装了很多JS方法,使得JS对页面的操作简化了很多。随着Java技术多年来的不断进步,Struts2、Spring以及Mybatis这三大框架已经能够完美的整合起来,这对于本系统的编码实现提供了极大的便利。Mysql数据库是一个轻量级的数据库,它比Oracle数据库的访问更快速,同时能够保证数据的安全,这对于本系统的开发用于数据存储有很大的帮助。经过上述对于开发本系统所用到的技术的分析,可以看出随着开发技术的不断进步,框架的不断完善,不仅使系统的实现变得更为简单,同时也降低了系统实现在技术上的可行性要求。3.2.2 社会可行性社会的可行性一般是来自多方面的,下面我将主要从下面这三个方面来进行详细的分析。(1)网上点餐系统打破了原有的传统的订餐方式,他以网络技术为基础,打开了网上交易和支付的平台,使线下交易和线上交易都可行,在一定的程度上会促进社会经济的发展。(2)网上点餐系统收集了很多餐饮企业的信息,给那些中小型的餐饮企业提供了一个平台,提高了餐饮行业的竞争力度和扩大了餐饮行业的销售渠道,这有利于餐饮行业的不断进步和发展。 (3)就网上点餐系统而言,给商家和用户都带来了极大的便利。一方面就商家而言,节省了扩张门面和座位以及增加服务员的成本,提高了生产的效率;就普通消费者来说,节省了去餐厅和浏览比对菜单的时间,在网页上就可以对不同商家的菜进行比对和挑选,鼠标点点就可以享受送货上门的便捷服务。综合以上三点分析,网上点餐系统在社会效益和社会条件都是可行而且必行的。3.2.3 经济可行性首先,从建立本系统方面的经济来分析,本系统的开发只需要一台计算机,因为计算机的普及,现在几乎人手都会配备一台属于自己的笔记本电脑,所以在系统的开发阶段所需要的成本要求是非常低的。对于系统的环境配置,在网络上已经可以找到相关的技术指导和分析。从经济的可行性上面来分析,要考虑到本系统开发出来后,它能带来多大的经济效益,以及和它被开发出来的成本进行比对,现在随着网络上电子商务的不断发展,已经证实了这种新型的商务模式已经取得了非常可观的成果和收益,所以在经济上开发本系统是非常可行且合理的。通过上述对于本系统从技术、社会、经济上的可行性分析和总结,可得出对于本系统的开发是非常可行的结论。3.3系统需求分析3.3.1 系统功能性需求分析系统功能性需求分析是指通过社会的调研和详细的调查之后,了解本系统涉及到的实体对象,实体对象所要做的事,即本系统需要实现的那些功能。还要了解各种用户的不同需求(不同的人在使用同一系统时也会产生不同的需求),同时也要为系统的后期维护做好前期的需求准备。网上点餐系统给中小型餐厅一个网上售卖菜品的平台。在这个平台上,商家可以通过注册来参加到这个平台中,当店铺注册完,经过管理员审核通过之后,店铺就可以登陆自己的餐厅管理页面,对自己店铺中的商品(包括商品价格、商品名称、商品样图等)和订单进行管理,同时还能够设置自己店铺中的一些基本信息。普通的消费者可以通过注册后在本系统进行登陆,在首页可以浏览店铺信息,当选到心仪的店铺时点进去可以浏览该店铺设置的商品信息,选好商品之后并点击商品加入购物车,当购物车中商品的总价格达到该店铺对应的配送价格后,即可在这个平台上下订单,享受送餐上门的服务。本系统的功能一共有下面几块。(1)前台显示功能:用户进入首页之后,可以浏览到在本系统注册的所有商家,并且可以通过搜索,搜索到自己想要找到的商家和食品。点击商家之后,可以浏览相应商家的菜单。(2)购物车功能:用户当浏览到自己喜欢的菜品时,可以将喜欢的菜品添加到购物车,通过购物车可以向相应的商家发送订单。(3)顾客中心:顾客登录之后可以查看自己下过的订单和订单详情,并可以对未发货的订单进行取消订单操作、对已收到的订单进行确认收获操作,同时还可以对已完成的订单进行再来一单的操作。(4)店铺管理功能:注册商家可以通过商家登陆管理自己的店铺,可以管理自己的商品,包括上、下架商品;增加商品;修改商品价格、样图、折扣等,同时还可以管理在本店铺下的订单,包括查询订单、处理未完成的订单等。(5)后台管理功能:管理员能够查看所有在系统中注册的用户,同时也能够管理与本系统加盟合作或正在申请加盟合作的商家,具有本系统的最高权限。3.3.2 用户需求分析一个系统中功能完成是必不可少的,这使得在我们做系统时会往往忽略掉一些用户需要的需求分析,然而一个好的用户需求性分析也是非常重要的,他能够影响用户的体验,影响整个系统的质量,用户需求一般有下面几点。(1)简洁统一性需求:系统页面的风格要统一协调,使用户进入系统时有一个好的感官体验,能帮助用户快速找到自己想要的商家和菜品。(2)安全性需求:作为电子商务,线上交易是必不可少的,涉及到相关财产的转帐,就必须保证系统的安全性,使用户用的放心、安心。4 系统总体设计4.1系统的功能结构随着网络技术的飞速发展和电子商务的兴起,人们生活节奏的不断加快,传统的订餐方式已经不能满足大部分消费者的需求了,一个良好的网上点餐系统不仅能够增加餐厅的销售渠道、有助于餐厅的管理,还能便利消费者的消费和选择,本系统就是为了方便消费者和商家而设计的系统。本系统共由3个大模块组成:用户前台、商店后台和管理员后台。而每个大模块下面都有小模块。网上点餐系统的功能结构图如图4.1所示。图4.1 网上点餐系统功能结构图4.2系统功能模块介绍本系统的设计初步规划的3个模块。(1)用户前台模块浏览和查询注册店铺:用户进入本系统的首页时可以看到在本系统中所有通过审核的店铺信息,并可以通过条件搜索和关键字搜索找到自己想找的店铺信息。浏览店铺商品信息:用户从首页点击进入店铺时,可以浏览到该店铺设置的所有上架的商品,包括商品的图样、商品的介绍、商品的价格以及商品现在的折扣。购物车:用户当选到喜欢的菜品时,可以把菜品添加到购物车,并且可以在购物车中添加或减少菜品。且可以把不要的菜品移出购物车,也可以对购物车进行清空处理。当用户添加第2个店铺的商品时,会提醒用户是否清空当前购物车,当点击确定时会清空当前购物车,并将点击的第2个店铺的商品加入购物车。用户登录和注册:用户在第一次进入本系统时可以进行注册,注册完之后在本系统登录就可以永久下单,并且拥有查看订单等功能。订单信息查看和处理:用户登录后可以在我的外卖中查看自己的订单以及商家的信息,点击具体的订单可以查看这份订单的订单详情,同时可以对不同状态的订单可以进行不同的操作。地址管理:新用户第一次下订单时可以添加新送餐地址;老用户下单时,也可以添加新的送餐地址,同时也可以选择原来的送餐地址。(2)店铺后台模块店铺信息设置:店主可以通过自己注册的店铺号进行登录,进入店铺管理页面可以对自己店铺的信息进行设置。商品管理:店铺可以进行商铺内商品管理,包括添加新商品、上架商品、下架商品、修改上架商品的信息。订单管理:商家可以对在自己店铺中下的订单进行管理,包括对未发货的订单进行发货操作、根据用户名字或者手机尾号或者订单状态对订单进行分页和查询、点击订单号可以查看订单详情。(3)管理员后台管理用户管理:管理员通过后台登录,可以查看在本系统中注册的所有用户。店铺管理:管理登陆后台后可以对商家注册进行管理,可以审核注册的商家,未审核或者未通过审核的商家都无法显示在系统首页且无法在本系统中登录店铺管理页面,直到通过审核为止。4.3 数据库设计4.3.1 数据库概念结构设计管理员信息,包括的数据有管理员编号,管理员用户名,管理员密码以及管理员显示名。店铺信息,包括的数据有店铺编号,店铺登录名,店铺密码,店铺名称,店铺状态,管理员审核状态,店铺图标,店铺平均送餐时间,店铺联系电话,店铺起送价格、店铺地址。商品信息,包括的数据有商品编号,商品名字,店铺编号,商品价格,商品介绍,商品折扣,商品图样,商品状态。用户信息,包括的数据有用户编号,用户名,用户密码,用户电话,用户email,用户名字。订单信息,包括的数据有订单编号,用户编号,店铺编号,总价格,支付方式,下单时间,订单号,订单状态,订单备注,订单完成时间,订单派送地址。订单详情信息,包括的数据有订单详情编号,订单号,商品编号,商品数量,商品价格。地址信息,包括的数据有地址编号,用户编号,地址名。根据上面的数据可以进一步分析得到这些数据之间的关联,从而为接下来的关系型数据库设计做好准备。根据上面的数据库信息可整理出的实体有:管理员实体、店铺实体、商品实体、用户实体、订单实体、订单详情实体、地址实体。管理员实体描述了管理员的信息,管理员实体属性图如图4.2所示。图4.2 管理员实体属性图店铺实体描述了店铺的信息,店铺实体属性图如图4.3所示。图4.3 店铺实体属性图商品实体包含了商品的信息,商品实体属性图如图4.4所示。图4.4 商品实体属性图用户实体包含了用户的信息,用户实体属性图如图4.5所示。图4.5 用户实体属性图订单实体包含了订单的信息,订单实体属性图如图4.6所示。图4.6 订单实体属性图订单详情实体包含了订单详情的信息,订单详情实体属性图如图4.7所示。图4.7 订单详情实体属性图地址实体包含了订单详情的信息,地址实体属性图如图4.8所示。图4.8 地址实体属性图4.3.2 数据库表结构 网上点餐系统数据库中各个表格的设计结果如表4-1、表4-2、表4-3、表4-4、表4-5、表4-6、表4-7所示。每个表格对应在数据库中的一张表。(1)管理员信息表(Admin)管理员信息表(Admin)用于保存管理员的基本信息,管理员的登录名和密码,表的结构如表4-1所示。表4-1 管理员信息表字段名数据类型 字段长度 主键否外键否说明admin_idint2是否管理员编号admin_usernamevarchar20否否登录名admin_pwdvarchar20否否密码admin_namevarchar20否否管理员名(2)店铺信息表(Shop)店铺信息表(Shop)用于保存店铺的基本信息,表的结构如表4-2所示。表4-2 店铺信息表字段名数据类型 字段长度 主键否外键否说明shop_idint3是否店铺编号shop_login_namevarchar20否否店铺登录名shop_pwdvarchar20否否店铺密码shop_namevarchar20否否店铺名shop_stateint2否否营业状态shop_admin_stateint2否否审核状态shop_imagevarchar50否否店标shop_timeint3否否送餐时间shop_phonevarchar20否否店铺电话shop_minpriceint3否否起送价格shop_addressvarchar100否否店铺地址(3)商品信息表(Shop_Goods)商品信息表(Shop_Goods)用于保存店铺商品的基本信息,表的结构如表4-3所示。表4-3 商品信息表字段名数据类型 字段长度 主键否外键否说明goods_idint3是否商品编号goods_namevarchar20否否商品名shop_idint3否是关联店铺goods_pricedouble4否否商品价格goods_discountdouble4否否商品折扣goods_remorkvarchar20否否商品介绍goods _imagevarchar50否否商品样图goods_stateint2否否商品状态(4)用户信息表(Customer)用户信息表(Customer)保存了用户的一些基本信息,表的结构如表4-4所示。表4-4 用户信息表字段名数据类型 字段长度 主键否外键否说明customer_idint5是否用户编号customer_usernamevarchar20否否用户名customer_pwdvarchar20否否用户密码customer_phonevarchar20否否用户电话customer_emailvarchar20否否用户emailcustomer_namevarchar20否否用户名字(5)订单信息表(Order_All)订单信息表(Order_All)保存了订单的基本信息,表的结构如表4-5所示。表4-5 订单信息表字段名数据类型 字段长度 主键否外键否说明order_idint3是否订单编号customer_idint5否是关联用户total_pricedouble6否否总价格pay_typeint2否否支付方式order_start_datedatetime20否否下单时间order_numvarchar50否否订单号order_stateint2否否订单状态order_remorkvarchar50否否订单要求order_end_datedatetime20否否发货时间shop_idint3否是关联店铺order_addressvarchar100否否派送地址(6)订单详情信息表(Order_Detail)订单详情信息表(Order_Detail)保存了每份订单的详细信息,表的结构如表4-6所示。表4-6 订单详情信息表字段名数据类型 字段长度 主键否外键否说明idint5是否详情编号order_numvarchar20否否关联订单goods_idvarchar20否是关联商品goods_numvarchar20否是商品数量pricevarchar20否否商品价格(7)用户地址信息表(Address)用户地址信息表(Address)保存了用户下单时填写的订单配送地址信息,方便用户下单时选择,表的结构如表4-7所示。表4-7 用户地址信息表字段名数据类型 字段长度 主键否外键否说明address_idint5是否地址编号customer_idint5否是关联用户address_namevarchar20否否地址名5 系统详细设计和实现5.1 用户前台模块5.1.1 店铺浏览和查询店铺浏览和查询功能是由index.jsp页面和ShopAction类一起实现的。店铺的状态一共有6种,分别是未审核、审核通过、审核未通过、休息、下班和营业。在首页index.jsp中,不会显示未审核和审核未通过的店铺,对于休息和下班状态下的店铺也会有状态的提示,页面的设计效果如图5.1所示。图5.1 系统首页页面设计效果图该功能的作用是让用户进入系统时可以直观的看到在本系统中所有已经通过注册审核的店铺,并且可以通过条件和字段筛选想要查找的店铺。首先通过调用连接数据操作的方法根据查询的条件获得数据库中的数据,然后shopAction将数据库中获取到的数据传到到前台的index.jsp页面并将数据显示出来,功能实现的核心代码如下。public String indexShopList()shop.setAdminState(1);shop.setName(shopName);shopList = shopService.getShopByShop(shop);return Action.SUCCESS; /index.jsp 5.1.2 店铺商品浏览店铺商品浏览是用户下单的必经途径,当用户进入店铺时,可以看到店铺中上架的所有商品,并可以通过商品的价格、折扣等信息来筛选商品。每个商品都备注了商品图样、商品介绍、商品价格、商品限时折扣等信息,页面的设计效果如图5.2所示。图5.2 店铺商品浏览页面设计效果图商品浏览功能的实现是将店铺的编号传给action,然后通过店铺的编号找到该店铺对应的满足上架条件的商品,然后将这些商品按一定条件的顺序封装成集合传给页面显示出来,功能实现的核心代码如下。shop = shopService.getShopByShop(shop).get(0);ShopGoods shopGoods = new ShopGoods(1);goodsList = shopGoodsService.getShopGoodsByGoods(shopGoods);return Action.SUCCESS;5.1.3 购物车实现购物车是任何电子商务网站必备的一个功能,他用于保存用户准备购买或者想购买的商品,他可以通过多种方法实现,一是将这些数据存储在数据库中;二是将数据保存在cookies中;三是将数据暂时保存在session中。这三种方式各有优势,本系统购物车的实现采用的是第三种方式,即将购物车的数据保存在session中,购物车的效果设计如图5.3所示。图5.3 购物车设计效果图购物车功能的实现是将用户添加的商品以商品和数量的形式封装到一个对象中,并将该对象添加到购物车(List集合)中。添加商品,当当前没有购物车时,则创建一个购物车,有则从session中获得原有的购物车,然后对当前要添加的商品进行判断,然后根据判断的结果,会使购物车有不同的添加方式,功能实现的核心代码如下。/判断当前购物车状态,如果当前购物车为空或者没有商品,则创建新的购物车,并将购物车绑定店铺idif(null=cart|cart.size()=0)shopId = goods.getShop.getId();cartItem = new CartItem(goods,1);cart = new ArrayList();cart.add(cartItem);elseshopId = cart.get(0).getShopId();/判断购物车中是否已存在要添加的商品,如果有则在原有上品的基础上使商品数量加一,如果没有,在在购物车中添加新的商品if(checkCart(cart,goodsId)for(CartItem item:cart)if(goodsId=item.getShopGoods().getId()item.setNum(item.getNum+1);elsecartItem = new CartItem(goods,1);cart.add(cartItem);5.1.4 用户注册和登录用户是整个系统的消费者,在下订单前,用户必须登录本系统才能够正常的下单,而且只有已登录的用户才能进我的外卖中查看自己的订单和订单详情。对于已有账号密码的用户可以在前台登录页面直接登录,当用户名或密码错误时,登录页面会及时的提醒用户用户名或密码错误,页面的效果设计如图 5.4所示。图5.4 用户登录页面设计效果图用户登录功能的实现时通过将页面输入的信息传给后台,后台根据页面传来的数据与数据库中的数据进行比对,如果在数据库中能匹配到对应的数据,则会登录成功,不能匹配到则会登录失败,功能实现的核心代码如下。Customer c = cusomerService.getCustomerByCustomer(customer);If(null!=c)return Action.SUCCESS;tips = 用户名或密码错误;return Action.LOGIN;对于没有账号的用户,可以点击登录页面中的免费注册或前台其他页面的注册链接,进入系统的注册页面进行信息注册。当用户填完信息,并通过信息验证后即可点击注册按钮进行注册,注册成功之后会自动登录本系统,进入系统首页,页面的效果设计如图5.5所示。用户注册功能的实现是将注册页面的信息传回后台action处理,然后调用数据处理层方法,将注册者的信息存入数据库中,功能实现的核心代码如下。if(customerService.regist(customer)return Action.SUCCESS;public boolean regist(Customer customer) if(customerDao.addCustomerByCustomer(customer)return true;return false;图5.5 用户注册页面设计效果图5.1.5 用户订单查看和处理当用户完成下单时,可以在我的外卖中查看订单,订单的状态有以下几种:已取消订单、未发货订单、已发货订单和已完成订单。对于不同状态的订单,用户对其可以有不同的操作,例如可以对未发货订单进行取消订单操作、对已完成的订单再来一单操作等。页面的效果设计如图5.6所示。图5.6 用户订单查看页面设计效果图查看订单功能显示了商店的信息,方便用户催单等操作。同时可以使用户查看自己的当前订单和以前的所有订单,点击订单时可以查看对应订单的订单详情;当点击已完成订单的再来一单操作时,如果店铺正在营业,则会成功再来一单,否则会跳到对应的店铺页面提示当前店铺正在休息。点击订单绑定的店铺,可以再次进入对应店铺选择商品;功能实现的核心代码如下。Orders order = orderService.getOrdersByCustomerId(customer.getId(),toPage);currentPage = toPage;for(Order o : orders) Shop s = shopService.getShopByShop(new Shop(o.getShopId();o.setShop(s);Select * from order_all where customer_id = #id Limit $(pageNum-1)*6,6order by order_start_time desc5.2 后台店铺管理模块5.2.1 店铺注册和登录店铺是本系统的主要运营者,要想在本系统中的首页中显示自己的店铺,商家就得在本系统的首页点击加盟合作,进入店铺注册页面,页面的效果设计如图5.7所示。图5.7 店铺注册页面设计效果图店铺注册功能的实现与用户注册的实现一样,先将商家在页面上填的店铺信息传给action处理,在对应的action中将数据封装成对象,以对象的形式将店铺信息存入数据库中,功能实现的核心代码如下。shop.setImage(savePath);shop.setMinprice(10);shop.setstate(0);shopService.shopRegist(shop)当商家完成注册并通过管理员审核之后,可以在后台店铺管理登录页面进行登录,当用户名或密码输入错误时,页面会提示用户名或密码错误;当验证码输入错误时,页面会提示验证码错误;当验证码未输入时,页面会提示请输入验证码;当店铺未审核或未通过审核时,页面会提示店铺未审核或未通过审核,页面的设计效果如图5.8所示。图5.8 店铺登录页面设计效果图店铺登录功能的实现是将店家在登录页面上输入的信息在点击登录按钮的时候传给action,然后页面传来的数据数据库中的数据相匹配,如果数据匹配失败,则会登录失败,当数据匹配成功时,返回一个对象给action,然后在action中获得对应店铺的状态,如果店铺的状态为1,则会登录成功,不为1,则会登录失败,功能实现的核心代码如下。List list = shopService.getShopByShop(shop);if(list.size()0)Shop s = list.get(0);if(s.getAdminState()=1)/判断从数据库中取出的店铺信息是否通过审核getSession.setAttribute(loginShop,s);return Action.SUCCESS;5.2.2 店铺信息设置商家登录店铺管理系统后,可以对自己店铺的信息进行设置,包括商店的状态、起送价格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大模型和数据要素赋能一网统管解决方案
- 食品发酵考试题+答案
- 水工建筑维修灌浆工职业技能考试题库
- 烃的结构与性质(核心考点)-2024年高考化学一轮复习(新高考专用)原卷版
- 生活现象之热现象(一)-2023年中考物理重难点题型突破
- 人教部编版九年级语文下册第二单元测试及答案02
- CN120199580A 一种可限位的电子变压器
- 人教版八年级英语上册期末复习:完形填空15篇(含答案)
- 2015年7月国开电大法学本科《国际法》期末纸质考试试题及答案
- 配镜护理知识培训内容课件
- 艾滋病检测筛查实验室申请表
- 文化政策与法规课件
- 社区社群团购新团长培训案例课件
- 外科学教学课件:食管癌
- 露天矿开采技术课件汇总全套ppt完整版课件最全教学教程整套课件全书电子教案
- 部编人教版九年级上册初中历史 第1课 古代埃及 教案(教学设计)
- 钢结构钢梁计算(PPT33张)
- 幼儿教师——散文诗
- 创伤骨折院前急救ppt课件(PPT 50页)
- DB3302_T 1130-2022建筑垃圾运输管理规范(高清-可复制)
- 锚杆、锚索锚固力计算
评论
0/150
提交评论