摘 要
随着移动互联网技术的不断发展,微信小程序因其轻量、便捷的特点,逐渐成为人们日常生活中重要的应用工具之一。在校园餐饮服务领域,基于微信小程序的订餐系统能够有效提升用户体验、优化餐厅管理流程。本文基于SpringBoot框架、Java语言、MySQL数据库和微信小程序技术,设计并实现了一个校园餐厅订餐系统。该系统旨在为校园师生提供便捷、高效的订餐服务,同时为餐厅管理者提供强大的后台管理功能。
本系统根据用户角色的不同,分为三类:普通用户、商家用户和管理员。普通用户可通过微信小程序实现快速登录、浏览菜单、在线下单、支付以及查看订单状态等功能;商家用户则可以通过后台管理系统管理美食商城、处理订单并进行配送;管理员则负责系统用户管理、在线反馈、公告发布、资源管理等后台运营管理。系统采用了SpringBoot框架进行后端开发,Java语言编写核心业务逻辑,MySQL数据库负责数据存储与管理,微信小程序作为前端交互平台,确保系统的高效性与稳定性。
通过对系统的设计与实现,本文解决了传统校园餐饮服务中存在的诸多问题,如排队、信息不对称、订单管理混乱等,提升了用户的订餐体验,并帮助餐厅管理者优化了运营流程。系统实现了高效的数据交互与管理,支持多用户角色的不同操作需求,且具有良好的扩展性和可维护性。
最后,本文还对系统进行了性能测试与优化,确保其在高并发情况下的稳定运行。总体来说,本系统为校园餐饮行业提供了一种全新的解决方案,为实现智慧校园、提升餐饮服务质量提供了技术支持。
关键词:微信小程序;校园餐厅;订餐系统;SpringBoot;Java;MySQL;系统设计与实现
Abstract
With the continuous development of mobile Internet technology, WeChat applet has gradually become one of the important application tools in people's daily life due to its lightweight and convenient characteristics. In the field of campus catering services, a ordering system based on WeChat mini programs can effectively improve user experience and optimize restaurant management processes. This article designs and implements a campus restaurant ordering system based on the SpringBoot framework, Java language, MySQL database, and WeChat mini program technology. The system aims to provide convenient and efficient ordering services for campus teachers and students, while also providing powerful backend management functions for restaurant managers.
This system is divided into three categories based on user roles: regular users, merchant users, and administrators. Ordinary users can quickly log in, browse menus, place orders online, make payments, and view order status through WeChat mini programs; Merchant users can manage the food mall, process orders, and deliver through the backend management system; Administrators are responsible for system user management, online feedback, announcement publishing, resource management, and other backend operations and management. The system adopts the SpringBoot framework for backend development, with core business logic written in Java language, MySQL database responsible for data storage and management, and WeChat mini program as the front-end interaction platform to ensure the efficiency and stability of the system.
Through the design and implementation of the system, this article solves many problems in traditional campus catering services, such as queuing, information asymmetry, and chaotic order management, improving the ordering experience for users and helping restaurant managers optimize operational processes. The system achieves efficient data exchange and management, supports different operational needs of multiple user roles, and has good scalability and maintainability.
Finally, this article also conducted performance testing and optimization on the system to ensure its stable operation under high concurrency conditions. Overall, this system provides a new solution for the campus catering industry, offering technical support for achieving a smart campus and improving the quality of catering services.
Keywords: WeChat Mini Program; Campus cafeteria; Ordering system; SpringBoot; Java;MySQL;System Design and Implementation
目录
第一章 绪 论
1.1选题背景和意义
随着信息技术的不断发展,特别是移动互联网的普及,基于微信小程序的应用逐渐成为人们日常生活中不可或缺的一部分。在校园餐饮服务领域,传统的餐饮订餐模式存在着排队、信息不对称、订单管理混乱等问题,极大地影响了师生的就餐体验及餐厅的运营效率。为了满足师生对于便捷、高效的餐饮服务需求,设计并实现一套基于微信小程序的校园餐厅订餐系统显得尤为重要。通过将微信小程序、SpringBoot框架、Java语言和MySQL数据库技术相结合,该系统能够提供便捷的订餐平台,同时为餐厅提供强大的后台管理功能,实现用户与商家之间的高效互动。
随着智慧校园的逐步推进,数字化餐饮服务已经成为提高校园生活质量的关键环节。微信小程序作为一种轻便、易用的开发框架,能够高效地实现餐饮服务的数字化管理,减少传统订餐模式中的繁琐环节,为校园师生提供更加便捷的就餐体验。通过该系统,用户可以实现快速登录、在线点餐、支付和查看订单状态等功能,商家则能够高效管理商品、订单、配送等,管理员则负责平台的整体运营管理。通过这种方式,系统不仅解决了传统校园餐饮服务中存在的诸多问题,还大大提高了餐厅的运营效率,优化了资源分配,推动了校园餐饮行业的现代化。
从技术层面来看,SpringBoot框架为系统的后端开发提供了高效、稳定的支持,Java语言确保了业务逻辑的清晰和高效,MySQL数据库为系统的数据存储和管理提供了强大的能力。而微信小程序作为前端平台,凭借其便捷的访问方式,能够确保系统的高效性和稳定性。通过集成这些技术,系统不仅满足了校园餐饮服务中多样化的需求,还为其他领域的智能服务提供了可借鉴的经验。
因此,基于微信小程序的校园餐厅订餐系统的设计与实现具有重要的理论和实际意义。它不仅推动了校园餐饮行业的数字化转型,也为智慧校园建设提供了有效的技术支持,具有较高的应用前景和广泛的推广价值。
1.2国内外研究现状
在国内,研究者们提出了多种基于微信小程序的校园餐厅订餐系统设计方案,包括系统架构、数据库设计、用户认证等方面。2017年,王咏佳在《校园订餐系统的设计与实现》以ZendStudio作为集成开发环境,通过PHP语言和MYSQL数据库的组合来构建一个基于B/S结构的校园订餐系统。系统实现了餐馆列表、网站公告、帮助中心、WAP服务、网站介绍和后台管理等功能模块,其中通过实现清新简洁的前台页面来保证顾客在浏览菜品网页时有一个好心情,在此基础上,本体统通过实现清晰明确的餐馆列表页面来满足顾客自由选择想光顾餐馆的需求,通过实现网站公告功能来满足顾客了解最新菜品和餐饮资讯的要求,通过实现WAP服务功能,为顾客提供随时随地就可进行订餐的功能,从而满足了顾客通过手机短信的方式就能够享受到订餐服务的需求。2020年,余丽娜在《微信小程序订餐系统设计与实现》中提到是微信小程序相较于传统APP是无需下载的,打开微信直接就可以使用,节省了极大地空间,给用户带来了极大的方便;二是借助于微信这个流量巨大的平台使得小程序的推广更加容易。该系统实现了小程序前台商家的展示、用户的点餐、下单和管理员后台网页的开发。
国外的信息化研究早在 20 世纪 60 年代就已经开始了,一些国家通过采用信息化技术已经推出了适合自己国情的订餐系统,实现了用餐的智能销售。2022年 Yu Yang在《Design and Implementation of Online Food Ordering System Based on Springcloud》中提到由于疫情严重,国内大部分生活小区已关闭,给居民生活带来极大不便。基于这样的社会背景,一个在线订餐系统就显得尤为重要,它不仅可以满足不同居民的就餐需求,而且可以准确判断食材的用量,避免浪费。系统采用前后端分离的开发模式,前端采用当前流行的vue.js框架技术,后端采用springcloud微服务架构,提供四种服务:账户服务、菜单服务、订单服务、用户服务,利用feign技术完成服务负载均衡,不仅可以扩大服务范围,而且还可以提高工作效率。
1.3研究内容
开发和实施基于微信小程序的校园餐厅订餐系统,需要完成以下任务:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)在系统ACK完成之后,我们将根据系统开发的要求,选择JAVA技术来构建基于微信小程序的校园餐厅订餐系统,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,我们还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。
(3)在基于微信小程序的校园餐厅订餐系统中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、商家和用户角色,每个角色都有其独特的特点,而且每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,用户可以随时根据自身的需求查看美食商城,而系统的工作人员则可以根据自身的职责,处理和操作在线信息。管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。
(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,我们会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。
第二章 开发工具及关键技术介绍
2.1微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。
根据用户的需求,我们将采用不同的屏幕大小来制作小程序。
在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,我们可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2小程序框架以及目录结构介绍
这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。
2.3 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。
JAVA语言功能:
面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。
Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。
C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。
2.4 Mysql数据库
数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。
在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。
2.5 Springboot框架
Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,我们可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。
第三章 系统分析
3.1可行性分析
通过综合考虑经济、操作、技术等因素,可以对基于微信小程序的校园餐厅订餐系统的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。
3.1.1经济可行性分析
考虑到Springboot、小程序及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升基于微信小程序的校园餐厅订餐系统的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
3.1.2操作可行性分析
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
3.1.3技术可行性分析
从技术方面来说,基于微信小程序的校园餐厅订餐系统的设计与实现也是可行的。Spring Boot是一种流行的Java框架,提供了强大的开发支持。小程序是一种流行的移动应用开发平台,提供了便捷的开发和部署支持。MySQL是一种流行的关系型数据库管理系统,提供了强大的数据存储和管理支持。通过使用这些技术,基于微信小程序的校园餐厅订餐系统可以实现高效、安全、可靠的管理功能。
3.2功能需求分析
本论文设计并实现了一款基于微信小程序的校园餐厅订餐系统,系统分为三个主要用户角色:普通用户、商家用户和管理员,每个用户角色具有不同的功能需求和权限。以下是对各角色功能的详细分析:
1.普通用户功能分析
普通用户主要是系统的终端用户,他们通过微信小程序进行订餐、查看信息和进行互动。普通用户的主要功能包括:
登录注册:用户可以通过微信小程序进行注册、登录,系统支持通过微信授权登录,用户可使用微信账号直接登录系统,减少繁琐的注册过程。
推荐:系统会根据用户的历史订单、收藏的菜品及其他用户行为,推荐相关菜品和餐厅。
在线反馈:用户可以对餐厅的服务、菜品质量或系统体验进行在线反馈,意见可以直接提交给商家或管理员。
美食商城:用户可以浏览和购买校园餐厅的美食、饮品、零食等商品,系统提供菜单展示、商品详情、价格及促销信息。
购物车:用户选择商品后可以加入购物车,购物车功能支持查看已选商品、修改商品数量、删除商品等。
新闻资讯:用户可以查看与餐厅、校园相关的新闻资讯,了解最新的活动信息、优惠政策等。
网站公告:用户可以查看平台发布的各类公告,如促销活动、餐厅特别通知等。
我的:包括用户的基本信息管理、历史订单查询、收货地址管理、收藏夹、评论、订单配送等功能。
基本信息:用户可以查看和修改个人信息,如姓名、联系方式等。
我的订单:查看自己历史和当前的订单状态。
收货地址:管理配送地址,方便后续订餐时选择。
收藏:用户可以收藏喜爱的餐品或餐厅,方便下次快速订购。
评论:用户可以对已完成的订单进行评价,提供反馈信息。
订单配送:查看订单的配送状态,实时跟踪订单进展。
功能目标:提升用户管理个人信息的便捷性,增加用户的互动性和参与感。
2.商家用户功能分析
商家用户主要是校园餐厅的经营方,通过后台管理系统来管理餐厅和订单。商家用户的功能包括:
后台首页:商家用户通过后台首页查看餐厅的实时数据,包括销售状况、订单数、顾客评价等信息,帮助商家做出经营决策。
商城管理:商家可以管理自己的美食商城,包括商品的添加、删除、修改,设置商品的分类,查看和处理订单。
美食商城:管理餐厅提供的菜品、饮品等商品,设置价格、库存等信息。
分类列表:商家可以对商品进行分类管理,方便用户浏览。
订单列表:商家查看用户下单的历史订单,处理订单的发货与配送。
订单配送:商家可以查看订单配送状态,确保订单按时送达客户。
3.管理员功能分析
管理员的功能主要是负责平台的整体管理,包括用户管理、内容管理、权限管理等。管理员的功能包括:
后台首页:管理员通过后台首页查看平台的整体运营情况,包括活跃用户数、订单数量、收入等数据,提供数据分析与决策支持。
系统用户管理:管理员可以管理系统的用户账户,包括普通用户和商家用户的管理。管理员可以对用户进行禁用、删除等操作。
在线反馈管理:管理员可以查看用户的反馈信息,及时回复并解决用户的问题。
轮播图管理:管理员可以设置和更新首页的轮播图,展示平台的最新活动、优惠信息等。
网站公告管理:管理员可以发布或更新网站公告,通知用户平台的最新动态、活动和其他重要信息。
资源管理:管理员可以管理新闻资讯、资讯分类等资源,保证平台信息的更新与分类管理。
新闻资讯:发布校园餐厅相关的新闻,更新餐厅活动和优惠信息。
资讯分类:对新闻资讯进行分类管理,便于用户查找。
商城管理:管理员可以对商家的美食商城进行管理,包括商品、分类、订单等内容的监督与管理。
美食商城管理:查看和管理商家上传的菜品,确保商品信息的准确性。
分类列表管理:确保商品分类清晰,便于用户浏览。
订单列表管理:监督订单的配送情况,确保商家按时发货。
订单配送管理:管理配送进度,确保订单按时送达。
权限管理:管理员可以对不同角色的用户进行权限分配,确保每个用户只能够访问和操作自己有权限的内容。
校园餐厅订餐系统的设计充分考虑了不同用户角色的需求,针对普通用户、商家用户和管理员设计了不同的功能模块。通过微信小程序的便捷访问方式,结合SpringBoot框架和MySQL数据库的强大后端支持,系统不仅提供了高效便捷的订餐体验,还提供了完善的后台管理和数据分析功能,极大提高了餐厅运营的效率,增强了用户的满意度,推动了校园餐饮服务的数字化发展。
根据使用该系统的用户角色可以划分为普通用户、商家用户和管理员,具体如下所示。
基于微信小程序的校园餐厅订餐系统普通用户角色用例图如下所示。

图3-1 普通用户角色用例图
基于微信小程序的校园餐厅订餐系统商家用户角色用例图如下所示。

图3-2 商家用户角色用例图
基于微信小程序的校园餐厅订餐系统管理员角色用例图如下所示。

图3-3 管理员角色用例图
3.3性能需求分析
用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览美食商城、加入购物车、立即购买等操作应该迅速响应。
系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。
数据安全:用户信息、交易记录等敏感数据需要加密存储,确保数据安全性。
系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。
日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。
基于以上性能需求将确保基于微信小程序的校园餐厅订餐系统能够稳定、高效地运行,能够很好地满足用户和管理员的需求。
3.4系统流程分析
3.4.1用户注册流程图
注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图
3.4.2用户登录流程图
登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-5用户登录流程图所示。

图3-5 用户登录流程图
3.4.3业务流程图
业务流程图既反映了内部业务间的相互联系,又反映了商品交易和信息流动情况。基于微信小程序的校园餐厅订餐系统须支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对菜品交易信息自身特点和面临的现实条件,对系统进行业务流程图设计。系统通过流程的顺畅和高效,实现了在线订餐交易需求的满足和系统管理的便捷,提升了系统的运行效率和用户体验。基于微信小程序的校园餐厅订餐系统的业务流程如下图所示。
用户在线订餐流程如下图所示。

图3-6 用户在线订餐业务流程图
第四章 系统设计与实现
4.1系统总体设计思路
基于微信小程序的校园餐厅订餐系统采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图
其最终前后台交互原理如图4-2所示。
图4-2前后台交互原理
具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。
4.2系统结构设计
基于微信小程序的校园餐厅订餐系统的整体结构设计如图4-2所示。

图4-2整体功能结构设计图
4.3系统核心代码设计
基于微信小程序的校园餐厅订餐系统的核心代码设计如下:
4.3.1用户注册
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如图4-3所示。

图4-3注册核心代码图
4.3.2用户登录
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如图4-4所示。
图4-4用户登录核心代码图
4.3.3修改密码
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如图4-5所示。
图4-5修改密码核心代码图
4.3.4修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如图4-6所示。
图4-6修改数据核心代码图
4.3.5删除数据
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如图4-7所示。
图4-7删除数据核心代码图
4.3.6获取列表
通过请求的参数获取列表数据,代码如图4-8所示。
图4-8获取列表核心代码图
4.3.7图片上传
通过请求的参数获取列表数据,代码如图4-9所示。
图4-9图片上传核心代码图
4.4数据库设计
数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,我们需要明确每个元素的特征,并将它们组合在一起。
4.4.1概念设计
E-R图一般是由实体、实体的属性与联系三个要素组成的。在规划系统中所使用的数据库实体对象及实体E-R图,则需要通过对系统的需求分析、业务流程设计和系统功能结构来确定的。
总体ER图如下图所示:

图4-10数据库E-R图
4.4.3逻辑设计
1.一个实体转换后要对应一个关系。
2.所有的主键必须要定义为非空(not null)。
3.针对二元联系也应该按照一对多、弱对实、一对一和多对多等联系来定义外键。
得到数据库的关系后,设计如下表结构。
表access_token (登陆访问时长)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
| 2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
| 3 | info | text | 65535 | 0 | Y | N | ||
| 4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
| 2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
| 3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
| 4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
| 5 | address | varchar | 255 | 0 | N | N | 地址: | |
| 6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
| 2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
| 3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
| 4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
| 5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
| 9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
| 10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
| 11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
| 12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
| 13 | description | text | 65535 | 0 | Y | N | 文章描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
| 3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
| 4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
| 6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
| 7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
| 2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
| 3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
| 4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
| 5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
| 6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
| 7 | parent | varchar | 64 | 0 | Y | N | 父级菜单 | |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 16 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 17 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 19 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 20 | option | text | 65535 | 0 | Y | N | 配置: | |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
| 4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
| 8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
| 9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
| 10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
| 11 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
| 13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | ||
| 2 | token | varchar | 255 | 0 | Y | N | ||
| 3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
| 3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 6 | title | varchar | 255 | 0 | Y | N | 标题: | |
| 7 | img | varchar | 255 | 0 | Y | N | 封面: | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
| 5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
| 6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | food_mall_id | int | 10 | 0 | N | Y | 美食商城ID | |
| 2 | merchant_users | int | 10 | 0 | Y | N | 0 | 商家用户 |
| 3 | merchant_name | varchar | 64 | 0 | Y | N | 商家名称 | |
| 4 | product_specifications | varchar | 64 | 0 | Y | N | 商品规格 | |
| 5 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 6 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 7 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
| 8 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
| 9 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 10 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 11 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 12 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 13 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 14 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
| 15 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
| 16 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
| 17 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
| 18 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
| 19 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
| 20 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 21 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
| 2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
| 3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
| 4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
| 8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
| 12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
| 13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
| 14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
| 15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
| 16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
| 17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
| 20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
| 2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
| 4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
| 5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
| 6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 7 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
| 5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
| 6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
| 7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
| 8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
| 10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
| 11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
| 12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
| 14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | merchant_users_id | int | 10 | 0 | N | Y | 商家用户ID | |
| 2 | merchant_name | varchar | 64 | 0 | Y | N | 商家名称 | |
| 3 | merchant_address | varchar | 64 | 0 | Y | N | 商家地址 | |
| 4 | responsible_personnel | varchar | 64 | 0 | Y | N | 负责人员 | |
| 5 | contact_number | varchar | 16 | 0 | Y | N | 联系电话 | |
| 6 | business_license | varchar | 255 | 0 | Y | N | 营业执照 | |
| 7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
| 2 | title | varchar | 125 | 0 | N | N | 标题: | |
| 3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | online_feedback_id | int | 10 | 0 | N | Y | 在线反馈ID | |
| 2 | title_name | varchar | 64 | 0 | Y | N | 标题名称 | |
| 3 | feedback_type | varchar | 64 | 0 | Y | N | 反馈类型 | |
| 4 | feedback_to_users | int | 10 | 0 | Y | N | 0 | 反馈用户 |
| 5 | feedback_date | date | 10 | 0 | Y | N | 反馈日期 | |
| 6 | feedback_content | text | 65535 | 0 | Y | N | 反馈内容 | |
| 7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 8 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
| 3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
| 4 | title | varchar | 255 | 0 | Y | N | 商品标题: | |
| 5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
| 6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
| 7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
| 8 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
| 10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
| 11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
| 13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
| 14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
| 15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
| 16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
| 17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
| 18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 0 | Y | N | 订单备注 | |
| 24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | ordinary_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
| 2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 3 | user_age | varchar | 64 | 0 | Y | N | 用户年龄 | |
| 4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | schedule_id | smallint | 5 | 0 | N | Y | 日程ID:[0,32767] | |
| 2 | content | varchar | 255 | 0 | Y | N | 日程内容 | |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | 计划时间 | |
| 4 | user_id | int | 10 | 0 | N | N | 用户id | |
| 5 | create_time | datetime | 19 | 0 | Y | N | 创建时间 | |
| 6 | update_time | datetime | 19 | 0 | Y | N | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | 评分ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | 昵称: | |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 8 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | content | varchar | 255 | 0 | Y | N | 内容: | |
| 4 | url | varchar | 255 | 0 | Y | N | 链接: | |
| 5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
| 2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
| 3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
| 4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
| 5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
| 6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
| 7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
| 8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | int | 10 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
| 4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
| 5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
| 6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
| 8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
| 9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
| 10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
| 11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
| 13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
| 3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
| 4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
| 5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
| 9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
第五章 系统实现
5.1 登录模块的实现
在登录界面中输入用户名+密码,然后选择相应的角色,点击“登录”按钮,系统会在用户数据库表中匹配用户的帐户,如果用户名+密码正确,则会登录到系统中每个用户的主管理界面,否则会提示相应的信息,如果是忘记了密码,请返回登录界面。想要进入系统用户输入准确的姓名和密码,系统才会自动启动,并且会对用户的身份进行检查,若发现身份信息不符合要求,则会自动返回主界面,以便用户可以安全的登录使用。
系统登录界面如下图所示。

图5-1系统登录界面
5.2 普通用户功能实现
5.2.1 用户首页模块
用户登录后进入系统首页,用户可以浏览到热门美食、最新新闻资讯、商家推荐等内容。首页也可以根据用户的历史点击行为,智能推荐美食。首页如下图所示。

图5-2 首页界面
5.2.2 在线反馈模块
用户点击首页“在线反馈”按钮,可以对餐厅的服务、菜品质量或系统体验进行在线反馈,意见可以直接提交给商家或管理员,界面如下图所示。

图5-3在线反馈界面
5.2.3 新闻资讯模块
用户点击首页“新闻资讯”按钮,可以浏览有关菜品的最新资讯,可以进行点赞、收藏、评论、分享资讯,促进互动。界面如下图所示。

图5-4 新闻资讯列表界面
5.2.4 美食商城模块
用户点击首页“美食商城”按钮,会进入产品展示列表,支持通过产品名称进行搜索和筛选产品分类,用户点击可查看产品详情,包括名称、价格、库存、图片、详细描述等,用户可以进行加入购物车、立即购买、评论、收藏、咨询客服等操作,点击“加入购物车”,用户可以将选中的产品添加到购物车,方便统一结算,并可在购物车中修改商品数量或删除商品。点击“立即购买”可以跳转到订单页面,用户可以选择支付。产品展示列表界面如下图5-5所示。产品详情界面如下图5-6所示。购物车页面如下图5-7所示。订单页面如下图5-8所示。

图5-5产品展示列表界面

图5-6美食商城详情界面

图5-7购物车界面

图5-8订单详情界面
5.2.5我的模块
用户点击导航栏“我的”,可以进入个人信息页面,用户可以管理自己的基本信息、我的订单、收货地址、收藏、评论、在线反馈、订单配送。收货地址管理界面如下图5-9所示。订单配送列表如下图5-10所示。

图5-9收货地址管理界面

图5-10订单配送列表界面
5.3 商家用户功能实现
5.3.1 美食商城模块
商家用户点击导航栏“商家管理”,点击“美食商城”,商家可以管理自己的美食商城,包括商品的添加、删除、修改,还可以查看和回复用户评论。美食商城列表界面如下图5-11所示。
图5-11美食商城列表界面
5.3.2 订单配送模块
商家用户点击导航栏“商城管理”菜单,点击“订单配送”,可以修改配送状态,查看签收状态等,还可以进行查询、重置、删除等操作。界面如下图5-12所示。
图5-12订单配送界面
5.3.3 订单列表模块
商家用户点击导航栏“商城管理”菜单,点击“订单列表”可以查看和管理所有订单,支持通过订单号、商品名称等进行查询。订单列表界面如下图5-13所示。
图5-13订单列表界面
5.4 管理员功能实现
5.4.1首页界面
管理员登录系统后,将会进入系统首页,可以查看商品销售金额统计、商品销售数量统计,以便于了解销售情况。界面如下图5-14所示。
图5-14系统首页界面图
5.4.2轮播图管理界面
管理员点击“轮播图管理”菜单,可以对前台展示的轮播图进行设置,界面如下图5-15所示。
图5-15轮播图管理界面图
5.4.3系统用户界面
管理员点击“系统用户”菜单,管理员可以管理系统中的用户信息,包括普通用户和商家的信息,支持用户的增删改查操作,可以审核商家用户信息。界面如下图所示。
图5-16用户管理界面图
5.4.4在线反馈管理界面
管理员点击“在线反馈管理”这个菜单,将会显示在线反馈列表和在线反馈添加两个子菜单,点击“在线反馈列表”,管理员可以查看和审核回复用户提交的在线反馈信息。点击“在线反馈添加”,管理员可以添加新的在线反馈。在线反馈列表界面如下图5-17所示。
图5-17在线反馈列表界面图
管理员点击“网站公告管理”这个菜单,可以对系统中的公告信息进行管理,包括公告信息的增删改查等操作。网站公告管理界面如下图所示。
图5-18网站公告管理界面图
5.4.6资源管理界面
管理员点击“资源管理”菜单,管理员可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于新闻资讯模块的展示。管理员还可以对资讯进行分类和标签化,方便用户查找和使用,界面如下图所示。
图5-19资源管理界面图
第六章 系统的测试
6.1测试目的
在对该系统进行完详细设计和编码之后,就要对基于微信小程序的校园餐厅订餐系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。
6.2功能测试
本系统的主要功能就是普通用户登录后,可搜索和浏览美食商城,并可下单,管理员登录系统后台后可对美食商城进行管理,包括增改删查操作。测试设计如下所示:
用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:
表6-1 用户登录功功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证有效登录 | 1. 输入正确的用户名和密码 <br> 2. 点击登录按钮 | 显示登录成功,跳转至用户首页 | 登录成功,跳转至用户首页 | 通过 |
| TC002 | 验证空用户名登录 | 1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮 | 显示用户名不能为空提示信息 | 显示用户名不能为空提示信息 | 通过 |
| TC003 | 验证空密码登录 | 1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮 | 显示密码不能为空提示信息 | 显示密码不能为空提示信息 | 通过 |
| TC004 | 验证错误用户名登录 | 1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
| TC005 | 验证错误密码登录 | 1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
(2)美食商城模块功能测试
美食商城模块测试包括美食商城展示功能测试、美食商城添加功能测试、美食商城搜索功能测试、美食商城下单功能测试。美食商城模块测试用例如表6.2-6.5所示。
美食商城展示功能测试用例设计如下表所示:
表6-2 美食商城展示功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证正常展示美食商城 | 1. 进入美食商城展示页面 <br> 2. 浏览展示的美食商城内容 | 能够正常显示美食商城内容 | 美食商城内容正常显示 | 通过 |
| TC002 | 验证美食商城链接跳转 | 1. 进入美食商城展示页面 <br> 2. 点击美食商城链接 | 能够跳转至相应美食商城详情页面 | 成功跳转至美食商城详情页面 | 通过 |
| TC003 | 验证搜索功能 | 1. 进入美食商城展示页面 <br> 2. 使用搜索功能搜索美食商城 | 显示符合搜索条件的美食商城列表 | 显示符合搜索条件的美食商城列表 | 通过 |
| TC004 | 验证菜品分类展示 | 1. 进入美食商城展示页面 <br> 2. 选择产品分类 | 显示该分类下的美食商城列表 | 成功显示该分类下的美食商城列表 | 通过 |
| TC005 | 验证美食商城的评论功能 | 1. 进入菜品详情展示页面 <br> 2. 查看产品并发表评论 | 评论成功显示在产品页面 | 评论成功显示在产品页面 | 通过 |
| TC006 | 验证产品下单页面跳转 | 1. 进入美食商城详情展示页面 <br> 2. 点击产品下单按钮 | 能够跳转至相应产品下单页面 | 成功跳转至菜产品下单页面 | 通过 |
美食商城添加功能测试用例设计如下表所示:
表6-3 美食商城添加功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证添加美食商城 | 1. 进入美食商城添加界面 <br> 2. 输入美食商城 <br> 3. 点击添加按钮 | 美食商城成功添加到系统页面中 | 美食商城成功添加到系统页面中 | 通过 |
| TC002 | 验证美食商城菜品分类选择 | 1. 进入美食商城添加界面 <br> 2. 选择产品分类 <br> 3. 输入美食商城 <br> 4. 提交美食商城 | 根据选择的美食商城产品分类成功添加美食商城 | 根据选择的美食商城类型成功添加美食商城 | 通过 |
| TC003 | 验证美食商城内容输入 | 1. 进入美食商城添加界面 <br> 2. 输入正确美食商城内容和答案 <br> 3. 点击添加按钮 | 美食商城内容成功录入系统 | 美食商城内容成功录入系统 | 通过 |
| TC004 | 验证美食商城图片上传 | 1. 进入美食商城添加界面 <br> 2. 上传美食商城相关图片 <br> 3. 点击添加按钮 | 图片成功上传并与美食商城关联 | 图片成功上传并与美食商城关联 | 通过 |
美食商城搜索功能测试用例设计如下表所示:
表6-4 美食商城搜索功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证美食商城输入物品名称搜索 | 1. 进入美食商城搜索界面 <br> 2. 输入菜品名称 <br> 3. 确认并搜索 | 根据选择的菜品名称关键词显示相关菜品 | 根据选择的菜品品名称关键词成功显示相关菜品 | 通过 |
| TC002 | 验证美食商城输入菜品分类搜索 | 1. 进入美食商城搜索界面 <br> 2. 输入菜品分类 <br> 3. 确认并搜索 | 根据选择的菜品分类关键词显示相关菜品 | 根据选择的菜品分类关键词成功显示相关菜品 | 通过 |
| TC003 | 验证美食商城选择审核状态搜索 | 1. 进入美食商城搜索界面 <br> 2. 输入审核状态 <br> 3. 确认并搜索 | 根据选择的审核状态关键词显示相关菜品 | 根据选择的审核状态关键词成功显示相关菜品 | 通过 |
美食商城下单功能测试用例设计如下表所示:
表6-5 美食商城下单功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证未输入订单数量,点击提交 | 1. 进入美食商城下单界面 <br> 2.未输入订单数量,点击提交 <br> 3. 点击提交按钮 | 提示请输入订单数量 | 提示请输入订单数量 | 通过 |
| TC002 | 验证未输入收获地址,点击提交 | 1. 进入美食商城下单界面 <br> 2.未输入收获地址,点击提交 <br> 3. 点击提交按钮 | 提示请输入收获地址 | 提示请输入收获地址 | 通过 |
| TC003 | 验证未输入订单备注,点击提交 | 1. 进入美食商城下单界面 <br> 2.未输入订单备注,点击提交 <br> 3. 点击提交按钮 | 提示请输入订单备注 | 提示请输入订单备注 | 通过 |
6.3性能测试
- 兼容性测试
表6-6 兼容性测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 兼容性_01 | 设备兼容性 | 测试系统在不同设备上的表现 | 在多种设备上访问系统并记录表现 | 系统在各种设备上都能正常加载和显示页面 |
| 兼容性_02 | 浏览器兼容性 | 测试系统在不同浏览器上的表现 | 在多种浏览器中访问系统并记录表现 | 系统在各种主流浏览器上都能正常加载和显示页面 |
| 兼容性_03 | 分辨率兼容性 | 测试系统在不同分辨率下的显示效果 | 在不同分辨率的设备上访问系统并记录表现 | 系统在各种分辨率下都能适应并正常显示内容 |
| 兼容性_04 | 操作系统兼容性 | 测试系统在不同操作系统上的运行情况 | 在不同操作系统上访问系统并记录表现 | 系统能够在常用操作系统上正常运行和显示 |
- 性能测试
表6-7 性能测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 性能_01 | 负载测试 | 测试系统在正常负载下的性能 | 逐步增加用户数来模拟不同的负载情况 | 系统能够稳定处理并响应不同数量的用户请求 |
| 性能_02 | 压力测试 | 测试系统在极端负载下的性能 | 以超过系统承受极限的用户数来测试系统 | 系统能够在高负载情况下仍然保持正常运行 |
| 性能_03 | 并发测试 | 测试系统能同时处理多少并发用户请求 | 同时发送多个并发用户请求来测试系统性能 | 系统能够有效地处理多个并发请求 |
| 性能_04 | 数据量测试 | 测试系统在大数据量下的性能 | 向系统添加大量数据并测试系统响应时间 | 系统能够在大数据量情况下保持较快的响应时间 |
6.4测试结果
全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。
结 论
本论文围绕基于微信小程序的校园餐厅订餐系统的设计与实现进行了深入研究,通过对系统的设计、开发和测试,验证了基于Spring Boot框架于微信小程序的校园餐厅订餐系统的有效性和实用性。该小程序不仅满足了用户在点餐过程中的基本需求,还通过优化的用户体验提升了整体满意度。
研究表明,系统的架构设计合理,功能模块清晰,用户能够方便地进行注册、浏览菜品、下单和支付等操作。商家端的管理功能使得商家能够高效地处理订单和管理菜品,增强了运营效率。管理员端的管理功能则确保了系统的安全性和稳定性,有效维护了平台的正常运行。
此外,系统的技术实现基于Spring Boot和MySQL,确保了数据的高效处理和存储。通过合理的接口设计,前后端的数据交互流畅,提升了用户体验。
在未来的研究中,将进一步探索如何结合数据分析等技术,提升系统的智能化水平,满足更为复杂的市场需求。同时,随着外卖行业的不断发展,系统的功能和性能也需不断进行迭代和优化,以适应市场的变化。
综上所述,本论文的研究不仅为基于微信小程序的校园餐厅订餐系统的设计与实现提供了实践案例,也为相关领域的后续研究奠定了基础,具有重要的理论和实际意义。
参考文献
- 任建伟,丁莎.基于微信小程序的点餐系统设计与实现[J].电脑编程技巧与维护,2024,(05):77-80.
- 范诗帆,程文志.基于Web的医院食堂订餐系统设计与实现[J].无线互联科技,2023,20(16):78-80.
- Junhao S ,Weize L ,Zhiheng Z , et al.Design and Implementation of the Remote Use of the Table Tennis Ball Recovery and Cleaning Machine Based on Wechat Mini Program[J].Academic Journal of Engineering and Technology Science,2023,6(9):
- Xiaoyong F ,Yan W ,Xiaomei W , et al.Design and implementation of disaster prevention science popularization system based on We Chat mini program[C]//Institute of Geophysics,China Earthquake Administration (China);Institute of Disaster Prevention (China),2023:
- Yang Y .Design and Implementation of Online Food Ordering System Based on Springcloud[J].Information Systems and Economics,2022,3(4):
- 范勇华.基于Web订餐系统的设计与实现[J].信息与电脑(理论版),2021,33(13):71-73.
- 宋思华.微信公众号订餐系统服务层的设计与实现[J].数字通信世界,2020,(11):147-148+239.
- 余丽娜.微信小程序订餐系统设计与实现[J].信息通信,2020,(02):131-132.
- Li W J ,Li X ,Jiang W J , et al.DESIGN AND IMPLEMENTATION OF SCENIC INTELLIGENT GUIDE SYSTEM BASED ON WECHAT APPLET[J].ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences,2020,XLII-3/W10457-460.
- 戴静,马奇奇,王帅,等.基于Android的智能顺风订餐系统的设计与实现[J].科技风,2019,(34):27.DOI:10.19392/j.cnki.1671-7341.201934024.
- 宋思华.基于微信公众平台的网上订餐系统的设计与实现[J].企业科技与发展,2019,(09):96-97.
- 徐娅楠,连家豪,冯嘉楠,等.基于协同过滤的团队订餐系统设计与实现[J].计算机时代,2019,(03):32-35.DOI:10.16644/j.cnki.cn33-1094/tp.2019.03.010.
- 薛亚田,舒后.基于jQuery Mobile的移动订餐系统的设计与实现[J].北京印刷学院学报,2018,26(12):93-95+118.DOI:10.19461/j.cnki.1004-8626.2018.12.025.
- 张小艾.基于CAS的校园订餐系统的设计与实现[J].电脑知识与技术,2018,14(35):63-64+99.DOI:10.14004/j.cnki.ckt.2018.4110.
- 刘伟.基于Android平台的手机订餐系统的设计与实现[D].扬州大学,2018.
- Wang J ,Wang W ,Zhu Q .Design and Implementation of WeChat Mini Program for University Dormitory Based on SOA[J].Journal of Physics: Conference Series,2018,1069(1):012086-012086.
- 张乐.高校食堂自助点餐系统设计与实现[J].电脑与信息技术,2024,32(02):51-53.DOI:10.19414/j.cnki.1005-1228.2024.02.009.
- 王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.DOI:10.19850/j.cnki.2096-4706.2023.22.007.
- 苏兵.基于微服务的校园点餐系统后台的设计与实现[J].电脑与电信,2023,(11):23-28.DOI:10.15966/j.cnki.dnydx.2023.11.008.
- 曾慧群.基于Android的智慧点餐系统设计与实现[J].现代信息科技,2023,7(14):15-19.DOI:10.19850/j.cnki.2096-4706.2023.14.004.
致 谢
在本论文的研究与撰写过程中,我得到了许多人的支持与帮助。在此,我谨向所有关心和支持我的人表示诚挚的感谢。
首先,我要感谢我的指导老师,他在整个研究过程中给予了我悉心的指导和无私的支持。他的专业知识和严谨态度对我有着深远的影响,使我在研究中受益匪浅。
其次,我要感谢我的家人,他们在我攻读学位期间给予了我无条件的理解与支持。在我遇到困难和挑战时,他们的鼓励让我倍感温暖,激励我不断前行。
同时,感谢所有参与问卷调查和用户测试的用户,你们的反馈和建议对本系统的改进和完善起到了重要作用。希望本研究的成果能够为大家的生活带来便利,并为外卖点餐提供更好的解决方案。
再次感谢所有关心和支持我的人,是你们的帮助让我顺利完成了这项研究。

被折叠的 条评论
为什么被折叠?



