基于微信公众号的外卖点餐系统_第1页
基于微信公众号的外卖点餐系统_第2页
基于微信公众号的外卖点餐系统_第3页
基于微信公众号的外卖点餐系统_第4页
基于微信公众号的外卖点餐系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于微信公众号的外卖点餐系统 Takeaway ordering system based on WeChat official account内容摘要民以食为天,作为跟我们生活息息相关的行业,餐饮业无疑是一个不倒的行业,随着互联网的发展,餐饮业也迎来了巨大的变革。微信点餐作为一个近年来成功的案例,设计开发符合现代人需求的系统是个不错的想法。近几年移动应用的火热,手机成了现代人离不开的工具,加上微信这个庞大的生态体系,所以我选择了以微信为载体的外卖点餐系统作为我的毕业设计。系统的目的是让用户订餐服务直观、高效、便捷。根据相关需求,系统确定以微信公众号为载体,使用SpringBoot技术,My

2、SQL、Redis作为数据库。整个系统操作简单,维护容易,便捷实用。该系统主要分为买家和卖家用户:买家用户可以通过系统将选择想要商品加入购物车下单,亦可取消订单,完结订单后可评价服务;卖家用户可以在后台管理系统实现商品的上下架,修改,完结订单等功能。关键词:微信公众 点餐系统 SpringBoot MySQL RedisAbstractAs the saying goes Bread is the staff of life. The catering industry is An industry that doesnt fall, The whole industry is closely

3、 related to our life. With the development of the Internet, This industry has also ushered in tremendous changes. As a successful case in recent years, wechat ordering is a good idea to design and develop a system that meets the needs of modern people. Over the years,Widespread popularity of mobile

4、applications,smart phones have become the tools people rely on most. In addition, wechat is a huge ecosystem, so I chose wechat as the carrier of the takeout system as my graduation project. The purpose is to make users more intuitive, efficient and convenient when using services.According to the re

5、levant requirements, the system determines the official account of WeChat public using SpringBoot technology, MySQL and Redis as database. The whole system is simple to operate, easy to maintain and practical. The system is mainly divided into buyer and seller users: buyer users can choose to add go

6、ods to the shopping cart through the system to place an order, or cancel the order, and evaluate the service after the order is completed; seller users can realize the functions of goods loading and unloading, modification, and order completion in the background management system.Keywords: WeChat of

7、ficial account Ordering system SpringBoot MySQL Redis目录第一章 绪论11.1 项目开发背景11.2 项目开发目的11.3 项目开发意义21.4 国内研究现状和发展趋势21.5 项目设计思路2第二章 综述及相关技术分析32.1 微信和微信公众号简介32.2 SpringBoot简介42.3 MySQL简介52.4 Java语言简介62.5 Redis简介72.6 本章小结7第三章 系统需求分析83.1 可行性分析83.2 总体需求分析83.3 功能需求分析83.3.1 系统功能结构图93.4 本章小结10第四章 系统的设计与实现114.1 系

8、统功能模块的设计与实现114.1.1 登录的设计与实现114.1.2 点餐功能模块的设计与实现124.1.3 下单信息功能模块的设计与实现144.1.4 取消订单功能模块的设计与实现144.2 卖家后台的设计与实现164.2.1 卖家后台登录164.2.2 商品管理164.2.3 商品类目管理174.2.4 订单管理194.3 本章小结19第五章 数据库设计205.1 数据库的设计205.2 数据库表的设计22第六章 系统测试266.1 软件测试的目的266.2 测试方法276.3 测试案例276.4 本章小结31第七章 结论32参考文献33致谢34广东东软学院本科毕业设计(论文)第一章 绪论

9、1.1 项目开发背景自4G时代以来,互联网的发展之迅速,人们有目共睹,随着手机等移动智能终端的改革升级以及网络的快速发展,国人们的生活习惯也发生了巨大的变化。衣食住行,此为人民生活之根基,作为跟我们生活息息相关的行业,餐饮行业也随着社会的进步、科技的发展迎来了巨大的变革。“今天吃什么?食堂?”“食堂?算了吧,还是叫外卖吧。”外卖,人们生活习惯的改变使其成为了现代人生活的一部分,也是一种方便,多元选择的方式。其本身有着巨大的市场需求,但是目前外卖点餐系统五花八门,群雄割据,地方寡头难免有点不胜其烦。一些本地商铺完全可以利用平台引流,例如时下火爆的微信小程序、公众号等,微信用户的覆盖程度可能大大的

10、超过了我们的想象,只要引流到位,通过开发基于微信公众号的外卖点餐系统,用户可以方便快捷的通过公众号入口进入程序,浏览选择需要的商品,下单购买。对于顾客来说,不必去下载其他外卖APP,从而减少了不必要的时间浪费以及多余的步骤。智能手机等移动智能终端的普及在国内已经非常发达。网络方便、智能手机的普及、 微信所拥有的庞大用户群、外卖市场的强大统治力等诸多优势使基于 微信公众号的外卖点餐系统的设计与实现显得十分正确,这样人们就可以通过微信外卖点餐下单了。1.2 项目开发目的社会的进步以及科技的发展,无比发达的互联网加上国内社交巨头微信平台的支持,方便简单的点餐系统成为热门是可以预见的。顺应潮流,迎合用

11、户需求,并且使用SpringBoot技术栈进行系统开发,买家点餐购买,卖家管理商品、处理订单,旨在让线上订餐系统服务直观、高效、便捷。1.3 项目开发意义开发微信公众号点餐系统有着许许多多的优点,例如:可接受程度大,平台支持,易于操作和低成本。这些优点可以极大的提高外卖点餐系统的使用效率和吸引大量用户。1.4 国内研究现状和发展趋势近年来,餐饮业的经营管理模式在不断发展和创新,信息花的管理能带来真正业务上的提升,能够解决不少运营商的问题。近几年移动应用的火热,手机成了现代人离不开的工具,加上微信这个庞大的生态体系,结合单独开发APP的成本与用户引流方面的难题,微信公众号点餐就是一个无比适合的平

12、台。虽说中国餐饮业现在恰逢最好的时代,但也处在竞争最激烈的时代:一方面,年交易额已突破万亿大关(单位:人民币),以每年一成的增长速度在10年内门店数量激增达十倍;90后俨然成为市场消费的主力军,绝大多数人选择在外就餐,并愿意为之付出相应的金额,前景可观;而在另一方面,过于分散的行业,虽然竞争激烈,但从业者们队微信点餐功能认知甚少使得行业数字化程度过于低下,从而失去了多样化的智慧点餐尝试能力。尽管如此,在行业内也不乏有先见之明的佼佼者,有些在两三年内开上千家连锁,缔造行业神话,坐拥千万忠实会员,有些则找到了垂直发展餐饮场景的道路。令商家们头疼的问题:精简前端人力,会员的沉淀等,二者的痛点在于:人

13、力和租金占了开店成本的大头,但削减人力却又会导致服务质量的降低皆可由微信点餐plus公众号解决,可做到削减前端人力,提高顾客点餐自主性。本项目以微信公众号作为引流工具,加上目前流行的springboot框架开发的点餐系统,以直观、高效、便捷的优点进行研究开发。1.5 项目设计思路本系统采用时下流行的SpringBoot作为技术栈进行系统开发,IDE选用IntelliJ IDEA ,以MySQL、Redis作为数据库,用Nginx代理。买家端主要功能有:商品展示,购物车,下单支付,取消订单,订单详情;卖家端主要功能有:商品管理,商品类目管理,订单管理。35第二章 综述及相关技术分析2.1 微信和

14、微信公众号简介微信(WeChat)是由腾讯集团在2011年推出的一个移动智能终端APP,属于免费即时通讯旗下业务。微信主要功能类似腾讯QQ,同样支持用少量网络流量发送语音信息、文件、图片和视频,并且它是跨操作系统、通信运营商的,却又不像腾讯QQ那样臃肿繁杂。还可使用其他的内置社交服务插件来共享内筒资料,甚至确切位置。这些插件包括但不限于朋友圈、微信公众平台,在这之中有一衍生服务(主要用于一对多媒体活动行为)微信公众平台(通常简称公众号)。它支持使用公众账号来进行自媒体活动,普遍用于各类商家在其基础上进行二次开发来展示自家官网,以及商家提供的各类衍生服务功能组件,近年来在线上线下的互动营销中微信

15、公众号营销已可称得上是独占鳌头。微信公众平台的特性:1信息推广活动成本低廉:轻松对接任何系统,支持富媒体交互(包括但不限于图片、音视频),随时随地交互,只需一个步骤登录微信,系统即可获取确切的时间、位置,可做到比较高的信息传达率。2前端后端比重分明:微信公众平台的产品问世时即要面对庞大的用户群体(亿级用户),因而用户直接能体验交互的前端,以及保证体验的后端,公众号使二者比重分明3用户干扰低:a)公众号的可信力高,用户接受度较高(类比微博大V);b)不会产生巨量的爆炸性信息,信息传播方式的环境较为私密;c)自由度高,用户选择功能自主,功能设置细致;4简单的加入方式:加入免费,按照相关步骤进行申请

16、即可5生活服务相关产品的沃土:a) 政府机关、机构、团体、电子商务、兴趣分享等;b) Online To Offline;2.2 SpringBoot简介要说SpringBoot,首先要从Spring框架说起。框架(framework)通常指的是一个半成品,可以在框架的基础上进行加工,实现自己想要的功能或效果,对于编程而言,框架则是对基础代码进行封装,对外提供一系列相应的API供开发者调用,其目的是为了让开发者更简便的使用它进行业务代码开发。Spring框架就是其中之一,它为Java语言服务,是开源的J2EE应用程序框架。主要核心特性有容器、控制反转(IOC)和AOP,这些特性旨在方便维护和测

17、试项目,可利用核心特性控制反转,以及其实现方式依赖注入来实现管理对象的生命周期容器化;而面向切面编程(AOP)则可用于声明式的事务管理,从而达到整合各种市面上常用的持久化管理数据访问的目的,还有众多优秀的Web框架提供,以上各种均为开发者提供了诸多开发上的问题的解决方案。这些还不足以了解SpringBoot,接下来还得谈谈Spring更常见的一些特性和优点。Spring框架通过容器管理对象的生命周期,方式为扫描XML文件亦或是特定的Java注解,用来配置对象,底层原理是利用了Java的反射机制,做到对对象的统一配置和管理,开发人员则可通过DI(Dependency Injection)或依赖查

18、找来获得对象。另一大特性是面向切面编程框架,AOP框架从整体出发更关注的是模块之间的重叠部分,并对其进行模块化,Spring的AOP框架可在运行时配置的,主要基于代理模式,但无法跟AspectJ框架比拟,仅提供基本的AOP特性,但Spring框架的可集成性很强,可通过配置集成多种事务模板(事务框架还集成了消息传递和缓存等功能),通过与AspectJ框架的集成,也足以应付基本需求。通过AOP技术,Spring实现了事务管理、远程访问等功能。事务管理给了Java平台一种抽象机制,可以让本地同全局以及嵌套事务与保存点一同工作,甚至于能让其能够在Java平台的任何环境下工作。谈到Spring事务管理,

19、还有一个与之相关的则是Spring的DataAccess框架,它不仅对主流的JDBC、JDO、MyBatis、Hibernate数据框架等提供了支持,还可进行更灵活的抽象数据访问。为开发者解决了程序中使用数据库时的常见问题。基本上Spring框架的特性都在上文阐述了,接下来谈谈SpringBoot。2014年,一种基于Spring的全新框架,SpringBoot的第一个版本问世。Pivotal团队设计其的目的是为了解决原生Spring配置越来越多,越来越臃肿的问题,在Spring的基础上去繁取简,不再需要重复定义样板化的配置,使用了更特定的方式配置。简单方便,使得SpringBoot以称得上是

20、极快的速度占领了快速应用开发领域(rapid application development)。表2.1 SpringBoot的优势可快速的构建项目无配置集成主流开发框架减少开发,测试时间和努力提供运行时的应用监控使用JavaConfig有助于避免使用XML避免大量的Maven导入和各种版本冲突项目无需依赖外部Servlet 容器即可独立运行提高了开发、部署效率综上,使用SpringBoot技术快速构建开发系统是目前Wed开发人员的主流选择亦是我的最佳选择。2.3 MySQL简介数据库(Database)系统,一般分为关系型数据库、非关系型(NoSQL)数据库。主流数据库有MySQL、SQLS

21、erver、Oracle、Redis等,这里谈到的MySQL数据库属于关系型(Relational database),而下文提到的Redis则是非关系型数据库。MySQLAB公司开发的MySQL目前属于Oracle旗下。它是小型数据库服务器,以多用户多线程的C/S模式实现。越来越多的企业因为其功能的不断完善、性能的提高,更重要的是开源免费的优势,投入其宽阔的怀抱,放弃使用收费的Oracle。跨平台似乎是很多软件或系统都将其作为一个宣传点的,恰巧MySQL也是这么个系统,Windows、MacOS、Linux等均可使用它,加上它的使用方便快捷,SQL命令也普遍为大众熟悉,再加上与钱有关的一个优

22、势,开源免费,运营成本低,使得使用MySQL作为首选数据库的公司日益增多。刚诞生的MySQL功能简单,甚至只能进行一些非常简单的结构化数据访问操作,而后经过多年的改良、修复,目前它已拥有商用数据库管理系统需要的大部分功能。好的软件,好的系统都懂得去繁取简,它在满足SQL92的大多数标准的同时,又摒弃了其中一些较少为人使用的标准。从相关的测试套件的测试报告中,我们可以得到的信息是,在事务支持方面,MySQL自身的存储引擎不可用,但四个事务隔离级别(Transaction isolation level)可通过存储引擎InnoDB这个第三方来实现。虽然每个引擎都有其不同的实现过程,甚至有的数据库还

23、不足以实现全部级别的事务隔离,但是MySQL数据库还是不能跟其他收费商用数据库并驾齐驱的。这一点在可编程实现上比较突出,最新版本的MySQL虽然也开始提供一些简单的(例如过程、函数、触发器)可编程支持,但跟其他财大气粗的数据库相比,还是小巫见大巫了。功能有限,总体存在不足,MySQL只能说在专业方面差强人意。话是这么说,但在总体上还是瑕不掩瑜的,正如没有什么软件是绝对完美的一样,也不会有任何数据库敢声称自己是最完美的数据库系统。它提供的功能以及服务既然足以应付我们的一般业务需求,且有着自己的优势,我们又何必过于苛刻的追求其他不怎么常用的功能呢。每个产品都有自己的目标受众,数据库系统也不例外,选

24、择MySQL足矣。2.4 Java语言简介Java相信大部分人都不会陌生,你可能在智能手机之前的功能机上见过这么个像一杯咖啡图案,那即是Java语言编写的一些应用软件。Sun公司的詹姆斯高斯林等人于1991年构想设计了一门语言,该门语言即为Java。从技术的设计到原始编译器和虚拟机,均由Sun研究院院士高斯林参与,故后人一般公认其为Java之父。Java还有个轶事,据说当初命名时是想根据Gosling家门口的橡树而取名OAK的,但因发现其已被注册使用,后确定为现在的名字,并于1995年正式发布。Java语言诞生前,程序开发者们苦C语言久矣,因为既要学习指针的知识,又要学习如何管理内存,所以后来

25、在设计Java的时候,初衷就是有着那么一点奔着改良C语言的方向去的,语法类似,不用管指针、内存,了解Java的人都知道这么一句话Write once, Run anywhere(编写一次,处处运行),具备真正的可移植性;而且还是类型安全、面向对象的,并且还得有其他比如拥有高质量类库等的优势。当然还得谈谈现在已经不是什么太大亮点的亮点了跨平台,跟上文提到的差不多,该语言编写的程序亦可跨系统平台,能在任意设备上运行。Java也称得上是非常有雄心壮志的,它想占据3大领域,其中之一也包含网页。在它刚诞生的年代,1995年到处充斥着简单而粗糙并缺乏互动性的网页,Java察觉到了这一点,并在浏览器中设计了

26、一个小插件,也就是后来的图形界面(Applet),并放上了Java的运行环境。让它适应了Internet环境和企业网络,这也使得后来Java在Internet环境中具有强大的影响力并且是最受欢迎的语言之一。另一方面苦于在消费电子产品中遇到的瓶颈时,设计团队的成员发现创建的代码中也出现了嵌入式控制器常遇的可移植性问题,最后Java的重点则转向了互联网。Java语言与目前常用的C+相比简洁很多,有较高的安全性,取其精华去其繁杂。越来越多的开发人员选择了它,他们基于该语言开发了海量的平台,系统以及工具,例如:Ant、Maven、Jekins、Tomcat、Spring、Eclipse等等,后来200

27、6年,Hadoop的问世,更让Java在大数据领域有了一席之地。相比Ruby,python等语言,Java更适合开发复杂的服务器端程序,目前选择Java作为web程序开发语言仍是大部分程序员的首选,凭借着其强大的功能、相关支持以及顽强的生命力,选择Java无疑是很正确的。2.5 Redis简介与上文提到的MySQL不同,Redis则是非关系数据库。NoSQL比较被大家接受的一种说法是Not Only SQL,也就是不仅仅是SQL,区别于SQL,有易拓展的优势。虽说NoSQL仅仅是一种概念,但也有如下表所列的共同观点表2.2 NoSQL常见观点不使用关系模型在集群上运行良好主要是开源的适合构建2

28、1世纪Web应用非模式化多种范式的持久化机制也是受NoSQL影响的结果之一。Redis全称Remote Dictionary Server翻译过来就是远程字典服务器,它是一种高性能键值对数据库系统,包含String, list,Map, sets和sorted sets等类型,支持分布式,并支持持久化,又因为它的数据是运行在内存上的所以它还是速度很快的数据结构服务器。是一款开源免费的C语言编写的数据库,广泛应用于缓存方面。由于它支持分布式,所以更适合现在的业务环境,支持分布式缓存,各个实例共用一份具有缓存一致性额缓存。除了这里提到的一点皮毛,目前的Redis已经非常强大,各种平台各种系统中都有

29、它的身影,所以本系统也使用其作为缓存数据库。2.6 本章小结本章主要介绍了微信、微信公众号、SpringBoot技术的优势还有为什么选择使用Java语言,也对所用到的两种数据库系统MySQL和Redis进行了简单的阐述,以及通过分析系统功能以及市场形势和环境,对比了其他的数据库后作出的选择。第三章 系统需求分析3.1 可行性分析随着互联网的发展,外卖点餐占餐饮行业的市场份额不断提高以及移动智能终端越来越普及和我国的网络条件也不断提升从3G、4G到现在的5G,中国早已进入高速上网时代,这些种种迹象都展示开发微信点餐系统是可行的。微信点餐系统是使用Java语言、SpringBoot技术栈、MySQ

30、L、Redis作为数据库。从技术上来说可以达到该项目的绝大多数功能需求。本项目是基于微信公众平台,有平台的支持,减少了系统开发的成本,不需要额外的花费,所以在经济上也是可行的。3.2 总体需求分析本系统是C/S的,买家端入口可从微信公众号进入,因而没有特别的硬件制约,只要能运行微信基本都可以进入系统,不会受到类似独立APP的诸多问题。卖家端也仅仅是从浏览器进入后台管理系统,所以在开发功能需求上考虑便捷性就比较重要了。除此之外,布局设计需要合理简洁,从而做到操作清晰简洁,易上手。综上,我对本系统可能用到的功能或目标制成了下表表3.1 系统需求表简洁合理的布局,看上去要清晰,系统交互方式要合理,提

31、供一个优质的系统界面系统需要稳定,在程序的运行过程中要做到保证数据的安全性和稳定性,必要时做好备份并保持数据库的同步系统的安全性,使用该系统的用户数据应该得到应有的保障,避免泄露或丢失3.3 系统功能需求分析本系统需要实现一个基于微信公众号的外卖点餐系统,它分为两个用户:买家和卖家。卖家端可以在网站后台进行商品添加、删除、修改、上下架等基本操作;买家端可以通过微信端登录系统平台进行点餐下单操作。具体功能描述如下:卖家:商品管理:上下架、修改商品商品类目管理:添加修改商品类目订单管理:完结、取消订单买家:商品展示:查看商品列表详情购物车:查看已选购的商品下单支付取消订单订单详情:用户可查看详细的

32、订单信息3.3.1 系统功能结构图根据功能需求分析,得到本系统功能如下图所示:图3.1系统结构功能图3.4 本章小结现在这个时代是万物互联的时代,高度发达的信息社会中,智能终端已经无所不在,各个行业都渗入了互联网技术,手机已经成为人们不可或缺的物品,几乎人人都在使用手机。此微信外卖点餐系统,功能由Java代码实现。只需稍微阅读说明后,系统的维护人员就可以清楚地了解系统的功能。需求分析跟产品质量和用户体验挂钩,开发的基本条件也是基于需求分析来说的,因此它的重要性不言而喻,一个完整、准确、清晰且具体的需求分析可以决定整个项目的成败存亡。换句话说,一个好的系统离不开好的需求分析。所以需求分析的手段至

33、关重要。第四章 系统的设计与实现4.1 系统功能模块的设计与实现4.1.1 登录功能的设计与实现(1)本系统并不提供注册功能,在本系统的登录模块中分为买家端登录和卖家端登录,买家端是移动端的微信登录,卖家端则是PC端的网页登录,二者都是微信登录,区别在于买家端通过微信公众号入口登录是调用了微信API做到了网页授权静默登录;卖家端则在网页使用扫码登录。买家端登录:因为是静默授权登录所以没有登录界面展示卖家端登录界面如下图:图4.1卖家端登录页面图4.2 卖家登录代码4.1.2 点餐功能模块的设计与实现买家用户进入系统后,可以看到商家上架的商品信息,浏览商品相关信息,点击商品旁边的+号按钮加入结算

34、清单,选择完成后点击支付跳转填写相关信息后即可下单。思路:下单时购物车商品价格进行相关运算,前端将表单信息传入后端,之后进行入库操作图4.3商家首页图4.4 买家订单代码4.1.3 下单信息功能模块的设计与实现此页面为买家用户功能,下单结算前填写必要的信息方可完成下单。界面如下图:图4.5 下单信息页面4.1.4 取消订单功能模块的设计与实现此页面为买家用户功能,买家下单一定时间内,订单状态可以改变,即此时可以取消订单,设计思路:给每个新下单的订单一个默认的订单状态,只要处于这个状态的订单都可进行取消订单的操作。界面如下图:图4.6 取消订单页面图4.7 取消订单代码4.2 卖家后台的设计与实

35、现4.2.1 卖家后台登录卖家通过扫码登录后台管理系统,后台管理操作包含订单管理、商品类目管理、商品管理,设计思路:卖家端扫码后,后台读取卖家openid,然后与Redis数据库中的数据进行比对,认证通过后即可登录成功,主界面如下图:图4.8 卖家端后台主页面图4.9 卖家订单代码4.2.2 商品管理此页面为卖家后台管理功能,卖家可以对商品进行增删改操作以及上下架管理,思路为:网页表单操作与后台数据库的交互,当在后台进行数据操作的时候则客户端对应模块数据也进行操作。界面如下图:图4.10 商品管理页面图4.11 商品管理相关代码4.2.3 商品类目管理此页面为卖家后台管理功能,主要实现对商品类

36、目的添加、删除和修改功能,可以添加、修改或删除商品所属的类目。界面如下图:图4.12 商品类目管理页面图4.13 商品类目管理相关代码4.2.4 订单管理此页面为卖家后台管理功能,主要为实现卖家对用户订单的查看、修改订单状态等功能,即可以查看历史订单以及可修改订单的有关状态信息。界面如下图:图4.14 订单管理页面图4.15 订单管理列表代码4.3 本章小结本章提到了买家端、卖家端不同的登录功能以及其他功能模块的具体设计和代码实现,还有相关的页面效果展示。第五章 数据库设计5.1 数据库的设计一个系统最重要的是它的数据库,设计初期就得考虑的问题之一就是数据库设计能否根据需求分析以及应用环境来构

37、造合适的数据库,就是Database Design需要考虑的首要问题,要能高效存取读写数据,满足用户日常需求,是一个数据库设计所要解决的两大问题。在此需要用到的一种叫做实体联系图的模型,即E-R图,在画好此图的基础上来进行后续的优化。为此本系统所给出的实体有商品、商品类目、订单、订单详情、卖家信息。主要实体的实体属性图描述如下:图5.1订单详情E-R图图5.2商品E-R图图5.3商品类目E-R图图5.4订单E-R图图5.5卖家信息E-R图图5.6整体E-R图5.2 数据库表的设计公众号外卖点餐系统数据库表的设计主要有:商品类目表、商品表、订单表、订单详情表、卖家信息表。表5.1商品表列名数据类

38、型主键外键允许空category_idInt(10)是否category_namevarchar(64)否category_typeInt(10)否create_timetimestampupdate_timetimestamp表5.2商品表列名数据类型主键外键允许空product_idvarchar(32)是否product_namevarchar(64)否product_pricedecimal(8,2)否product_stockInt否product_descriptionvarchar(64)product_iconvarchar(512)product_statustinyint(

39、3)否category_typeInt否create_timetimestampupdate_timetimestamp表5.3订单表列名数据类型主键外键允许空order_idvarchar(32)是否buyer_namevarchar(32)否buyer_phonevarchar(32)否buyer_addressvarchar(128)否buyer_openidvarchar(64)是否order_amountdecimal(8,2)否order_statustinyint(3)否pay_statustinyint(3)否create_timetimestamp否update_timeti

40、mestamp否表5.4订单详情表列名数据类型主键外键允许空detail_idvarchar(32)是否order_idvarchar(32)是否product_idvarchar(32)否product_namevarchar(64)否product_pricedecimal(8,2)否product_quantityInt否product_iconvarchar(512)create_timetimestamp否update_timetimestamp否表5.5卖家表列名数据类型主键外键允许空idvarchar(32)是否usernamevarchar(32)否passwordvarcha

41、r(32)否openidvarchar(64)否create_timetimestamp否update_timetimestamp否第六章 系统测试前面的工作都做好之后,就该到最后的一步了。虽说是最后一步,也不可轻易对待。以前很多人认为软件测试无关紧要,这种观念是非常错误的,一个完整的系统开发流程,任何环节都缺一不可,软件测试也是如此。所谓软件测试,其实就是用某些特定的手段来测定整个被测系统或功能的一个过程。但这种手段要有计划有组织的进行,可以是人工也可以是使用其他辅助工具自动测定。要能够做到检查实际效果与预期结果的区别,从而发现在某些情况下由某些操作而引发的系统程序错误,进而根据得到的反馈来

42、改正、消灭bug,最终确保以及提高软件的质量,使产品趋向于完美。如果没有经过仔细严谨的软件测试就将产品发布上线,这对于用户和开发方来说都将会带来无比严重恶劣的后果。因此,必须在产品上线前就对其进行细致有序的软件测试。6.1 软件测试的目的了解了什么是软件测试之后,便可以开展具体的测试工作了。但是,还有一点需要明确的就是,我们必须围绕着证明软件存在缺陷,并且无法证明软件没有缺陷的目的展开测试。要做到对症下药,针对系统各项功能的各项操作,进行详尽的实际应用场景下的各种假设,就要做到尽可能的对软件的各个功能进行不同场景下的不同操作,来找出软件中可能存在的、目前未被发现的bug或缺陷,要分时分片进行测

43、试,避免少测漏测,降低各类风险。要时刻记着,一个没有错误的系统是不存在的,也是不完美的,不该因为没有错误而高兴。因为测试的目的就是为了给予用户更好的操作体验。软件测试的目的主要有下表中的几点:表6.1 软件测试目的(1)更好的帮助开发者发现并分析问题(2)发现缺陷(具体指用户需求与被测对象两者的差异)(3)使软件更可靠,用户体验更好(4)发现并解决缺陷,提高软件质量以及用户对软件的信心(5)积累经验,减少缺陷的出现,降低风险(6)最终目的是使软件各项功能都正常并确保正确有效地运行应用程序。6.2 测试方法为了确保微信公众号点餐系统的功能能够顺利运行,我选择使用较为常用的单元测试来作为此次的测试

44、方法。每开发完一个业务功能,就对其进行相关单元测试,尽可能的模块化各项功能,减少耦合,避免影响最终结果。这样做的好处是,更能快速的知道那个业务功能出了问题,并及时进行完善,减轻了后期开发的工程量。各项功能的单元测试做好之后,就应从头开始,一步一步的对整体的系统流程功能进行相关测试。如有异常,及时记录并进行分析改善,或许有些异常没有体现在交互界面上,我们也应从后台日志中寻找、定位相关错误,并对其反馈来优化整个系统。6.3 测试案例(1)交互界面:第一,本系统的是基于微信平台的,所以系统入口可以公众号功能菜单,也可以在微信上打开系统网址。第二,交易,本系统使用了微信支付的H5支付功能,系统发布者自

45、行去微信官方注册申请微信支付账号。(2)后台管理与用户界面的关联:这是买家端与卖家管理后台之间的交互,需要能够进行数据操作,在测试时,要通过在后台增删改数据然后观察买家微信端,换句话说,就是检查前端界面跟后端数据库相关的操作是否存在差异,数据是否如期望那样变化。(3)功能测试:对系统的各个功能进行完整的测试(4)商品信息:在卖家后台管理测试在后台添加商品,买家端是否正确显示刚才添加的信息,测试结果如下图:图6.1添加商品图6.2成功添加(5)商品类目管理:添加或修改商品类目买家端是否正确显示对应信息,测试如下图: 图6.3商品类目修改图6.4修改成功(6)下单:买家下订单,后台是否收到订单,测

46、试如下图: 图6.5下订单图6.6成功接收订单(7)完结订单:卖家在后台完结订单,订单状态是否改变,测试如下图:图6.7完结订单图6.8订单状态成功改变图6.9后台订单信息6.4 本章小结这一章是系统开发过程的最后一章,了解软件测试后,实际地进行相关的测试,从而体会软件测试人员在整个开发流程中的责任与感受。并就此流程对公众号点餐系统的整体性能有了一定的了解,也进行了相关的改动。第七章 结论时代在变化,移动智能终端在互联网领域的占比越来越大,人人都通过网络互连,改变了人们的生活习惯。本次毕业设计基本上实现了微信点餐系统的主要功能,其中包括:买家登录浏览商品,选择商品下单,取消订单;卖家商品增删改

47、上下架管理,商品类目管理,订单管理,PC端与手机微信端的交互,整个系统更好的完成了管理功能。从选题开题到系统完成,期间遇到了大大小小的不少问题,也让我意识到:我这大学四年的时光里所学的系统知识,在当初看来是零零散散、五花八门的知识点,在此次毕业设计中得到了十分充分的串联,当初打下的基础,成为了我在这次设计中的强有力辅助。除了学校所学课程的基础知识,还有自己在课余时间学到的各种主流知识的运用,使得我对本专业、本行业所用的技术有了更好的理解,Java基础、技术框架、MySQL、Redis、Nginx、Linux等等,越是学习,越能感觉到自己知识的匮乏,因而在系统开发中期遇到的各类bug都让我为之一振。系统测试,单元测试的过程中,自己思考程序运行步骤,在适当的代码行打上断点,逐步调试,解决问题。项目上线运行,出了问题也是去浏览学习相关知识来解决明显的问题。书籍,同学,朋友,老师,无不给了我有力的帮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论