基于微信小程序的餐厅点餐系统的设计与实现 毕业设计源码44320

摘要

随着移动互联网的迅速发展,人们对便捷高效生活方式的需求不断增加,餐饮行业也面临着提升服务质量和效率的挑战。本研究基于微信小程序开发技术,结合Java、spring boot框架和MySQL数据库,设计并实现了一套餐厅点餐系统。通过优化传统点餐方式,系统有效提高了点餐效率、降低了人力成本、增强了服务质量,满足了现代人们对便捷高效生活方式的追求。用户可通过小程序浏览菜品、下单、支付,服务员和管理员可更好管理菜品、订单、评价和投诉,提升了餐厅的服务水平和竞争力。本研究对于推动餐饮行业数字化转型、改善用户体验、提高餐厅经营效益具有重要意义,为相关行业提供了创新思路和发展机会。

关键词:餐厅点餐系统;spring boot;Mysql数据库;微信小程序

                                                            Abstract

With the rapid development of mobile Internet, people's demand for a convenient and efficient lifestyle is increasing, and the catering industry is also facing the challenge of improving service quality and efficiency. This study is based on WeChat mini program development technology, combined with Java, Spring Boot framework, and MySQL database, to design and implement a restaurant ordering system. By optimizing traditional ordering methods, the system effectively improves ordering efficiency, reduces labor costs, enhances service quality, and meets modern people's pursuit of a convenient and efficient lifestyle. Users can browse dishes, place orders, and make payments through the mini program. Waiters and administrators can better manage dishes, orders, reviews, and complaints, improving the service level and competitiveness of the restaurant. This study is of great significance for promoting the digital transformation of the catering industry, improving user experience, and enhancing restaurant operating efficiency, providing innovative ideas and development opportunities for related industries.

Keywords: restaurant ordering system; Spring boot; MySQL database; WeChat Mini Program

目录

摘要

Abstract

第1章 引 言

1.1 研究背景与意义

1.2 国内外研究现状

1.3 主要研究内容

1.4 论文结构与章节安排

第2章 系统需求分析

2.1 系统可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.2 系统需求分析

2.2.1 功能需求分析

2.2.2 非功能性需求分析

2.3 系统用例分析

第3章 系统设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

4章 关键模块的设计与实现

4.1 前台用户模块

4.1.1 登录模块

4.1.2 注册模块

4.1.3 首页界面

4.1.4 我的界面

4.2 后台管理模块

4.2.1 管理员后台首页界面

4.2.2 管理员系统用户界面

4.2.3 管理员菜品信息管理界面

4.2.4 管理员订单评价管理界面

4.2.5 管理员系统管理界面

4.2.6 管理员资源管理界面

4.2.7 服务员点单信息管理界面

4.2.8 服务员订单修改管理界面

4.2.9 服务员用户投诉管理界面

第5章 系统测试

5.1 测试的目的

5.2 系统部分测试

5.3 系统测试结果

第6章 结语

参考文献

结束语

第1章 引 言

    1. 研究背景与意义

随着移动互联网的快速发展,人们对于便捷、高效的生活方式日益追求,在人们生活节奏的加快以及消费习惯的变化,大众对于餐饮服务的要求变得更加多样化和个性化的背景下,餐饮行业也需要相应地提升服务质量和效率。传统的点餐方式存在诸多问题,如等待时间长、沟通不畅、订单准确性低等,影响了用户的用餐体验。基于微信小程序的餐厅点餐系统的设计与实现,能够有效地提高点餐效率、减少人力成本、增加服务质量,符合现代人们对于便利、高效生活方式的追求。因此,研究如何利用小程序技术优化餐饮服务具有重要意义,并能为相关行业提供更多创新思路和发展机会。

使用Java开发技术,配合spring boot框架和MySQL数据库开发基于微信小程序的餐厅点餐系统可以有效解决传统点餐方式中存在的一些问题,如排队等待、沟通不畅等,为用户提供更好的用餐体验。可以提升餐厅的服务水平和竞争力,满足用户日益增长的个性化需求。对于用户来说,他们可以通过小程序便捷地浏览菜品、下单点餐,修改订单,进行支付;对于服务员和管理员来说,系统可以帮助他们更好地管理菜品信息、订单信息、订单评价、处理投诉等工作。因此,这项研究对于提升餐饮行业的数字化水平、改善用户体验以及提高餐厅经营效益具有重要意义。

    1. 国内外研究现状

目前国内外许多餐饮企业开始采用微信小程序作为点餐系统,以提高服务效率和用户体验。国内知名连锁餐饮品牌如海底捞、星巴克等均推出了基于微信小程序的点餐系统,通过手机扫码点餐、在线支付等方式来简化点餐流程。在国外,一些快餐连锁品牌如麦当劳、肯德基也开始探索利用手机应用程序进行点餐服务,提供更加便捷的用户体验。这种趋势表明餐饮行业正在积极应对数字化转型的挑战,借助技术手段提升服务水平和满足消费者需求。

此外,相关领域的研究也在不断深入。智能技术在餐饮服务中的应用、无人智能点餐系统的研究等成为研究热点。通过引入人工智能、大数据分析等技术,餐饮行业探索提高效率、降低成本、增强竞争力的途径。这些研究旨在提高餐饮服务的效率和质量,满足消费者不同层次的需求,推动餐饮业的数字化、智能化发展。

随着科技的不断进步和消费习惯的变化,餐饮行业将迎来更多创新的发展。未来,随着智能技术的广泛应用和消费者对个性化、便捷化服务的需求不断增加,餐饮行业将继续探索更多创新的发展路径,以适应市场变化并提升竞争力。这些研究和实践努力将为餐饮行业带来更多的机遇和挑战,推动行业朝着数字化、智能化方向迈进。

    1. 主要研究内容

(1)微信小程序需求分析:对目标用户群体进行调查和研究,了解用户需求和习惯。通过需求分析,确定餐厅点餐系统的功能和特性。

(2)系统设计与实现:基于微信小程序,通过Android平台,设计并实现一个用户友好的界面,使用户能够轻松地搜索、浏览和选择菜品信息。考虑到用户需求,同时,系统还能够提供个性化推荐功能。

(3)数据管理:研究如何有效地收集、整理和管理大量的附近门店、推荐百货、商品资讯、订单信息、订单售后、我的钱包、用户充值、我的积分、会员信息等数据。讨论不同的数据源和采集方法,并评估其准确性和可靠性。

(4)用户评价与反馈:通过用户调查和评价,评估用户对餐厅点餐系统的满意度和使用体验。收集用户反馈,并根据反馈改进和优化系统功能。

(5)效果评估与推广策略:通过实验或问卷调查等方法,评估餐厅点餐系统对用户行为的影响。提出有效的推广策略,增加用户数量并提高微信小程序的使用率。

    1. 论文结构与章节安排

论文主要架构、章节安排如下所示:

第一章:绪论,介绍研究背景和目的及意义,对国内外研究现状展开分析。

第二章:系统分析,通过用户需求分析和功能需求分析,明确用户对系统的需求和系统应具备的功能。

第三章:系统设计,设计系统架构,包括选择合适的架构模式和数据库设计,以及各个模块的详细设计。

第四章:系统实现,选择合适的技术工具和框架,逐一实现各个模块,建立数据库连接并实现前端界面开发。

第五章:系统测试,进行整体系统测试及个别测试用例举例,确保系统功能的正确性、协调性和稳定性。

第六章,总结,总结研究工作的主要内容和成果,评价系统的优点和不足,并提出改进和进一步研究的建议,强调研究的意义和影响。

第2章 系统需求分析

餐厅点餐系统存储所使用的是Mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用spring boot配合微信小程序进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前spring boot也是很多用户选择的框架之一。微信小程序是目前全球主流的移动操作程序之一,具有广泛的用户群体和成熟的开发工具和资源。因此,在技术上实现一个基于spring boot餐厅点餐系统是可行的。

      1. 经济可行性分析

系统的开发工具从网上都可以直接下载,都是当下流行开源免费的所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响。尽量用最少的花费去满足用户的需求省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。因此,从经济方面分析也没有问题。

      1. 操作可行性分析

本系统实现功能的操作很简单,普通电脑和手机常见配置就可以运行本软件,并且只要粗通电脑使用和手机使用的基本常识就可以流畅的使用本软件。电脑和手机具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可。因此,操作可行性也没有问题。

    1. 系统需求分析
      1. 功能需求分析

通过餐厅点餐系统的需求分析该系统主要分为普通用户、服务员和管理员三大功能模块。具体如下:

1、普通用户:

  1. 注册登录:游客可以通过注册成为系统用户,使用账号密码可进行登录,使用系统功能。
  2. 首页:可查看轮播图、公告消息、菜品信息、用户投诉、餐饮资讯、菜品信息推荐和其他系统功能。例如:

点击“公告消息”,可查看包括关于我们、联系方式、网站介绍等管理员发布的所有公告消息,可点击查看详情;

点击“菜品信息”:可查看所有菜品信息,支持菜品名称、菜品分类搜索和点赞数、点击数、发布时间搜索,可点击查看详情,进行点赞、收藏和评论操作,并可点击点单操作

点击“用户投诉”,可进入用户投诉界面,填写并提交用户投诉信息。

  1. 餐饮资讯:可查看管理员发布的所有餐饮资讯信息,支持搜索文章,和推荐文章,可点击查看详情,进行点赞、收藏和评论;

我的:可对基本信息、收藏、点单信息、订单修改、订单评价、用户投诉等信息进行管控。例如:

点击“基本信息”,可对基本信息进行管控,查看基本信息,并可修改资料和修改密码;

点击“收藏”,可查看自己的收藏信息,包括菜品信息、餐饮资讯等信息,可进行查询和删除操作;

点击“点单信息”,可查看自己的点单信息,支持菜品名称、菜品分类、用户姓名、支付状态搜索,可点击查看详情,并可点击支付、修改申请、评价订单等操作,可选择线上支付或现金支付方式;

点击“订单修改”,可查看自己的订单修改信息,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情;

点击“订单评价”,可查看自己的订单修改信息,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情;

点击“用户投诉”,可对自己的订单修改信息系,支持用户姓名搜索,可点击查看详情。

2、服务员:

  1. 注册登录:服务员账号信息有管理员添加,使用管理员添加的账号密码可进行登录,使用系统功能,并对个人信息和密码进行管理。
  2. 菜品信息管理:可查看所有菜品信息,进行查询操作,支持菜品名称、菜品分类搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、菜品描述、菜品简介)。
  3. 点单信息管理:可查看所有点单信息,进行查询和修改操作,支持菜品名称、菜品分类、用户姓名、支付状态搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、普通用户、用户姓名、下单时间、下单数量、订单金额、口味偏好、是否现金支付),可修改用户是否现金支付情况。
  4. 订单修改管理:可查看所有订单修改信息,进行查询和修改操作,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、普通用户、用户姓名、下单时间、下单数量、订单金额、口味偏好、修改内容)。
  5. 用户投诉管理:可查看所有用户投诉信息,进行查询操作,支持用户姓名搜索,可点击查看详情(普通用户、用户姓名、投诉时间、投诉内容、回复内容),用户的投诉进行回复,并可点击反馈操作。
  6. 投诉反馈管理:可查看所有投诉反馈信息,进行查询操作,支持用户姓名、员工姓名搜索,可点击查看详情(普通用户、用户姓名、投诉时间、投诉内容反馈内容、员工姓名、反馈内容、回复内容)。

3、管理员:

  1. 登录:管理员账号密码由系统生成,可使用账号密码可进行登录,使用系统功能,并对个人信息和密码进行管理。
  2. 后台首页:可查看点单信息统计数据分析图表。
  3. 系统用户:可对普通用户、服务员和管理员进行管控,包括进行增删改查操作,点击可查看详情,服务员账号信息由管理员添加。
  4. 菜品分类管理:可查看所有菜品分类信息,进行增改删查操作,支持菜品分类搜索,点击可查看详情。
  5. 菜品信息管理:可查看所有菜品信息,进行增改删查操作,支持菜品名称、菜品分类搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、菜品描述、菜品简介)和查看评论。
  6. 点单信息管理:可查看所有点单信息,进行查询和删除操作,支持菜品名称、菜品分类、用户姓名、支付状态搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、普通用户、用户姓名、下单时间、下单数量、订单金额、口味偏好、是否现金支付),可修改用户是否现金支付情况,并可点击支付操作。
  7. 订单修改管理:可查看所有订单修改信息,进行查询和删除操作,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、普通用户、用户姓名、下单时间、下单数量、订单金额、口味偏好、修改内容)。
  8. 订单评价管理:可查看所有订单评价信息,进行查询和删除操作,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情。
  9. 用户投诉管理:可查看所有用户投诉信息,进行增改删查操作,支持用户姓名搜索,可点击查看详情(普通用户、用户姓名、投诉时间、投诉内容、回复内容),用户的投诉进行回复,并可点击反馈操作。
  10. 投诉反馈管理:可查看所有投诉反馈信息,进行增删改查操作,支持用户姓名、员工姓名搜索,可点击查看详情(普通用户、用户姓名、投诉时间、投诉内容反馈内容、员工姓名、反馈内容、回复内容),对服务员的投诉反馈进行回复
  11. 系统管理:可对首页的轮播图进行管理,进行增删改查操作,支持标题搜索,可点击查看详情(标题、轮播图)。
  12. 公告信息管理:可对公告信息进行管理,进行增删改查操作,支持标题搜索,可点击查看详情(标题、正文)。
  13. 资源管理:可对餐饮资讯和资讯分类进行管理,进行增删改查操作,餐饮资讯支持标题、标签、分类搜索,可点击查看详情(封面图、标题、分类、标签、描述、正文)和查看评论;资讯分类支持类型名称搜索。
      1. 非功能性需求分析

非功能性分析旨在评估系统的非功能需求和性能要求。通过对性能、可靠性、安全性、可用性和扩展性等方面进行评估,确保平台能够满足用户和系统运行的要求。具体如下

表2.1 餐厅点餐系统非功能需求表

非功能性要求

说明

性能

评估响应时间、并发用户数、吞吐量等指标,以确保平台稳定高效地运行。

可靠性

评估系统的稳定性、容错能力和数据完整性,保障系统在故障情况下正常运行。

安全性

评估用户身份认证、数据加密和访问控制等,保护用户信息和交易的安全。

可用性

评估系统的稳定性、故障处理能力和用户界面友好性,提供良好的用户体验。

扩展性

评估系统的可扩展性和灵活性,以便根据需求进行功能扩展和升级。

    1. 系统用例分析

餐厅点餐系统普通用户角色用例图如图2.1所示:

图2.1普通用户角色用例图

餐厅点餐系统服务员用例图如图2.2所示:

图2.2 服务员用例图

餐厅点餐系统中管理员用例图如图2.2所示:

图2.3 管理员用例图

第3章 系统设计

  • 2 章
    1. 系统功能模块设计

通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系,具体的功能模块图如图3.1所示。

图3.1 餐厅点餐系统功能模块图

    1. 数据库设计

数据库设计是系统开发中至关重要的一环,它涉及到数据的组织、存储和管理。在数据库设计中,我们将根据系统的需求设计数据库的概念结构和逻辑结构,包括定义实体、属性、关系和约束等。

      1. 数据库概念结构设计

数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型,我们将定义系统中涉及的各个实体以及它们之间的联系。下面是整个餐厅点餐系统中主要的数据库表总E-R实体关系图。

图3.2 餐厅点餐系统总E-R关系图

      1. 数据库逻辑结构设计

数据库逻辑结构设计则是在概念结构的基础上,进行具体的数据库表设计。我们将定义每个表的结构、字段和约束,并建立表与表之间的关系。以下是项目中的主要数据库表的关系模型:

表categorization_of_dishes (菜品分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

categorization_of_dishes_id

int

10

0

N

Y

菜品分类ID

2

categorization_of_dishes

varchar

64

0

Y

N

菜品分类

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表complaint_feedback (投诉反馈)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

complaint_feedback_id

int

10

0

N

Y

投诉反馈ID

2

regular_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

complaint_time

datetime

19

0

Y

N

投诉时间

5

complaint_content

text

65535

0

Y

N

投诉内容

6

working_personnel

int

10

0

Y

N

0

工作人员

7

employee_name

varchar

64

0

Y

N

员工姓名

8

feedback_content

text

65535

0

Y

N

反馈内容

9

reply_content

text

65535

0

Y

N

回复内容

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表dish_information (菜品信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

dish_information_id

int

10

0

N

Y

菜品信息ID

2

dish_name

varchar

64

0

Y

N

菜品名称

3

categorization_of_dishes

varchar

64

0

Y

N

菜品分类

4

price_of_dishes

int

10

0

Y

N

0

菜品价格

5

description_of_dishes

varchar

64

0

Y

N

菜品描述

6

dish_pictures

varchar

255

0

Y

N

菜品图片

7

introduction_to_dishes

text

65535

0

Y

N

菜品简介

8

hits

int

10

0

N

N

0

点击数

9

praise_len

int

10

0

N

N

0

点赞数

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order_evaluation (订单评价)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_evaluation_id

int

10

0

N

Y

订单评价ID

2

dish_name

varchar

64

0

Y

N

菜品名称

3

categorization_of_dishes

varchar

64

0

Y

N

菜品分类

4

price_of_dishes

int

10

0

Y

N

0

菜品价格

5

regular_users

int

10

0

Y

N

0

普通用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

order_quantity

int

10

0

Y

N

0

下单数量

8

order_amount

varchar

64

0

Y

N

订单金额

9

evaluation_level

varchar

64

0

Y

N

评价等级

10

evaluation_content

text

65535

0

Y

N

评价内容

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order_information (点单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_information_id

int

10

0

N

Y

点单信息ID

2

dish_name

varchar

64

0

Y

N

菜品名称

3

categorization_of_dishes

varchar

64

0

Y

N

菜品分类

4

price_of_dishes

int

10

0

Y

N

0

菜品价格

5

regular_users

int

10

0

Y

N

0

普通用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

order_time

date

10

0

Y

N

下单时间

8

order_quantity

int

10

0

Y

N

0

下单数量

9

order_amount

varchar

64

0

Y

N

订单金额

10

taste_preferences

varchar

64

0

Y

N

口味偏好

11

cash_payment

varchar

64

0

Y

N

现金支付

12

pay_state

varchar

16

0

N

N

未支付

支付状态

13

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表order_modification (订单修改)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_modification_id

int

10

0

N

Y

订单修改ID

2

dish_name

varchar

64

0

Y

N

菜品名称

3

categorization_of_dishes

varchar

64

0

Y

N

菜品分类

4

price_of_dishes

int

10

0

Y

N

0

菜品价格

5

regular_users

int

10

0

Y

N

0

普通用户

6

user_name

varchar

64

0

Y

N

用户姓名

7

order_time

datetime

19

0

Y

N

下单时间

8

order_quantity

int

10

0

Y

N

0

下单数量

9

order_amount

varchar

64

0

Y

N

订单金额

10

taste_preferences

varchar

64

0

Y

N

口味偏好

11

modify_content

text

65535

0

Y

N

修改内容

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表user_complaints (用户投诉)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_complaints_id

int

10

0

N

Y

用户投诉ID

2

regular_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

complaint_time

datetime

19

0

Y

N

投诉时间

5

complaint_content

text

65535

0

Y

N

投诉内容

6

reply_content

text

65535

0

Y

N

回复内容

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表waiter (服务员)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

waiter_id

int

10

0

N

Y

服务员ID

2

employee_name

varchar

64

0

Y

N

员工姓名

3

employee_gender

varchar

64

0

Y

N

员工性别

4

employee_age

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

更新时间

4章 关键模块的设计与实现

  • 3 章
    1. 前台用户模块
      1. 登录模块

用户在登录界面输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面,其主界面展示如下图4.1所示。

图4.1 登录界面图

登录代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostM微信小程序ing("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

      1. 注册模块

当用户想要查询、管理相关信息,就必须进行登录,如果没有账号的话,在登录界面,点击“注册”按钮就会跳转到注册的界面,根据提示填写好注册信息,添加提交,注册的信息在数据库中就添加完成了,然后再输入填写好的账号和密码进行登录,其主界面展示如下图4.2所示。

图4.2 注册界面图

注册代码如下:

/**

     * 注册

     * @param user

     * @return

     */

    @PostM微信小程序ing("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}  

      1. 首页界面

首页:可查看轮播图、公告消息、菜品信息、用户投诉、餐饮资讯、菜品信息推荐和其他系统功能。例如:

点击“公告消息”,可查看包括关于我们、联系方式、网站介绍等管理员发布的所有公告消息,可点击查看详情;点击“菜品信息”:可查看所有菜品信息,支持菜品名称、菜品分类搜索和点赞数、点击数、发布时间搜索,可点击查看详情,进行点赞、收藏和评论操作,并可点击点单操作;点击“用户投诉”,可进入用户投诉界面,填写并提交用户投诉信息。

首页主界面如下图所示。


图4.3 首页主界面图

例如,首页菜品信息界面如下图所示。

图4.4 首页菜品信息界面图

      1. 我的界面

我的:可对基本信息、收藏、点单信息、订单修改、订单评价、用户投诉等信息进行管控。例如:

点击“基本信息”,可对基本信息进行管控,查看基本信息,并可修改资料和修改密码;点击“收藏”,可查看自己的收藏信息,包括菜品信息、餐饮资讯等信息,可进行查询和删除操作;点击“点单信息”,可查看自己的点单信息,支持菜品名称、菜品分类、用户姓名、支付状态搜索,可点击查看详情,并可点击支付、修改申请、评价订单等操作,可选择线上支付或现金支付方式;点击“订单修改”,可查看自己的订单修改信息,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情;点击“订单评价”,可查看自己的订单修改信息,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情;点击“用户投诉”,可对自己的订单修改信息系,支持用户姓名搜索,可点击查看详情。

我的主界面如下图所示。

图4.5 我的主界面图

例如我的点单信息界面如下图所示。

图4.6 我的点单信息界面图

    1. 后台管理模块
      1. 管理员后台首页界面

可查看点单信息统计数据分析图表。界面如下图所示。

图4.7管理员后台首页界面图

      1. 管理员系统用户界面

可对普通用户、服务员和管理员进行管控,包括进行增删改查操作,点击可查看详情,服务员账号信息由管理员添加。界面如下图所示。

图4.8管理员系统用户界面图

      1. 管理员菜品信息管理界面

可查看所有菜品信息,进行增改删查操作,支持菜品名称、菜品分类搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、菜品描述、菜品简介)和查看评论理。界面如下图所示。

图4.9管理员菜品信息管理界面图

      1. 管理员订单评价管理界面

可查看所有订单评价信息,进行查询和删除操作,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情。界面如下图所示。

图4.10管理员订单评价管理界面图

      1. 管理员系统管理界面

可对首页的轮播图进行管理,进行增删改查操作,支持标题搜索,可点击查看详情(标题、轮播图)。界面如下图所示。

图4.11管理员系统管理管理界面图

      1. 管理员资源管理界面

可对餐饮资讯和资讯分类进行管理,进行增删改查操作,餐饮资讯支持标题、标签、分类搜索,可点击查看详情(封面图、标题、分类、标签、描述、正文)和查看评论;资讯分类支持类型名称搜索。界面如下图所示。

图4.12管理员资源管理界面图

      1. 服务员点单信息管理界面

可查看所有点单信息,进行查询和修改操作,支持菜品名称、菜品分类、用户姓名、支付状态搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、普通用户、用户姓名、下单时间、下单数量、订单金额、口味偏好、是否现金支付),可修改用户是否现金支付情况。界面如下图所示。

图4.13 服务员点单信息管理详情界面图

      1. 服务员订单修改管理界面

可查看所有订单修改信息,进行查询和修改操作,支持菜品名称、菜品分类、用户姓名搜索,可点击查看详情(菜品名称、菜品分类、菜品价格、普通用户、用户姓名、下单时间、下单数量、订单金额、口味偏好、修改内容)。界面如下图所示。

图4.14 服务员订单修改管理界面图

      1. 服务员用户投诉管理界面

可查看所有用户投诉信息,进行查询操作,支持用户姓名搜索,可点击查看详情(普通用户、用户姓名、投诉时间、投诉内容、回复内容),用户的投诉进行回复,并可点击反馈操作)。界面如下图所示。

图4.15 服务员用户投诉管理界面图

  1. 系统测试
  • 4 章
    1. 测试的目的

通过前面章节的介绍,我们可以看到餐厅点餐系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。

    1. 系统部分测试

1)登录测试 

登录测试用例如下表所示。

表6-1 登录测试用例

测试用例编号

YL_01

测试用例名称

系统使用者登录

测试用例描述

登录者输入用户名、密码和验证码

系统入口

浏览器

步骤

预期结果

实际结果

输入正确的用户名、密码和验证码

提示“登录成功”,并进入系统

预期结果

输入错误的用户名、密码和验证码

提示“登录失败”,并返回登录界面

预期结果

不输入用户名、密码和验证码

提示“请输入完整”

预期结果

(2)注册测试 

注册测试用例如下表所示。

表6-2 注册测试用例

测试用例编号

YL_02

测试用例名称

系统使用者注册账号

测试用例描述

使用者输入用户名、密码以及个人信息进行账号注册

系统入口

浏览器

步骤

预期结果

实际结果

输入系统不存在的用户名、密码和个人信息

提示“注册成功” 

预期结果

输入系统已存在的用户名

提示“注册失败”,并返回注册界面

预期结果

不输入用户名、密码和个人信息

提示“请输入完整”

预期结果

(3)添加餐饮资讯测试 

添加餐饮资讯测试用例如下表所示。

表6-3 添加餐饮资讯测试用例

测试用例编号

YL_04

测试用例名称

系统使用者进行添加餐饮资讯

测试用例描述

使用者输入资讯标题、内容等信息

系统入口

浏览器

步骤

预期结果

实际结果

输入完整的资讯标题和内容

提示“添加成功”,并进入系统

预期结果

不输入的资讯标题和内容

提示“请输入完整”

预期结果

(4)添加菜品信息测试 

添加菜品信息测试用例如下表所示。

表6-4 添加菜品信息测试用例

测试用例编号

YL_04

测试用例名称

系统使用者进行添加菜品信息

测试用例描述

使用者输入信息标题、内容等信息

系统入口

浏览器

步骤

预期结果

实际结果

输入完整的信息标题和内容

提示“添加成功”,并进入系统

预期结果

不输入的信息标题和内容

提示“请输入完整”

预期结果

    1. 系统测试结果

通过编写基于微信小程序的餐厅点餐系统的测试用例,已经检测完毕用户的用户登录、注册、添加信息、添加资讯等测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。。

                                                结语

本研究旨在探讨基于微信小程序的餐厅点餐系统的设计与实现,以提升餐饮服务的效率和用户体验。通过对国内外餐饮行业的现状进行分析,发现随着移动互联网和智能技术的快速发展,数字化转型已成为餐饮行业的发展趋势。在这一背景下,本研究结合Java开发技术、spring boot框架和MySQL数据库,设计并实现了一套基于微信小程序的餐厅点餐系统。通过优化传统点餐方式,系统有效提高了点餐效率、降低了人力成本、增强了服务质量,为餐厅经营注入了新的活力。

在研究过程中,我们深入探讨了微信小程序在餐饮服务中的应用,分析了系统的设计与实现过程,解决了传统点餐方式存在的问题,提升了餐厅的服务水平和竞争力。通过用户和管理员的实际操作测试,系统表现出色,得到了良好的用户反馈。这表明基于微信小程序的餐厅点餐系统在提高点餐效率、优化用户体验方面具有显著的优势,为餐饮行业的数字化转型提供了新的思路和解决方案。

然而,本研究还存在一些不足之处。在系统功能设计方面,还有一些细节需要进一步完善和优化,以更好地满足用户需求。在系统安全性和稳定性方面,还需要加强数据加密和防护措施,确保用户信息的安全性。未来的研究方向可以包括进一步优化系统功能、引入人工智能技术提升智能化水平、拓展多样化的支付方式等方面的探索。

基于微信小程序的餐厅点餐系统的设计与实现为餐饮行业的数字化转型提供了有益的参考和借鉴。随着科技的不断发展和消费习惯的变化,餐饮行业将迎来更多创新的发展机遇。希望本研究能为餐饮行业的数字化智能化转型提供一定的启示,为行业的可持续发展贡献力量。让我们共同期待餐饮行业在数字化时代迎来更加美好的未来!

                                                 参考文献

[1]李鹏,高燕,王思源.基于微信小程序的智能语音家居系统[J].微型电脑应用,2024,40(02):225-228.

[2]孙梦菲,周天源,王天澍.基于微信小程序的校园社团管理系统设计与实现[J].现代信息科技,2024,8(03):40-44.DOI:10.19850/j.cnki.2096-4706.2024.03.009.

[3]周旭东,徐金,王梁等.基于微信小程序的老年人看护救助系统设计[J].无线互联科技,2024,21(03):20-24.

[4]李娇雅,汪济旭,李雨欣等.基于微信小程序的远程医疗预约系统设计[J].集成电路应用,2024,41(02):78-79.DOI:10.19339/j.issn.1674-2583.2024.02.028.

[5]贾文琦,滕建,贾萨尔·阿依肯.基于微信小程序的课程表系统[J].电脑编程技巧与维护,2024,(01):61-64+88.DOI:10.16184/j.cnki.comprg.2024.01.028.

[6]王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.DOI:10.19850/j.cnki.2096-4706.2023.22.007.

[7]陈海燕,常莹,张燕宁.基于Android系统的校园点餐系统中不同数据存储方式的教学研究[J].电脑编程技巧与维护,2023,(09):57-60.DOI:10.16184/j.cnki.comprg.2023.09.012.

[8]曾慧群.基于Android的智慧点餐系统设计与实现[J].现代信息科技,2023,7(14):15-19.DOI:10.19850/j.cnki.2096-4706.2023.14.004.

[9]黄李垚,何妙婧,赖彦蓉等.高校食堂智慧化点餐与营养分析系统设计与探讨[J].农产品加工,2023,(05):116-120.DOI:10.16693/j.cnki.1671-9646(X).2023.03.030.

[10]张芮绮.线上餐厅管理系统的设计[J].科技风,2023,(06):4-6.DOI:10.19392/j.cnki.1671-7341.202306002.

[11]刘德凤.酒店点餐系统的设计与实现[J].电子技术与软件工程,2022,(22):173-176.

[12]张金凤.餐饮管理系统的统计模块设计[J].福建电脑,2022,38(09):90-93.DOI:10.16707/j.cnki.fjpc.2022.09.020.

[13]张彭飞.基于协同过滤的微信点餐推荐系统的设计与实现[D].吉林大学,2022.DOI:10.27162/d.cnki.gjlin.2022.007344.

[14]谷研硕,时振涛,孙申英等.基于内容推荐算法的点餐系统的设计与实现[J].电脑知识与技术,2022,18(10):48-49.DOI:10.14004/j.cnki.ckt.2022.0815.

[15]宁功林.基于微信小程序的大学校园点餐管理系统设计与实现[J].华东科技,2022,(02):77-79.

[16]朱广跃.移动Web点餐系统的设计[J].集成电路应用,2022,39(01):124-125.DOI:10.19339/j.issn.1674-2583.2022.01.045.

[17]陈帅.微信点餐系统小程序的设计与实现[J].电子技术与软件工程,2021,(24):30-31.

[18]郭靖雯,彭振珊,徐庆庆等.疫情下高校智能就餐系统的设计与应用[J].佛山科学技术学院学报(自然科学版),2021,39(05):73-80.DOI:10.13797/j.cnki.jfosu.1008-0171.2021.0077.

[19]鹿俊聪.基于Android的食堂点餐系统的设计与实现[J].科学技术创新,2021,(22):101-102.

[20]王卉.彭庆福餐厅点单系统的设计与实现[D].南京大学,2020.DOI:10.27235/d.cnki.gnjiu.2020.001531.

                                                  致  谢

在研究的最后,我要衷心感谢所有在我学术道路上给予支持和帮助的人们。

感谢我的导师,您的悉心指导和专业建议让我受益匪浅,您的耐心指导和鼓励让我在研究中不断进步。感谢家人和朋友们,你们的支持和理解是我坚强的后盾,是你们的支持让我能够全身心投入到研究中。

同时,我要感谢所有参与调查和实验的志愿者,是你们的配合和支持让我的研究工作顺利进行,为研究提供了宝贵的数据和信息。

最后,我要感谢所有曾经与我合作、交流过的同行和同事们,你们的讨论和交流让我受益良多,为我的研究提供了新的思路和启发。

感谢每一位曾经帮助过我的人,是你们的支持和鼓励让我能够顺利完成这项研究。在此,我向大家深深地表示感激之情!愿我们共同努力,共同成长,共同迎接更多挑战,共同创造更加美好的未来!

                                           免费领取源码,请点赞关注私信博主

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值