外卖网站的设计与实现-附源码09085

摘 要

随着经济的迅速发展与普及,外卖网站已逐渐成为大众所习惯的消费方式,外卖网站也早已成为了一块肥沃的市场,各大外卖网站在这片市场中不断的扩展业务范围和寻求新的商机,以至于目前的经济市场已逐渐趋于饱和。各大外卖网站之间的战争已逐渐平息,在各自目前所拥有的市场份额下,如何进一步抓住商业先机,扩充市场份额,在竞争中占领有利位置则成为各大外卖网站目前所要考虑的主要问题。本文首先从外卖网站在大学生市场中的发展现状入手,系统阐述外卖网站在大学生市场的优势与劣势;其次通过对外卖网站在大学生市场中的营销策略的研究,分析其在营销过程中所面临的主要问题,然后提出一系列可行的营销对策,最后再对外卖行业的发展趋势和发展前景进行分析。 

本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。外卖网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。

关键词:外卖网站;PHP技术;Mysql数据库

Design and implementation of takeout website

Abstract

With the rapid development and popularization of economy, takeout websites have gradually become the consumption mode used by the public, and takeout websites have already become a fertile market. Major takeout websites continue to expand their business scope and seek new business opportunities in this market, so that the current economic market has gradually become saturated. The war between the major takeout websites has gradually subsided. Under their current market share, how to further seize the business opportunity, expand the market share and occupy a favorable position in the competition has become the main problem to be considered by the major takeout websites. Firstly, starting with the development status of takeout websites in the college students' market, this paper systematically expounds the advantages and disadvantages of takeout websites in the college students' market; Secondly, through the research on the marketing strategy of takeout website in the college students' market, this paper analyzes the main problems it faces in the marketing process, then puts forward a series of feasible marketing countermeasures, and finally analyzes the development trend and Prospect of takeout industry.

This paper mainly analyzes the functional requirements of the foreground system and background management system, and analyzes the non functional requirements of the security and scalability of the system. Based on the detailed requirement analysis, the database structure is determined according to the functional design of the system to realize the complete coding. The takeout website uses Dreamweaver, hbuilder code editor, Apache server and other development tools to complete the page design and function implementation of the main modules of the system. This paper shows the implementation effect diagram of the home page, and introduces the implementation process of user registration function, commodity search function, generate order and view my order function and online payment function through code and page.

Key words: Takeout website; PHP technology; Mysql database

目  录

第1章 绪论

1.1 研究背景意义

1.2 开发现状

1.3 论文组成结构

第2章 开发工具及相关技术介绍

2.1 PHP开发语言

2.2 JavaScript脚本语言

2.3 Mysql数据库

2.4 AJAX技术

第3章 系统分析

3.1 可行性分析

3.1.1 经济可行性

3.1.2 技术可行性

3.1.3 操作可行性

3.2 功能性需求分析

3.3 非功能性需求分析 7

3.4 数据流分析 9

3.5 数据字典 12

第4章 系统设计 16

4.1 功能模块设计 16

4.2 数据库设计

4.3 数据库设计 20

4.3.1 慨念设计 20

4.3.2 数据库逻辑 22

4.3.3 数据库表设计 22

第5章 系统实现 26

5.1 用户登录的实现 26

5.2商品信息模块 28

5.3系统用户管理模块 30

5.4下单信息的实现 31

5.5商品信息模块的实现 32

5.6商家管理的实现 33

5.7学生管理的实现 34

5.8骑手管理的实现 35

第6章 系统测试 36

6.1 系统可靠性测试 36

6.2 系统功能性测试 36

6.3 系统合格性测试 36

6.4 测试结果 37

第7章 总结与展望

参考文献

致谢 40

第一章  绪论

1.1 研究背景与意义

科技进步带来的生产力的发展,其本质上是生产效率的提高。在社会快速发展的今天,效率永远是衡量一款产品的重要标准。在生活中,我们常常遇到这样的问题:上班期间,由于中午休息的时间基本一致,在一座写字楼中就往往会出现这样的问题,即在中午的某个时间段内将会出现人流的高度集中,大家选择在同一时间去食堂或者楼下的餐厅吃饭。这无疑会大大降低人们对于这段时间的利用效率。这时,人们可能会采取一种方式来回避高峰期,那就是叫外卖。传统的外卖方式就是打电话预定,然而,在这种方式中,顾客往往通过餐厅散发的传单来获取餐厅的相关信息,通过电话来传达自己的订单信息,餐厅方面通过电话接受订单后,一般通过手写来记录,最后通过口头确认才算完成一份订单的提交,之后就是订单的完成和食品的递交。显然,在传统外卖流程中,顾客通过传单来接收信息,所能获得的信息太少,而且印发传单成本高昂,无疑那些面对大众的中低档餐厅不会或者很少印发传单;其次通过电话来接收订单,效率很低,耗时至少5到10分钟;最后,口头确认存在出错的风险,无法保证订单的有效性。而网上订餐系统或称之为网上外卖系统,将完美的解决以上的所有问题。

1.2 开发现状

由于近年来在线销售行业的兴起,也了解了一些相关信息。在中国,以前的销售只是传统销售,而在线销售似乎满足了市场需求。到目前为止,有一些家喻户晓的名字,如淘宝和天猫。然而,这种在线销售也有一些缺点:用户不能在下订单并付款后立即提货,他们还应该考虑货物是否受损。该系统是根据商品网络上的销售情况开发的。

经过几年的发展,许多被消费者认可的网上购物中心已经出现在国内外。这些网上购物中心的内容是多样化的,它们包含的功能相对完善,包括注册用户、搜索商品、管理订单、介绍商品细节以及在线留言。如今,互联网的广泛使用在一定程度上导致了国内外在线购物中心的发展,只要企业通过这个平台在线打字,就可以随时管理系统的内容。通过展示菜品内容和发布公告,鼓励消费者订餐和进行在线交易。

1.3 论文组成结构

根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出外卖网站。

本文共有七章,如下所示。

第一章概述了外卖网站的研究目的和意义;精炼地总结了国内外在内的领域研究情况和未来的研究趋势,最后给出了论文的组成结构。

第二章简要概述了本文所用的开发技术和工具。

第三章简要对系统各业务流程进行需求分析、可行性分析。

第四章对外卖网站进行设计。

第五章对外卖网站进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。

第六章对外卖网站采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。

第七章总结全文并对未来的研究做出展望。

第2章关键技术介绍

2.1PHP开发语言

PHP是一种面向对象的程序设计语言,类是PHP程序的基本组成单元,类中又包含了属性和方法,在类中又可以创建无数个对象。类中包含的主要成员是字段和方法,字段是指一种数据变量,方法是指对字段进行操作的集合,包括给其他变量赋值、调用方法等。PHP代码都是编写在类体中,类体中的每个数据项都可以看作是一个对象,PHP不支持类的多重继承,但可以支持接口的多重继承,并且支持类和接口的实现。由于PHP通常在网络环境中使用,所以PHP提供了一个防止代码恶意攻击的安全机制,同时,PHP具有强类型机制、自动收集垃圾和异常处理等特性,这些都是PHP语言健壮性的重要保证。

1、PHP语言具有如下特点:

(1)PHP 结合 C、Java、Perl 以及自创的新语法形成了自己独特的语法。

(2)PHP可以更快速的执行动态网页,当然这只是相对于CGI或者Perl来说,PHP可以在HTML文档中嵌入程序,而且去执行,另外PHP能够实现CGI的所有功能,因此说明PHP具有很强大的功能。

(3)大部分当下流行的数据库和操作系统PHP语言都能够支持。

(4)PHP语言的最重要特点就是可以让C、C++进行扩展

2、PHP语言具有如下优势:

(1)开放源代码:事实上PHP的所有源代码都可以得到。

(2)免费性:PHP是开源代码并且免费

(3)快捷性:PHP对于初学者来说,它不止编辑简单可以嵌入与HTML语言中,而且对于程序开发和运行也是非常快速的,并且非常容易掌握。

(4)跨平台性强:PHP是可以在服务器运行的脚本语言,所以在UNIX、Android、Mac OS、WINDOWS等操作平台上都可以运行。

(5)效率高:PHP对系统资源的消耗相当少,所以它的效率高。

(6)图像处理:PHP不止是可以使用GD2对图像进行处理,而且他还可以完成对图像的创建。

(7)面向对象:php4、php5对于PHP在面向对象上,有了许多的改进,PHP语言开发大型商业程序也是可以胜任的。

2.2JavaScript脚本语言

此作品中,其中包含了页面的搭建,以及前后台数据接口的连接等,而对于实现用户页面交互以及一些页面逻辑性判断等功能都是用JavaScript完成的[7],而JavaScript是已经被广泛用于Web应用开发,是一种属于网络的脚本语言,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能。JavaScript作为一种描述语言,作用于web前端,它基于对象(object)和事件驱动(Event Driven)并且安全性也较好。它可以有效的在客户端运行并为服务器减轻负担。

1、JavaScript具有的特点:

(1)脚本语言。JavaScript是一种脚本语言并具有解释性,在程序运行过程中,它就可以进行解释。

(2)基于对象。JavaScript可以创建对象,而且还可以使用现在存在的对象,它是基于对象的脚本语言。

(3)简单。JavaScript不对使用的数据类型有着严格的要求,应用的是弱类型的变量类型,设计是十分紧凑简单。

(4)动态性。JavaScript是可以不经过Web服务器对用户的操作做出相应,是可以采用事件驱动的脚本语言。

(5)跨平台性。JavaScript可以不依赖操作系统,但需要浏览器的支持。所以在编写JavaScript脚本后可以在任意机器上使用,但要注意的一点,使用的浏览器是支持JavaScript脚本语言,现在大多浏览器也支持JavaScript。

2、JavaScript的用途

JavaScript的用途是解决页面交互和数据交互,最终目的是丰富客户端效果以及数据的有效传递。

(1)实现页面交互,提升用户体验实现页面特效。即js操作html的dom节构或操作样式。

(2)客户端表单验证。当数据传送到服务端前,可以将用户填入并上交的信息快速有效的验证,进行了数据的交互,为服务器减轻了负担。

2.3Mysql数据库

Mysql Database,通常简称为Mysql,是一款关系型数据库的管理系统。Mysql数据库系统是目前最流行的关系型数据库管理系统之一,其系统具有良好的可移植性,功能强大且使用十分方便。Mysql支持很多系统和硬件,包括HP-UX,Linux,MicrosoftWindows,SunSolaris,AppleMac等。

Mysql系统的特点:

(1)Mysql的多线索服务器的体系结构使其只利用很少的资源就能够支持多用户的、大数据的高性能事务处理;

(2)Mysql支持大量的多媒体数据,例如声音、动画、二进制图形和多维数据结构等;

(3)Mysql提供了安全保密管理系统,具有良好的安全性、一致性和完整性;

(4)具有新的分布式数据库能力和分布处理的能力;

(5)提供了一些高级语言的接口软件,可以帮助快速开发基于客户端的应用程序,具有良好的移植性、可连结性和可兼容性。

Mysql数据库逻辑结构包含表空间(tablespace)、段(segment)、范围(extend)、数据块(datablock)、和模式对象(schemaobject) 。每一个数据库都可以逻辑划分为一个或多个表空间,每一个表空间都是由一个或多个数据文件来组成。Mysql数据库分为系统表空间和非系统表空间,每一个Mysql数据库都包含一个称作SYSTEM的系统表空间。

2.4AJAX技术

AJAX是创建交互式网页的一种开发技术,利用AJAX技术可以实现以无刷新网页的方式更新HTML元素中的内容。传统的网页如果要更新网页内容,必须重新加载整个页面,而AJAX使用异步数据传输在网页和Web服务器之前传递HTTP请求,这样可以使网页只请求少量信息,而不用刷新整个页面。

第3章系统分析

3.1可行性分析

本系统将在经济、技术、操作这三个角度上进行可行性分析。

3.1.1经济可行性

整个系统从设计到开发以及测试过程严谨步骤齐全,所有工作任务全部由本人完成,并未获取外部技术支持,节约了一切服务成本开销以及人工成本,在硬件方面,为节约成本使用一台二手移动工作站作为项目部署服务器以及数据库服务器,成本在一万元一下,真个网络部署也是由本人独立完成不涉及到其他人工费用,整个开发过程本着低成本,低消耗的原则。

3.1.2技术可行性

技术可行性分析的目的是确认该系统能否利用现有技术实现,并评估开发效率和完成情况。技术的可行性是指在当前的技术条件下,计算机软件和硬件的开发是否能够满足发展的要求。因为该系统的开发基于PHP语言,所以开发该系统所需的软件和硬件条件可以在普通计算机上满足。因为它占用的内存相对较少,所以用Mysql数据库开发和设计软件理论上没有问题,因为它占用的内存太少。上述技术可以有效地保证系统的成功和高效开发。

3.1.3操作可行性

外卖网站的使用界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,用户只要平时使用过电脑都能进行访问操作。此系统的开发采用PHP技术开发,人性化和完善化是B/S结构开发比较显要的特点使得用户操作相比较其他更加简洁方便。易操作、易管理、交互性好在本系统操作上体现得淋漓尽致。

3.2功能需求分析

通过本系统,卖家节省了用于交易场所、服务质量、维护商铺杂支开销等方面的投入,从而降低了价格;买家方面,不仅节约了时间成本,同时降低了购买成本,可以“货比三家”地随意挑选性价比高的产品。加快了交易和货币流通速度,而进而推动经济的增长。

根据条件需要,系统结构主要由三大用户组成。一是买家组成的买家用户,二是管理员用户,最后是卖家用户。

1用户登录及身份要求       

验证买家、管理员等用户的信息

2本系统销售功能需求(面向买家用户)

允许买家用户评论商品。

允许买家用户查询商品的信息。

允许买家用户对购买记录的管理。

自动生成订单。

买家用户在线支付订单费用。

买家选择商品,进行购买,填写发货地址、联系电话等信息。

3本系统销售功能需求(面向商家用户)

对商品信息的管理(添加、删除,修改,查询)。

对买家的下单的管理(删除,修改,查询)。

对买家卖家用户注册信息的管理(添加,删除,修改,查询)。

对商品信息的管理(删除,修改,查询)。

对买家的下单的管理(删除,修改,查询)。

  3.3用例分析

1.管理员主要负责系统管理、商品信息管理、商品类别管理、用户信息管理、订单管理,下图所示描述管理员的用例。

图3-1管理员用例图

2.学生用户主要使用系统的在线购买业务,下图所示为学生用例图。

图3-2学生用例图

3.商家用户主要使用系统的销售业务,下图所示为商家用户用例图。

图3-3商家用例图

3.4数据流分析

数据流图的设计主要是由于系统目前功能还没有确定,可以先描述可能要使用到的功能内容,并且向用户了解“系统从外界接受什么数据”和“系统向外界送出什么数据”等信息,根据用户所给的答复进行设计数据流图。

如下为系统的0层数据流图,系统用户分为管理员和普通用户。

    

图3-4系统数据流图(0层)

如下图所示为系统1层数据流图。

图3-5系统数据流图(1层)

外卖网站第二层数据流图主要详细反应各功能模块对应的操作与数据进行交互的原理。并且更详细的显示出各角色对功能模块操作的数据流向,让开发人员能了解该系统的开发方向,能够更准确的开发出系统模型。

将商品信息维护进行细化得到商品信息管理二层数据流程图,如下图所示。     

图3-6商品管理数据流图(2层)

将订单信息管理进行细化得到订单信息管理二层数据流程图,如下图所示。

图3-7订单管理数据流图(2层)

3.5数据字典

1.数据存储描述

下表描述了用户信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-1用户信息描述

数据流

用户信息

数据流来源

SQL SERVER数据库中用户信息表,用户详细信息表

数据去向

系统界面,用户信息管理界面

数据流组成

用户名、用户密码、添加时间、编号

下表描述了购买记录信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-2购买记录信息描述

数据流

购买记录信息

数据流来源

SQL SERVER数据库中购买记录表,购买记录详细信息表

数据去向

购买记录界面

数据流组成

购买记录ID、用户ID、商品ID、数量

下表描述了订单信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-3订单信息描述

数据流

订单信息

数据流来源

SQL SERVER数据库中订单表,订单详情表

数据去向

用户订单界面,订单管理界面

数据流组成

用户ID、订单ID、商品ID、下单时间、订单金额

下表描述了商品类别的数据流、数据来源、数据去向和数据流组成的词条。

表3-4商家信息描述

数据流

商家信息

数据流来源

SQL SERVER数据库中商家详情表

数据去向

商家详情界面、购买记录界面、商家管理界面

数据流组成

商家名

下表描述了商品管理的数据流、数据来源、数据去向和数据流组成的词条。

表3-5商品信息描述

数据流

商品信息

数据流来源

SQL SERVER数据库中商品表、商品类别表

数据去向

商品查询界面、商品详情界面、购买记录界面、商品管理界面

数据流组成

商品名、商品价格、库存数量、商品类别

2.数据处理描述

下表描述用户通过输入用户名和密码进行身份验证处理,验证成功后将返回的信息显示在界面上。

表3-6用户身份验证

处理逻辑名称

用户身份验证

简述

检查输入信息的合法性

输入的数据流

用户名+密码

处理过程

根据输入的用户名和密码,检索用户,显示查询信息

输出的数据流

用户信息、商品信息

下表描述用户成功登录系统后通过商品名查询商品信息,根据查询后返回的数据显示在界面上。

表3-7商品信息查询

处理逻辑名称

商品信息查询

简述

检查输入信息的合法性

输入的数据流

商品名或商品编号或商品类别

处理过程

登录成功的用户,通过商品名查询用户所需的商品,还可查询用户的订单及评论。

输出的数据流

用户订单信息,购买记录信息

下表描述管理员用户成功登录系统后可以添加商品,添加后,重新查询商品表,返回的商品数据显示在界面上。

表3-8商品信息添加

处理逻辑名称

商品信息添加

简述

检查输入信息的合法性

输入的数据流

商品信息

处理过程

登录成功的管理员用户,往数据库添加一条商品信息数据。

输出的数据流

商品信息,订单信息

下表描述管理员用户成功登录系统后,购买商品,填写订单收货人、收货地址、联系电话等,生成购买订单后,重新查询订单表,返回的订单数据显示在界面上。

表3-9订单生成

处理逻辑名称

订单生成

简述

检查输入信息的合法性

输入的数据流

订单信息

处理过程

登录成功的用户,往数据库添加一条订单信息数据。

输出的数据流

订单信息

下表描述用户成功登录系统后通过促销标题查询促销信息,根据查询后,返回的促销数据显示在界面上。

表3-10促销信息查询

处理逻辑名称

促销信息查询

简述

检查输入信息的合法性

输入的数据流

促销标题

处理过程

登录成功的用户,通过促销标题查询用户所需的促销信息

输出的数据流

第4章 系统设计

4.1功能模块设计

通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。

图4-1系统功能结构图

4.2功能设计

1.用户登录模块:确保用户注册信息的真实度是提高系统效率和盈利的重要因素。真实的用户才能带来价值,注册是保证真实用户使用系统主要业务的第一步,通过对用户注册信息的审核,可防止机器注册。使用现如今较为流行的管理员进行账号激活的验证方式,对用户注册信息进行过滤,未激活用户信息将不能使用系统主要功能。

如下图所示为用户登录流程图。

图4-2用户登录流程图

2.商品浏览模块:没有登录的用户和登录的用户都可以在系统前台进行商品浏览,用户可以查看商品的详细信息和选择相应的商品类别进行该类别下的商品查看,用户还可以通过商品名称的关键字进行搜索。

如下图所示为商品浏览流程图。

图4-3商品浏览流程图

3.订单管理模块:用户购买商品后,填写收货地址、收货人、电话等信息,生成订单信息,管理员可以审核订单,删除、修改订单,对订单信息进行相应的商品发货。 

如下图所示为订单管理流程图。

图4-4订单管理流程图

4.商品管理模块

系统管理员可以对商品信息进行增、删、改、查的操作。

5.用户管理模块

系统管理员可以对用户信息进行增、删、改、查的操作。

6.购买记录模块

用户对个人添加至购买记录里面的商品进行增删改查等操作。

如下图所示为购买记录模块流程图。

图4-5购买记录模块流程图

4.3数据库设计

4.3.1概念设计

本系统的E-R图表现了系统中各个实体之间的联系,经过分析,系统的实体有商品、商品类别、留言、订单、用户等。

商品信息的实体图如下图所示。

图4-6商品信息实体图

商品类别实体图如下图所示。

图4-7商品类别信息实体图

骑手信息实体图如下图所示。

图4-8骑手信息实体图

订单信息的实体图如下图所示。

图4-9订单信息实体图

系统E-R图如下所示。

图4-10系统E-R图

4.3.2数据库逻辑设计

针对系统的实体和属性,结合数据设计思想,对系统的逻辑设计的内容进行如下描述。

商品(商品编号、商品名称、简介、价格、配送费、生产日期、保质期、图片、商家账号)。

下单(商品编号、商品名称、总金额、配送费、商家账号、下单数量、下单地址、姓名、手机号、下单人、审核状态、支付状态、支付类型)。

商家(商家账号、审核状态)。

评论(评论人、内容、昵称、头像地址、)。

4.3.3数据库表设计

数据库表是设计和实现系统的一个重要基础。以下列出了该购物系统几个重要的数据库表。

product_information表:

名称

类型

长度

不是null

主键

注释

product_information_id

int

11

商品信息ID

commodity_number

varchar

64

商品编号

trade_name

varchar

64

商品名称

brief_introduction

text

0

简介

price

int

11

价格

distribution_fee

int

11

配送费

date_of_manufacture

datetime

0

生产日期

quality_guarantee_period

varchar

64

保质期

picture

varchar

255

图片

merchant_account_number

int

11

商家账号

hits

int

11

点击数

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

order_information表:

名称

类型

长度

不是null

主键

注释

order_information_id

int

11

下单信息ID

commodity_number

varchar

64

商品编号

price

int

11

价格

trade_name

varchar

64

商品名称

total_amount

varchar

64

总金额

distribution_fee

int

11

配送费

merchant_account_number

int

11

商家账号

order_quantity

int

11

下单数量

order_address

varchar

64

下单地址

full_name

varchar

64

姓名

phone_number

varchar

16

手机号

next_person

int

11

下单人

examine_state

varchar

16

审核状态

pay_state

varchar

16

支付状态

pay_type

varchar

16

支付类型

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

rider表:

名称

类型

长度

不是null

主键

注释

rider_id

int

11

骑手ID

rider_account

varchar

64

骑手账号

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

business表:

名称

类型

长度

不是null

主键

注释

business_id

int

11

商家ID

merchant_account_number

varchar

64

商家账号

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

comment表:

名称

类型

长度

不是null

主键

注释

comment_id

int

11

评论ID

user_id

int

11

评论人ID

reply_to_id

int

11

回复评论ID

content

longtext

0

内容

nickname

varchar

255

昵称

avatar

varchar

255

头像地址

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

source_table

varchar

255

来源表

source_field

varchar

255

来源字段

source_id

int

10

来源ID

group表:

名称

类型

长度

不是null

主键

注释

group_id

mediumint

8

用户组ID

display

smallint

4

显示顺序

name

varchar

16

名称

description

varchar

255

描述

source_table

varchar

255

来源表

source_field

varchar

255

来源字段

source_id

int

10

来源ID

register

smallint

1

注册位置

create_time

timestamp

0

创建时间

update_time

timestamp

0

更新时间

第5章 系统实现

5.1登录模块的实现

本系统主要的用户有系统管理员、学生,一个系统最基本的功能就是登录功能,本系统可以进行系统登录的角色有学生、管理员,用户对应前台登录界面,管理员对应后台登录界面,首先进入登录页,输入用户名和密码,然后提交至服务端进行数据库数据验证,通过ASP.NET逻辑代码判断数据库是否存在用户输入的这一个记录,如果存在,则判断用户身份,如果是学生用户,则进入学生前台,如果是管理员用户,则进入系统主页,并把用户对象存放在session中,如果不存在这样一条记录,则返回登录界面。

登录界面如下所示。

图5-1登录界面

用户注册界面如下所示。

图5-2用户注册界面

登录系统主要代码如下。

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

}

5.2商品信息模块的实现

系统为用户提供简洁的商品视图,方便用户找到自己需要的商品。在shangpinxinxilist.ascx实现商品列表的展示,用户点击某个商品,通过商品id传递值,找到数据表的该商品的信息。

如下图所示为商品信息界面。

图5-3商品信息界面

如下图所示为评论的部分界面。

图5-4商品评论界面

商品信息关键代码如下。

class AccessToken extends Base

{

    protected $table = 'access_token';                //数据表名

    protected $table_id = 'token';             //数据表名

    protected $validate = 'AccessToken';             //数据表名

    protected $model;

    public function __construct(){

        $this->model = new Model();

    }

}

5.3系统用户管理模块

管理员页面显示用户名、昵称、密码、手机号码、邮箱、手机认证、邮箱认证、状态等查询、删除等一些操作。

管理员展示页面,如下图所示。

图5-5管理员页面

管理员查询页面,如下图所示。

图5-6管理员查询页面

5.4下单信息的实现

管理员在后台管理界面点击到所有下单界面dingdan_list.php,向控制层dingdanAction发送请求,搜索当前所有下单信息,dingdanAction向下单数据访问层调用搜索全部下单的请求,向数据库的订单表搜索当前所有订单并将订单信息以对象的形式层层返回到dingdan_list.php界面,显示出当前所有下单信息。同时可以删除过期订单,确认已有下单,进行发货处理。

下单管理界面如下图所示。

图5-7下单管理界面

下单管理关键代码如下。

public function add()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

if($this->table == 'user'){

$request['password'] = md5($request['password']);

}

$res = $this->add_before($request, $this->table, $this->table_id);

if($res['code'] == 200){

$result = $this->model->add($request, $this->table, $this->table_id);

$this->add_after($this->table);

$data = $result;

}else{

$data['error'] = $res;

}

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

5.5商品信息模块的实现

管理员可以获取系统中所有商品的列表并对其进行编辑。管理员在添加商品时,需要输入商品基本信息,如名称、价格、简介等,还需要输入商品详情描述,包括对商品功能的描述以及展示图片等。添加商品完成,数据库商品表添加一条信息。管理员可以搜索商品,同时可以对已经添加的商品进行编辑。

商品信息管理界面如下图所示。

图5-8商品信息界面

商品信息管理关键代码如下。

public function del()

    {

        $request = Request::param();

        $result = $this->model->del_data($request, $this->table, $this->table_id);

        $data = $result;

        return json_encode($data);

    }

5.6商家管理的实现

商家用户的管理,昵称、用户名、商家账号等一些查询、删除等操作。

商家管理界面如下图所示。

图5-9商家管理界面

商家管理关键代码如下。

public function count_group()

    {

        $request = Request::param();

        if (isset($request['groupby'])) {

            if (!empty($request['groupby'])) {

                $result = $this->model->count_group($request, $this->table, $this->table_id);

                $data['result'] = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "groupby的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "groupby的值不能为空!";

        }

        return json_encode($data);

}

5.7学生管理的实现

管理员可以获取系统中所有学生信息并对其进行编辑。管理员在添加学生时,需要输入学生基本信息,如昵称、用户名、学生账号等。包括对添加学生完成,数据库学生表添加一条信息。管理员可以搜索学生,同时可以对已经添加的学生进行编辑。

学生管理界面如下图所示。

图5-10学生管理界面

学生管理主要代码如下。

Class User extends Validate

{

    protected $rule = [

        'username|账号' => [

            'require' => 'require',

            'max'     => '16',

        ],

        'password|密码' => [

            'require' => 'require',

            'max'     => '32',

        ],

    ];

}

5.8骑手管理的实现

管理员在添加学生时,需要输入学生基本信息,如昵称、用户名、骑手账号等一些查询、添加、删除等操作。

骑手管理界面如下图所示。

图5-11骑手管理界面

    骑手管理主要代码如下。

       public function get_list()

    {

        $request = Request::param();

        $result['list'] = $this->model->get_list($request, $this->table, $this->table_id);

        $result['count'] = $this->model->list_count($request, $this->table, $this->table_id);

        $data['result'] = $result;

        return json_encode($data);

    }

第6章 系统测试

6.1系统可靠性测试

以进入系统首页的访问速度为例展示系统的性能测试;系统的主要用户群体是购物理念较为先进的消费者,系统要在3秒钟内响应;需要完成页面的菜单栏、首页轮播图片、类目及商品列表、商品评价以及各功能模块入口等元素的显示。

6.2系统功能性测试

功能性测试是指执行指定的工作流程,通过对一个系统的所有特性和功能都进行测试确保符合需求和规范。

系统功能性测试表如下表所示。

表6-1系统功能性测试表

编号

测试功能

测试内容

测试结果

1

用户登录

1.验证用户名与密码的正确性。

2.验证密码是否可见。

通过

2

首页展示

1.首页数据是否成功加载。

2.验证搜索功能的准确性。

3.验证是否可以异步加载。

4.验证导航栏按钮。

通过

3

个人信息修改

1.验证登录名是否可以正常更改。

2.验证联系方式是否可以更改。

3.验证收货地址可以正常修改。

4.验证密码是否可以修改。

通过

7

商家管理

1.验证商家新增是否可以成功。

2.验证商家删除是否可以成功。

通过

8

商品管理

1.商品信息是否与上传一致。

2.是否能完成价格修改。

3.验证库存信息修改。

通过

9

订单处理

1.能否正常上传单号完成发货。

2.验证数据准确性。

通过

10

添加商品

1.上传商品是否添加验证。

2.图片是否成功上传。

3.验证表单是否提交成功。

通过

11

用户管理

1.验证用户录入功能。

  1. 验证用户违规清理功能。

通过

6.3系统合格性测试

集成测试后,所有的模块已经全部连接完毕,形成了一个完整的系统。合格性测试是在集成测试完毕后,进一步对系统进行综合性的检测。经过合格性测试,可以检查出系统是否符合系统的设计,能够完成需求的所有功能。本系统经过最后的测试,所有模块功能都能按预定要求工作。

6.4测试结果

在实际测试中,经过一系列系统性的测试,使我们能够及时发现一些系统在设计中出现的疏忽和漏洞。经过严密的测试,不仅发现了模块内部的错误,也查找到模块连接后产生的错误。经过测试,对系统产生错误的地方进行优化、修改和完善,使得系统能够实现最初设计的基本功能。

第7章 总结与展望

本文针对外卖网站的特点和用户需求,利用 PHP相关技术、Web 开发技术和MVC 模式等技术,通过详细的需求分析、页面设计和功能设计,最终实现了一个基于 PHP 的外卖网站。

系统利用 Html 提供的标签库、JQuery 技术和 CSS 技术进行了系统页面设计,实现了包括用户模块、商品模块、购买记录模块和订单模块的前台系统以及包括用户管理模块、商品管理模块、订单管理模块的后台系统。另外,系统还进行了数据安全设计和推荐商品模块设计,并添加了用户的访问控制,建立了一个完整、健壮、安全稳定的外卖网站。

该系统的特点有:

(1)简单大方,易于操作的 Web 页面;

(2)利用 Ajax 技术使页面进行无刷新更新;

(3)根据用户的浏览和购买记录,向用户推荐可能感兴趣的商品;

(4)系统具有商品搜索功能,使用户能够简单方便的找到自己心仪的商品;

(5)商品评论功能可以帮助用户更全面的了解商品信息,用户可以发表自己对已购买商品的评价;

(6)有良好的安全性和可扩展性,增强了系统的可靠性,使系统保持持久的生命力。

由于时间限制和本人能力条件有限,该系统还存在一些不足,今后也会出现许多新的开发技术,未来还可以对系统做出如下改进:

(1)优化系统页面,使页面更加美观且方便操作;

(2)优化商品搜索功能,提供多条件选择查询搜索;

(3)优化商品推荐功能,提高商品推荐的精准度;

(4)优化在线支付功能,提供更多支付接口,使用户付款更加方便;

(5)进一步提高系统的安全性,使系统更加健壮;

(6)优化数据和代码,提升软件效率,方便系统维护和扩展。

参考文献

[1]张琳岚. 外卖骑手用工关系研究[D].贵州民族大学,2021.

[2]靳韵强. 外卖行业网约工劳动关系认定及权益保护[D].西北师范大学,2021.

[3]刘汇欣. 外卖平台服务质量对用户重复购买意向的影响研究[D].兰州财经大学,2021.

[4]Guo Meiwen,Wu Liang,Peng Jianping,Chiu ChunHung. Research on Environmental Issue and Sustainable Consumption of Online Takeout Food—Practice and Enlightenment Based on China’s Meituan[J]. Sustainability,2021,13(12):

[5]施响,王士君,浩飞龙,王冬艳.中国外卖O2O电子商务的空间扩散与渗透——兼论技术扩散假说与效率假说的适用性[J].地理研究,2021,40(05):1338-1353.

[6]Bret Thorn. Steakhouses master off-premise options to survive during the pandemic, including takeout, delivery, virtual wine dinners and cooking classes[J]. Nation's Restaurant News,2021:

[7]刘汇欣.基于卡诺模型的外卖平台服务质量提升研究[J].广西质量监督导报,2021(02):71-72.

[8]曾涛,曾煜翔,许洪瑞. 一种基于物联网的餐饮外卖可视化系统及外卖方法[P]. 四川省:CN111754248A,2020-10-09.

[9]龚皓宁,王珊珊,左青,徐文宏,穆丽得尔·买那甫.基于层次分析法的高校餐饮外卖APP评价研究[J].无线互联科技,2020,17(08):50-51.

[10]刘增金.上海完善网络外卖食品安全保障机制的对策建议[J].科学发展,2020(02):85-93.

[11]张文红.O2O模式下的餐饮外卖行业分析研究[J].农村经济与科技,2019,30(22):116-117.

[12]李进进.外卖餐饮业的食品安全监管对策研究[J].食品安全导刊,2019(13):68-71 [13]杨柳,李少华. 网络餐饮外卖初始信任的影响因素研究——以天津市场为例[C]//“四个全面”·创新发展·天津机遇——天津市社会科学界第十一届学术年会优秀论文集(中).,2019:391-398.

[14]张惠. 餐饮外卖O2O只是在火热地烧钱?[N]. 中国商报,2014-12-12(P10).

 [15]Sebastian Anthony. Google Takeout lets you easily export your data from Circles[J]. ExtremeTech.com,2019:

致谢

时光飞逝,转眼间我在学校的这些年生活即将结束,回顾这几年的学习生活,收获良多,既有幸福也有难过,学校生活的结束对于我来说也是一个新的开始。论文即将完成,在此,我心中有许多想要感谢的人。首先感谢我的导师,不仅在学习研究方面加以指导,也在生活和为人处世上给予帮助。还要感谢授课老师,你们严谨的学术精神和积极向上的工作态度都在激励我的成长和进步。感谢多年来一直生活在一起的室友,谢谢你们多年来的陪伴和照顾。最后,要感谢各位论文评审老师,感谢您们在百忙之中抽空评阅本论文并给出宝贵的意见和建议。

点赞+收藏+关注  →私信领取本源代码、数据库

  • 44
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
果汁外卖静态页面网站设计实现离不开HTML和CSS代码。HTML(超文本标记语言)用于构建网页骨架和内容,而CSS(层叠样式表)则用于美化和布局网页。 首先,我们可以使用HTML来创建网页结构。可以使用HTML标签来定义标题、段落、列表、图像等内容。例如,使用<h1>标签定义网页标题,<p>标签定义段落,<ul>和<li>标签定义无序列表等。 接下来,我们可以使用CSS来为网页添加样式和布局。CSS包括选择器和属性,通过将选择器与属性关联来设置元素的样式。可以使用CSS选择器选择特定的HTML元素,并使用属性来修改元素的外观。可以设置背景颜色、字体样式、内外边距、边框等。 对于果汁外卖网站设计,可以使用HTML创建页面的结构和内容。可以使用<h1>标签定义网页标题,<div>标签划分页面区块,<img>标签插入Logo图像,<ul>和<li>标签创建菜单列表等。 然后,可以使用CSS为网页添加样式和布局。可以使用选择器选择特定的HTML元素,并使用属性设置元素的样式。例如,可以为<div>标签设置背景颜色和内外边距,为<h1>和<p>标签设置字体样式和颜色,为<ul>和<li>标签设置列表样式等。 总结来说,通过使用HTML和CSS代码,可以实现果汁外卖静态页面网站设计。HTML用于构建页面结构和内容,CSS用于美化和布局网页,通过定义选择器和属性来设置元素的样式。这样,我们就可以创建出一个漂亮和功能性的果汁外卖网站

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值