C#(asp.net)美味通餐饮小程序 毕业设计---附源码21390
题 目 美味通餐饮小程序
目录
美味通餐饮小程序为用户提供了全方位的便捷服务,涵盖从餐位预订到在线点餐的各个环节。普通用户通过平台可以轻松注册并登录,浏览首页推荐的饮食资讯和最新的公告信息,快速获取餐位详情并进行预订。同时,用户还可以享受平台的优惠活动,参与互动并享受优惠折扣。在在线点餐过程中,用户能够方便地选择菜品,管理购物车内容,享受便捷的即时购买与在线咨询服务。此外,用户个人中心提供了对基本信息的修改、收藏夹的管理和订单查询等功能,确保个性化体验和更高的使用便利性。
平台的管理员功能则专注于提供高效的运营管理工具,帮助管理员监控平台运营状况、优化服务并及时响应用户需求。管理员能够查看商品销售数据、更新轮播图和发布通知公告,管理用户账户并处理用户反馈。饮食资讯和商品信息的更新、餐位预订状态的调整、退单申请的处理等,均可以通过后台管理系统进行高效操作。这些功能的结合使得平台运营更加顺畅,用户体验得到进一步提升,整体服务质量也得到了保障。
通过这一整套系统,平台不仅提供了便捷、个性化的服务体验,也为管理员提供了全面的管理支持,确保了平台的长期稳定运营与高效服务。
关键词:美味通,餐饮小程序,普通用户,管理员,在线点餐,餐位预订,优惠活动,个人信息管理,平台运营
关键词:美味通餐饮小程序;C#、ASP.NET框架,MySql
Abstract
The delicious food and beverage app provides users with a full range of convenient services, covering all aspects from reservations to online ordering. Ordinary users can easily register and log in through the platform, browse the recommended diet information and the latest announcement information on the home page, quickly obtain the details of the meal and make a reservation. At the same time, users can also enjoy the platform 's preferential activities, participate in interaction and enjoy preferential discounts. In the process of online ordering, users can easily choose dishes, manage shopping cart content, and enjoy convenient instant purchase and online consulting services. In addition, the user 's personal center provides functions such as modifying basic information, managing favorites, and querying orders to ensure a personalized experience and higher ease of use.
The administrator function of the platform focuses on providing efficient operation management tools to help administrators monitor the operation status of the platform, optimize services, and respond to user needs in a timely manner. Administrators can view product sales data, update carousels, publish notification announcements, manage user accounts, and process user feedback. The update of diet information and commodity information, the adjustment of reservation status, the processing of cancellation application, etc., can be efficiently operated through the background management system. The combination of these functions makes the platform operate more smoothly, the user experience is further improved, and the overall service quality is also guaranteed.
Through this complete system, the platform not only provides a convenient and personalized service experience, but also provides comprehensive management support for administrators, ensuring the long-term stable operation and efficient service of the platform.
Keywords: Delicious Catering Mini Program; C #, ASP.NET framework, MySQL
第一章 绪论
1.1选题背景及意义
随着移动互联网的普及和智能化技术的不断发展,微信小程序作为一种新兴的服务平台,在餐饮行业中的应用日益广泛。通过微信小程序,餐饮企业能够为顾客提供便捷的在线点餐、支付及排队服务,极大地提高了就餐效率和用户体验[1]。这一创新模式不仅能够改善传统餐饮服务的繁琐流程,还为餐饮管理提供了更高效的解决方案,特别是在数据分析和客户行为跟踪方面,为餐饮商家提供了精准的决策支持[2]。在餐饮业的数字化转型过程中,微信小程序的设计与实现不断优化餐饮服务模式,使得企业能够在激烈的市场竞争中脱颖而出[3]。通过该平台,商家还能够有效提升运营效率、降低成本并增强顾客粘性[4]。因此,针对“美味通”餐饮小程序的研究,不仅具有重要的理论价值,也为餐饮行业的智能化升级提供了实践参考,推动了行业服务的进一步优化与创新。
1.2国内外研究现状
近年来,微信小程序在餐饮行业的应用取得了显著进展,尤其是在提升用户体验和运营效率方面。基于微信小程序的智能推荐系统,通过分析用户历史消费数据,能够为顾客提供个性化的点餐建议,从而优化点餐流程,提高顾客的满意度和回头率[5]。同时,微信小程序的营销策略也受到越来越多餐饮品牌的关注,一些知名品牌通过小程序实现了精准的市场定位和客户互动,有效提升了品牌的影响力和用户粘性[6]。然而,用户在使用餐饮类微信小程序时,隐私问题成为重要的考虑因素,研究表明,隐私保护的透明度和信息披露直接影响用户的使用意愿,这对餐饮平台的设计和运营提出了更高的要求[7]。此外,微信小程序不仅仅是一个便捷的点餐工具,其在餐饮管理和服务优化方面的潜力也逐渐显现,越来越多的餐饮管理系统开始借助这一平台提升运营效率和服务质量[8]。这些研究为美味通餐饮小程序的开发提供了重要的参考,表明微信小程序在提升餐饮服务和管理效率方面具有巨大的应用前景。
1.3研究方法
首先,通过引擎搜索或者查阅相关文献资料,了解了本系统开发的背景以及设计系统的意义所在,收集用户需求信息。其次,在开发工具上,最终确定是基于Mysql数据库,在Java的C#(ASP.NET )框架设计的基础上实现,设计出系统大致的功能模块。主要从方便系统用户和系统管理员的角度进行分析,明确该系统应该具有的功能。最终是测试系统,通过用例测试发现存在的问题并找到解决的方案。利用现有的开发平台,结合自己所学的知识,在老师的指导帮助下来完成该设计,确保系统的可用性、实用性。
第二章 相关技术介绍
2.1C#开发语言
C#是一种面向对象的程序设计语言,类是C#程序的基本组成单元,类中又包含了属性和方法,在类中又可以创建无数个对象。类中包含的主要成员是字段和方法,字段是指一种数据变量,方法是指对字段进行操作的集合,包括给其他变量赋值、调用方法等。C#代码都是编写在类体中,类体中的每个数据项都可以看作是一个对象,C#不支持类的多重继承,但可以支持接口的多重继承,并且支持类和接口的实现。由于C#通常在网络环境中使用,所以C#提供了一个防止代码恶意攻击的安全机制,同时,C#具有强类型机制、自动收集垃圾和异常处理等特性,这些都是C#语言健壮性的重要保证[3]。
1、C#语言具有如下特点:
(1)C# 结合 C、Java、Perl 以及自创的新语法形成了自己独特的语法。
(2)C#可以更快速的执行动态网页,当然这只是相对于CGI或者Perl来说,C#可以在HTML文档中嵌入程序,而且去执行,另外C#能够实现CGI的所有功能,因此说明C#具有很强大的功能。
(3)大部分当下流行的数据库和操作系统C#语言都能够支持。
(4)C#语言的最重要特点就是可以让C、C++进行扩展
2、C#语言具有如下优势:
(1)开放源代码:事实上C#的所有源代码都可以得到。
(2)免费性:C#是开源代码并且免费
(3)快捷性:C#对于初学者来说,它不止编辑简单可以嵌入与HTML语言中,而且对于程序开发和运行也是非常快速的,并且非常容易掌握。
(4)跨平台性强:C#是可以在服务器运行的脚本语言,所以在UNIX、Android、Mac OS、WINDOWS等操作平台上都可以运行。
(5)效率高:C#对系统资源的消耗相当少,所以它的效率高。
(6)图像处理:C#不止是可以使用GD2对图像进行处理,而且他还可以完成对图像的创建。
(7)面向对象:C#在面向对象上有了许多的改进,C#语言开发大型商业程序也是可以胜任的。
2.2MySQL简介
MySQL是一个开放的、快速的、多线程的SQL关系型数据库服务器。由于其体积小、免费、运行速度快以及可以通过相关免费的软件来对MySql数据库中的相关数据结构信息等等优点。受广大中等、小型企业所喜爱并占据了很大地位。本系统在数据库方面选用MySQL,并通过Nacivat来进行MySql数据库的管理。在Mysql的安装过程中,最需要注意的就是数据库的编码问题,所以在安装数据库时需要设置数据库的编码为Utf-8,与前台页面和服务器的编码相一致。
2.3ASP.NET技术
SpringBoot框架是由Pivotal团队提供的一个全新框架,旨在简化新Spring应用的初始搭建以及开发过程。它并不是一门新技术,而是将之前常用的Spring、SpringMVC、data-jpa等常用的框架封装到了一起,帮助开发者隐藏这些框架的整合细节,实现敏捷开发。
SpringBoot框架的特点包括:
1. 不需要模板化的配置:SpringBoot项目通过特定的方式进行配置,使开发人员不再需要定义样板化的配置。
2. 自动整合第三方框架:在SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了。
3. 配置文件的简化:SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.java的文件去编写配置信息。
此外,SpringBoot框架是构建微服务框架SpringCloud的基础。因此,对于想要从事快速应用开发或微服务开发的开发者来说,掌握SpringBoot框架是非常重要的。
第三章 美味通餐饮小程序需求分析
本章内容概括了美味通餐饮小程序的可行性分析、功能分析以及用例分析。
3.1需求分析
本系统主要完成美味通餐饮系统的设计与实现的功能。系统将完成用户微信一键登录、在线点餐、购物车管理、订单支付、餐桌预订、退单处理、公告展示等功能。除此之外,管理员端将支持菜品管理、餐桌信息维护、订单管理、优惠活动管理及公告发布等操作。
系统的核心是解决餐饮业务中的信息化管理需求,提升用户体验并简化餐厅的运营流程。系统将采用关系型数据库设计,确保数据的高效存储与管理,并使用C#语言结合visual studio开发工具进行后端开发,微信小程序和HTML技术用于前端开发。系统中将设计用户表、订单表、菜品表、餐桌表等数据表,以支持多种功能的实现和数据交互。
整体系统旨在通过高效的点餐和支付流程,以及强大的后台管理,帮助餐饮企业提升运营效率,提供优质的服务,满足用户的多样化需求。
3.2可行性分析
3.2.1技术可行性分析
本系统采用C#(ASP.NET )作为后台开发框架,具有良好的稳定性和扩展性。这些技术广泛应用于企业级项目,开发者资源丰富,能够确保系统高效开发与维护。同时,前端使用微信小程序,可以兼顾页面的美观性与功能性。数据库采用Sqlserver数据库管理系统,确保数据存储的安全性和查询效率,保证系统在高并发情况下的可靠运行。
3.2.2.操作可行性方面
系统的用户界面简洁友好,客户可以通过微信小程序轻松进行点餐、支付和预订等操作,无需复杂的学习成本。对于餐厅管理者,后台系统支持多角色权限分配,管理员可以高效管理菜品、订单、餐桌等信息。系统提供的实时数据同步和操作日志功能,能帮助员工快速适应并上手系统,从而简化餐厅的日常管理。
3.2.3经济可行性分析
本系统采用成熟的开源技术,降低了开发和部署成本。同时,通过减少人工成本、提升订单处理效率,系统可以帮助餐厅优化资源配置,增加营收。小程序的推广成本相对较低,无需下载和维护大型应用,可依托微信平台的用户流量实现精准营销。 综上所述,系统的实施不仅投资成本可控,还能在运营中带来显著的经济收益。
3.3功能性分析
美味通餐饮小程序我划分为了普通用户模块和管理员模块这两大部分。
普通用户模块:
- 注册与登录:用户可以通过注册新账户或使用已有账户登录系统。一旦登录,用户可以享受平台提供的各种服务,包括查看个人信息、订单状态、购物车内容等,方便用户进行管理与操作。
- 首页:用户在首页上可以查看平台的轮播图、推荐的饮食资讯以及最新的通知公告等信息。首页的设计旨在为用户提供直观的餐饮选择和实用的健康资讯,帮助他们快速找到感兴趣的内容。
- 网站公告:平台会发布各种公告,用户可以通过这一功能查看网站公告、关于我们、联系方式、网站介绍等信息,了解平台的整体服务和重要通知,保障用户知情权。
- 餐位信息:用户可以查看餐厅的餐位信息,包括每个餐位的具体情况。平台还允许用户对餐位进行点赞、收藏以及评论,用户可以根据评论和评分做出就餐选择。此外,还可以直接通过平台进行餐位预订。
- 优惠活动:用户能够查看当前平台提供的优惠活动详情,并对活动内容进行点赞、收藏和评论,享受平台提供的各种优惠折扣,提升用餐体验。
- 在线点餐:用户可以浏览并选择平台上的餐品详情,将自己喜欢的菜品添加到购物车中。同时,平台提供即时购买和在线咨询服务,用户可以方便地完成点餐、付款等操作。
- 饮食资讯:此功能为用户提供关于饮食健康、营养知识、餐厅推荐等相关资讯。用户可以根据自己的需求,随时查看最新的健康饮食信息,为日常饮食做出科学选择。
- 购物车:在购物过程中,用户选中的商品会自动进入购物车。用户可以在购物车内查看商品详情、修改商品数量、删除不需要的商品或完成购买,管理自己的购物清单。
- 我的:用户的个人中心,包括以下功能:
- 基本信息:用户可以修改个人资料和密码,确保账户信息的更新和安全。
- 收藏:查看并管理用户收藏的餐位、饮食资讯等内容,方便日后快速访问。
- 订单:用户可以查看自己所有的订单记录,了解历史订单的详情和状态。
- 购物车:用户可以随时查看购物车中的商品并进行修改或购买。
- 餐位预订:用户可以查询餐位的可用情况,进行餐位预订操作。
- 退单申请:在需要时,用户可以提交退单申请,平台会处理相关事宜。
- 申请信息:查看与餐位、订单等相关的申请信息,跟踪请求的处理进度。
- 网站公告:普通用户可以查看网站公告、关于我们、联系方式、网站介绍以及通知公告等内容,了解平台的最新动态和相关信息。
管理员管理模块:
- 登录:管理员使用账号和密码登录系统后台。登录后,管理员能够访问所有管理功能,进行平台日常的各项操作。
- 首页:在首页,管理员能够查看平台的商品销售金额统计以及其他相关运营数据,帮助管理员实时掌握平台的运营状态并进行决策。
- 公共管理:
- 轮播图信息:管理员可以对平台首页的轮播图进行管理,包括新增、重置、删除或修改图片内容,以确保平台展示的内容始终更新和符合用户需求。
- 通知公告:管理员能够管理平台的通知公告,发布或删除最新的公告信息,确保平台的用户及时了解各种重要通知和更新。
- 用户管理:管理员可查询所有用户信息,重置用户密码,删除违规用户账号,添加新用户,并查看用户详情。
- 资讯管理:
- 饮食资讯:管理员可以新增、删除或修改平台的饮食资讯内容,保持资讯的时效性和多样性,确保用户能够获取最新的健康饮食信息。
- 资讯分类:管理员可以对饮食资讯进行分类管理,以帮助用户更便捷地查找所需的内容,提高平台的用户体验。
- 商城管理:
- 在线点餐商品:管理员可以管理在线点餐的商品信息,包括新增、删除或修改商品资料,确保商品信息的准确性和更新。
- 商品分类列表:管理员能够对商品进行分类,方便用户根据菜品类型进行浏览,提升平台的用户体验。
- 订单列表:管理员可以查看用户的订单详情,管理和处理订单状态,确保订单的顺利配送和处理。
- 餐位信息管理:管理员可以查询、管理并及时更新用户的餐位预订信息,修改预订状态或回复用户的咨询与调整要求,确保餐位安排的合理性、准确性以及用户需求的及时处理。
- 餐位预订管理:管理员可以查询和管理用户的餐位预订信息,及时更新预订状态,确保餐位安排的合理性与准确性。
- 优惠活动管理:管理员能够查看和管理平台的优惠活动信息,包括新增、删除、修改活动内容等,确保活动信息的时效性和准确性。
- 退单申请管理:管理员可以查看、重置、删除或添加退单申请的详细信息,并审核和处理退单申请,确保退单流程的顺畅。
- 修改密码:管理员可以修改自己的登录密码,确保账户的安全性。
- 退出:管理员完成操作后,可以安全退出后台系统,防止账户信息泄露
3.4系统功能分析
3.4.1非功能性分析
美味通餐饮小程序的非功能性需求,比如美味通餐饮小程序的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1美味通餐饮小程序非功能需求表
|
安全性 |
主要指美味通餐饮小程序数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
|
可靠性 |
可靠性是指美味通餐饮小程序能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
|
性能 |
性能是影响美味通餐饮小程序占据市场的必要条件,所以性能最好要佳才好。 |
|
可扩展性 |
比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
|
易用性 |
用户只要跟着美味通餐饮小程序的页面展示内容进行操作,就可以了。 |
|
可维护性 |
美味通餐饮小程序开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.5系统用例分析
美味通餐饮小程序的完整UML用例图分别是图3-2、3-3、普通用户角色用例如图3-2所示。

图3-2美味通餐饮小程序普通用户角色用例图
web后台管理上的管理员是维护整个美味通餐饮小程序中所有数据信息的,管理员角色用例如图3-3所示。

3.6本章小结
本章主要通过对美味通餐饮小程序的可行性分析、功能需求分析、系统用例分析,确定整个美味通餐饮小程序要实现的功能。同时也为美味通餐饮小程序的代码实现和测试提供了标准。
第四章 美味通餐饮小程序总体设计
本章主要讨论的内容包括美味通餐饮小程序的功能模块设计、数据库系统设计。
4.1系统架构设计
本美味通餐饮小程序从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图4-1美味通餐饮小程序架构设计图
表现层(UI):又称UI层,主要完成本美味通餐饮小程序的UI交互功能,一个良好的UI可以大大提高用户的用户体验,增强用户使用本美味通餐饮小程序时的舒适度。UI的界面设计也要适应不同版本的美味通餐饮小程序以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本美味通餐饮小程序的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本美味通餐饮小程序的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本美味通餐饮小程序的数据存储和管理功能。
4.2系统模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本美味通餐饮小程序中的用例。那么接下来就要开始对本美味通餐饮小程序的架构、主要功能和数据库开始进行设计。美味通餐饮小程序根据前面章节的需求分析得出,其总体设计模块图如图4-2所示。

图4-2 美味通餐饮小程序功能模块图
4.3数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.3.1数据库概念结构设计
下面是整个美味通餐饮小程序中主要的数据库表总E-R实体关系图。

图4-3 美味通餐饮小程序总E-R关系图
4.3.2数据库逻辑结构设计
通过上一小节中美味通餐饮小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
token_id |
int |
是 |
是 |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
否 |
否 |
临时访问牌 |
|
3 |
info |
text |
65535 |
否 |
否 |
信息 |
|
4 |
maxage |
int |
是 |
否 |
最大寿命:默认2小时 |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
user_id |
int |
是 |
否 |
用户编号 |
表 4-2-article(文章)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
article_id |
mediumint |
是 |
是 |
文章id |
|
|
2 |
title |
varchar |
125 |
是 |
是 |
标题 |
|
3 |
type |
varchar |
64 |
是 |
否 |
文章分类 |
|
4 |
hits |
int |
是 |
否 |
点击数 |
|
|
5 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
6 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
7 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
8 |
source |
varchar |
255 |
否 |
否 |
来源 |
|
9 |
url |
varchar |
255 |
否 |
否 |
来源地址 |
|
10 |
tag |
varchar |
255 |
否 |
否 |
标签 |
|
11 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
12 |
img |
varchar |
255 |
否 |
否 |
封面图 |
|
13 |
description |
text |
65535 |
否 |
否 |
文章描述 |
表 4-3-article_type(文章分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_id |
smallint |
是 |
是 |
分类ID |
|
|
2 |
display |
smallint |
是 |
否 |
显示顺序 |
|
|
3 |
name |
varchar |
16 |
是 |
否 |
分类名称 |
|
4 |
father_id |
smallint |
是 |
否 |
上级分类ID |
|
|
5 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
6 |
icon |
text |
65535 |
否 |
否 |
分类图标 |
|
7 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-4-auth(用户权限管理)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
auth_id |
int |
是 |
是 |
授权ID |
|
|
2 |
user_group |
varchar |
64 |
否 |
否 |
用户组 |
|
3 |
mod_name |
varchar |
64 |
否 |
否 |
模块名 |
|
4 |
table_name |
varchar |
64 |
否 |
否 |
表名 |
|
5 |
page_title |
varchar |
255 |
否 |
否 |
页面标题 |
|
6 |
path |
varchar |
255 |
否 |
否 |
路由路径 |
|
7 |
parent |
varchar |
64 |
否 |
否 |
父级菜单 |
|
8 |
parent_sort |
int |
是 |
否 |
父级菜单排序 |
|
|
9 |
position |
varchar |
32 |
否 |
否 |
位置 |
|
10 |
mode |
varchar |
32 |
是 |
否 |
跳转方式 |
|
11 |
add |
tinyint |
是 |
否 |
是否可增加 |
|
|
12 |
del |
tinyint |
是 |
否 |
是否可删除 |
|
|
13 |
set |
tinyint |
是 |
否 |
是否可修改 |
|
|
14 |
get |
tinyint |
是 |
否 |
是否可查看 |
|
|
15 |
field_add |
text |
65535 |
否 |
否 |
添加字段 |
|
16 |
field_set |
text |
65535 |
否 |
否 |
修改字段 |
|
17 |
field_get |
text |
65535 |
否 |
否 |
查询字段 |
|
18 |
table_nav_name |
varchar |
500 |
否 |
否 |
跨表导航名称 |
|
19 |
table_nav |
varchar |
500 |
否 |
否 |
跨表导航 |
|
20 |
option |
text |
65535 |
否 |
否 |
配置 |
|
21 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
22 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-5-cart(购物车)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
cart_id |
int |
是 |
是 |
购物车ID |
|
|
2 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
3 |
img |
varchar |
255 |
是 |
否 |
图片 |
|
4 |
user_id |
int |
是 |
否 |
用户ID |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
state |
int |
是 |
否 |
状态:使用中,已失效 |
|
|
8 |
price |
double |
是 |
否 |
单价 |
|
|
9 |
price_ago |
double |
是 |
否 |
原价 |
|
|
10 |
price_count |
double |
是 |
否 |
总价 |
|
|
11 |
num |
int |
是 |
否 |
数量 |
|
|
12 |
goods_id |
mediumint |
是 |
是 |
商品id |
|
|
13 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
|
14 |
description |
varchar |
255 |
否 |
否 |
描述 |
表 4-6-code_token(验证码)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
code_token_id |
int |
是 |
是 |
验证码ID |
|
|
2 |
token |
varchar |
255 |
否 |
否 |
令牌 |
|
3 |
code |
varchar |
255 |
否 |
否 |
验证码 |
|
4 |
expire_time |
timestamp |
是 |
否 |
失效时间 |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-7-collect(收藏)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
collect_id |
int |
是 |
是 |
收藏ID |
|
|
2 |
user_id |
int |
是 |
是 |
收藏人ID |
|
|
3 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
4 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
5 |
source_id |
int |
是 |
否 |
来源ID |
|
|
6 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
7 |
img |
varchar |
255 |
否 |
否 |
封面 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-8-comment(评论)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
comment_id |
int |
是 |
是 |
评论ID |
|
|
2 |
user_id |
int |
是 |
是 |
评论人ID |
|
|
3 |
reply_to_id |
int |
是 |
否 |
回复评论ID |
|
|
4 |
content |
longtext |
4294967295 |
否 |
否 |
内容 |
|
5 |
nickname |
varchar |
255 |
否 |
否 |
昵称 |
|
6 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
9 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
10 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
11 |
source_id |
int |
是 |
否 |
来源ID |
表 4-9-discounted_activities(优惠活动)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
discounted_activities_id |
int |
是 |
是 |
优惠活动ID |
|
|
2 |
event_name |
varchar |
64 |
否 |
否 |
活动名称 |
|
3 |
event_date |
date |
否 |
否 |
活动日期 |
|
|
4 |
event_deadline |
varchar |
64 |
否 |
否 |
活动期限 |
|
5 |
activity_intensity |
varchar |
64 |
否 |
否 |
活动力度 |
|
6 |
cover_photo |
varchar |
255 |
否 |
否 |
封面图片 |
|
7 |
activity_content |
text |
65535 |
否 |
否 |
活动内容 |
|
8 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
9 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
10 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
11 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
12 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-10-goods(商品信息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
goods_id |
mediumint |
是 |
是 |
产品ID |
|
|
2 |
title |
varchar |
125 |
否 |
否 |
标题 |
|
3 |
img |
text |
65535 |
否 |
否 |
封面图:用于显示于产品列表页 |
|
4 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
price_ago |
double |
是 |
否 |
原价 |
|
|
6 |
price |
double |
是 |
否 |
卖价 |
|
|
7 |
sales |
int |
是 |
否 |
销量 |
|
|
8 |
inventory |
int |
是 |
否 |
商品库存 |
|
|
9 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
|
10 |
hits |
int |
是 |
否 |
点击量 |
|
|
11 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
12 |
img_1 |
text |
65535 |
否 |
否 |
主图1 |
|
13 |
img_2 |
text |
65535 |
否 |
否 |
主图2 |
|
14 |
img_3 |
text |
65535 |
否 |
否 |
主图3 |
|
15 |
img_4 |
text |
65535 |
否 |
否 |
主图4 |
|
16 |
img_5 |
text |
65535 |
否 |
否 |
主图5 |
|
17 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
18 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
19 |
customize_field |
text |
65535 |
否 |
否 |
自定义字段 |
|
20 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
21 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
22 |
source_id |
int |
是 |
否 |
来源ID |
|
|
23 |
user_id |
int |
否 |
否 |
添加人 |
表 4-11-goods_type(商品类型)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_id |
int |
是 |
是 |
商品分类ID |
|
|
2 |
father_id |
smallint |
是 |
否 |
上级分类ID |
|
|
3 |
name |
varchar |
255 |
否 |
否 |
商品名称 |
|
4 |
desc |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
icon |
varchar |
255 |
否 |
否 |
图标 |
|
6 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
7 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-12-hits(用户点击)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
hits_id |
int |
是 |
是 |
点赞ID |
|
|
2 |
user_id |
int |
是 |
否 |
点赞人 |
|
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
表 4-13-meal_information(餐位信息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
meal_information_id |
int |
是 |
是 |
餐位信息ID |
|
|
2 |
table_name |
varchar |
64 |
否 |
否 |
餐位名称 |
|
3 |
suitable_number_of_people |
varchar |
64 |
否 |
否 |
适合人数 |
|
4 |
dining_status |
varchar |
64 |
否 |
否 |
餐位状态 |
|
5 |
dining_position |
varchar |
64 |
否 |
否 |
餐位位置 |
|
6 |
cover_photo |
varchar |
255 |
否 |
否 |
封面图片 |
|
7 |
table_description |
text |
65535 |
否 |
否 |
餐位描述 |
|
8 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
9 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
10 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
11 |
meal_reservation_limit_times |
int |
是 |
否 |
预订限制次数 |
|
|
12 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
13 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-14-meal_reservation(餐位预订)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
meal_reservation_id |
int |
是 |
是 |
餐位预订ID |
|
|
2 |
table_name |
varchar |
64 |
否 |
否 |
餐位名称 |
|
3 |
suitable_number_of_people |
varchar |
64 |
否 |
否 |
适合人数 |
|
4 |
user_information |
int |
否 |
否 |
用户信息 |
|
|
5 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
6 |
contact_number |
varchar |
64 |
否 |
否 |
联系电话 |
|
7 |
booking_date |
date |
否 |
否 |
预订日期 |
|
|
8 |
booking_content |
text |
65535 |
否 |
否 |
预订内容 |
|
9 |
booking_status |
varchar |
64 |
否 |
否 |
预订状态 |
|
10 |
booking_reply |
text |
65535 |
否 |
否 |
预订回复 |
|
11 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
12 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
13 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
14 |
source_id |
int |
否 |
否 |
来源ID |
|
|
15 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-15-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
是 |
是 |
公告ID |
|
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-16-online_ordering(在线点餐)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
online_ordering_id |
int |
是 |
是 |
在线点餐ID |
|
|
2 |
order_notice |
varchar |
64 |
否 |
否 |
下单须知 |
|
3 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
4 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
5 |
cart_title |
varchar |
125 |
否 |
否 |
标题:[0,125]用于产品html的标签中 |
|
6 |
cart_img |
text |
65535 |
否 |
否 |
封面图:用于显示于产品列表页 |
|
7 |
cart_description |
varchar |
255 |
否 |
否 |
描述:[0,255]用于产品规格描述 |
|
8 |
cart_price_ago |
double |
是 |
否 |
原价:[1] |
|
|
9 |
cart_price |
double |
是 |
否 |
卖价:[1] |
|
|
10 |
cart_inventory |
int |
是 |
否 |
商品库存 |
|
|
11 |
cart_type |
varchar |
64 |
是 |
否 |
商品分类: |
|
12 |
cart_content |
longtext |
4294967295 |
否 |
否 |
正文:产品的主体内容 |
|
13 |
cart_img_1 |
text |
65535 |
否 |
否 |
主图1: |
|
14 |
cart_img_2 |
text |
65535 |
否 |
否 |
主图2: |
|
15 |
cart_img_3 |
text |
65535 |
否 |
否 |
主图3: |
|
16 |
cart_img_4 |
text |
65535 |
否 |
否 |
主图4: |
|
17 |
cart_img_5 |
text |
65535 |
否 |
否 |
主图5: |
|
18 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
19 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-17-order(订单)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
order_id |
int |
是 |
是 |
订单ID |
|
|
2 |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
|
3 |
goods_id |
mediumint |
是 |
是 |
商品ID |
|
|
4 |
title |
varchar |
255 |
否 |
否 |
商品标题 |
|
5 |
img |
varchar |
255 |
否 |
否 |
商品图片 |
|
6 |
price |
double |
是 |
否 |
价格 |
|
|
7 |
price_ago |
double |
是 |
否 |
原价 |
|
|
8 |
num |
int |
是 |
否 |
数量 |
|
|
9 |
price_count |
double |
是 |
否 |
总价 |
|
|
10 |
norms |
varchar |
255 |
否 |
否 |
规格 |
|
11 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
|
12 |
contact_name |
varchar |
32 |
否 |
否 |
联系人姓名 |
|
13 |
contact_email |
varchar |
125 |
否 |
否 |
联系人邮箱 |
|
14 |
contact_phone |
varchar |
11 |
否 |
否 |
联系人手机 |
|
15 |
contact_address |
varchar |
255 |
否 |
否 |
收件地址 |
|
16 |
postal_code |
varchar |
9 |
否 |
否 |
邮政编码 |
|
17 |
user_id |
int |
是 |
否 |
买家ID |
|
|
18 |
merchant_id |
mediumint |
是 |
否 |
商家ID |
|
|
19 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
20 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
21 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
22 |
state |
varchar |
16 |
是 |
否 |
订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
|
23 |
remark |
text |
65535 |
否 |
否 |
订单备注 |
|
24 |
delivery_state |
varchar |
16 |
否 |
否 |
发货状态:未配送,已配送 |
|
25 |
vip_discount |
double |
否 |
否 |
折扣 |
表 4-18-ordinary_users(普通用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
ordinary_users_id |
int |
是 |
是 |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
3 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
4 |
contact_number |
varchar |
16 |
否 |
否 |
联系电话 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
是 |
否 |
用户ID |
|
|
7 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-19-praise(点赞)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
praise_id |
int |
是 |
是 |
点赞ID |
|
|
2 |
user_id |
int |
是 |
是 |
点赞人 |
|
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
|
|
8 |
status |
tinyint |
是 |
否 |
点赞状态:1为点赞,0已取消 |
表 4-20-refund_application(退单申请)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
refund_application_id |
int |
是 |
是 |
退单申请ID |
|
|
2 |
order_number |
varchar |
64 |
否 |
否 |
订单编号 |
|
3 |
user_information |
int |
否 |
否 |
用户信息 |
|
|
4 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
5 |
contact_number |
varchar |
64 |
否 |
否 |
联系电话 |
|
6 |
reason_for_refund |
text |
65535 |
否 |
否 |
退单原因 |
|
7 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
8 |
examine_reply |
varchar |
16 |
否 |
否 |
审核回复 |
|
9 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-21-schedule(日程管理)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
schedule_id |
smallint |
是 |
是 |
日程ID |
|
|
2 |
content |
varchar |
255 |
否 |
否 |
日程内容 |
|
3 |
scheduled_time |
datetime |
否 |
否 |
计划时间 |
|
|
4 |
user_id |
int |
是 |
否 |
用户ID |
|
|
5 |
create_time |
datetime |
否 |
否 |
创建时间 |
|
|
6 |
update_time |
datetime |
否 |
否 |
更新时间 |
表 4-22-score(评分)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
score_id |
int |
是 |
是 |
评分ID |
|
|
2 |
user_id |
int |
是 |
否 |
评分人 |
|
|
3 |
nickname |
varchar |
64 |
否 |
否 |
昵称 |
|
4 |
score_num |
double |
是 |
否 |
评分 |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
8 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
9 |
source_id |
int |
是 |
否 |
来源ID |
表 4-23-slides(轮播图)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
slides_id |
int |
是 |
是 |
轮播图ID |
|
|
2 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
3 |
content |
varchar |
255 |
否 |
否 |
内容 |
|
4 |
url |
varchar |
255 |
否 |
否 |
链接 |
|
5 |
img |
varchar |
255 |
否 |
否 |
轮播图 |
|
6 |
hits |
int |
是 |
否 |
点击量 |
|
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-24-upload(文件上传)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
upload_id |
int |
是 |
是 |
上传ID |
|
|
2 |
name |
varchar |
64 |
否 |
否 |
文件名 |
|
3 |
path |
varchar |
255 |
否 |
否 |
访问路径 |
|
4 |
file |
varchar |
255 |
否 |
否 |
文件路径 |
|
5 |
display |
varchar |
255 |
否 |
否 |
显示顺序 |
|
6 |
father_id |
int |
否 |
否 |
父级ID |
|
|
7 |
dir |
varchar |
255 |
否 |
否 |
文件夹 |
|
8 |
type |
varchar |
32 |
否 |
否 |
文件类型 |
表 4-25-user(用户账户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_id |
int |
是 |
是 |
用户ID |
|
|
2 |
state |
smallint |
是 |
否 |
账户状态:(1可用|2异常|3已冻结|4已注销) |
|
|
3 |
user_group |
varchar |
32 |
否 |
否 |
所在用户组 |
|
4 |
login_time |
timestamp |
是 |
否 |
上次登录时间 |
|
|
5 |
phone |
varchar |
11 |
否 |
否 |
手机号码 |
|
6 |
phone_state |
smallint |
是 |
否 |
手机认证:(0未认证|1审核中|2已认证) |
|
|
7 |
username |
varchar |
16 |
是 |
否 |
用户名 |
|
8 |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
|
9 |
password |
varchar |
64 |
是 |
否 |
密码 |
|
10 |
|
varchar |
64 |
否 |
否 |
邮箱 |
|
11 |
email_state |
smallint |
是 |
否 |
邮箱认证:(0未认证|1审核中|2已认证) |
|
|
12 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
13 |
open_id |
varchar |
255 |
否 |
否 |
针对获取用户信息字段 |
|
14 |
create_time |
timestamp |
是 |
否 |
创建时间 |
表 4-26-user_group(用户组)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
group_id |
mediumint |
是 |
是 |
用户组ID |
|
|
2 |
display |
smallint |
是 |
否 |
显示顺序 |
|
|
3 |
name |
varchar |
16 |
是 |
否 |
名称 |
|
4 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
|
|
8 |
register |
smallint |
否 |
否 |
注册位置 |
|
|
9 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
是 |
否 |
更新时间 |
4.4本章小结
整个美味通餐饮小程序的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
第五章 美味通餐饮小程序详细设计与实现
美味通餐饮小程序的详细设计与实现主要是根据前面的美味通餐饮小程序的需求分析和美味通餐饮小程序的总体设计来设计页面并实现业务逻辑。主要从美味通餐饮小程序界面实现、业务逻辑实现这两部分进行介绍。
5.1前台首页界面
用户在首页上可以查看平台的轮播图、推荐的饮食资讯以及最新的通知公告等信息。首页的设计旨在为用户提供直观的餐饮选择和实用的健康资讯,帮助他们快速找到感兴趣的内容。前台首页界面展示如下图所示。

图5-1 前台首页界面图
5.2用户注册界面
不是美味通餐饮小程序中正式用户的是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+手机号+身份+用户姓名+用户性别等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图所示。

图5-2前台用户注册界面图
注册代码如下:
/
* 注册
* @param user
* @return
*/
@PostMapping("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);
}
5.3用户登录界面
美味通餐饮小程序中的前台上注册后的用户是可以通过自己的用户名+密码进行登录的,当用户输入完整的自己的用户名+密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的用户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到美味通餐饮小程序的首页中;否则将会提示相应错误信息,用户登录界面如下图所示。

图5-3用户登录界面图
登录代码如下:
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("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, "账号或密码不正确");
}
}
5.4普通用户模块
5.4.1网站公告界面
网站公告:用户可以浏览网站发布的各类公告,获取网站的最新动态和重要通知。网站公告界面如下图所示:

图5-4网站公告界面图
5.4.2餐位信息界面
用户可以查看餐厅的餐位信息,包括每个餐位的具体情况。平台还允许用户对餐位进行点赞、收藏以及评论,用户可以根据评论和评分做出就餐选择。此外,还可以直接通过平台进行餐位预订。餐位信息列表界面如下图所示:

图5-5餐位信息列表界面图

图5-6餐位预订界面图
5.4.3饮食资讯界面
此功能为用户提供关于饮食健康、营养知识、餐厅推荐等相关资讯。用户可以根据自己的需求,随时查看最新的健康饮食信息,为日常饮食做出科学选择。饮食资讯详情界面如下图所示:

图5-7饮食资讯详情界面图
5.4.4我的界面
我的:普通用户可以查看个人信息、编辑资料、管理个人收藏和设置等,让用户拥有更加私密和个性化的使用体验。我的界面如下图所示:

图5-8我的界面图
5.5管理员模块
5.5.1公共管理界面
管理员可以对平台首页的轮播图进行管理,包括新增、重置、删除或修改图片内容,同时也能发布或删除最新的通知公告,确保平台展示的内容始终更新,及时传达重要通知和更新信息,满足用户需求。公共管理界面如下图所示:

图5-9公共管理界面图
5.5.2资讯管理界面
管理员可以对平台的饮食资讯进行新增、删除或修改,以保持资讯的时效性和多样性,同时对资讯进行分类管理,帮助用户更便捷地查找所需内容,从而提升平台的用户体验。资讯管理界面如下图所示:

图5-10资讯管理界面图
5.5.3商城管理界面
管理员可以管理在线点餐商品信息,包括新增、删除或修改商品资料,并对商品进行分类,方便用户根据菜品类型进行浏览。同时,管理员可以查看和处理订单详情,管理订单状态,确保订单的顺利配送和处理,提升平台的运营效率和用户体验。商城管理如下图所示。

图5-10商城管理界面图
5.5.4优惠活动管理界面
管理员能够查看和管理平台的优惠活动信息,包括新增、删除、修改活动内容等,确保活动信息的时效性和准确性。优惠活动管理添加界面如下图所示。

图5-11优惠活动管理添加界面图
第六章 系统测试
系统的前台、后台、数据库完成以后,这个系统才算是完成了一半,我们在这之后要对系统进行最后的一个阶段,那就是测试了,测试对一个系统来说是非常重要的,有的时候开发完一个系统,如果测试不合格的话,这个系统是没有办法进行投入使用的,所有我们要用测试对系统的功能进行检验,把不完善的功能尽量完善,把出现的bug解决掉,然后给用户呈现出一个完美的系统。通过对系统最后一步的测试,使得开发人员对自己的系统更加有信心,更加积极的为后期的系统版本的更新提供支持。
6.1系统测试的目的
一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。
6.2测试用例
6.2.1评论测试
表6-1 评论测试用例
|
测试用例编号 |
YL_03 |
|
|
测试用例名称 |
系统使用者进行在线交流 |
|
|
测试用例描述 |
使用者输入交流标题、内容等信息 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
输入完整的评论标题和内容 |
提示“评论成功”,并进入系统 |
预期结果 |
|
不输入的评论标题和内容 |
提示“请输入完整” |
预期结果 |
6.2.2创建数据测试
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如下表所示。
表6-2 创建数据测试用例
|
测试用例编号 |
YL_05 |
|
|
测试用例名称 |
系统使用者进行创建数据 |
|
|
测试用例描述 |
使用者输入要创建的数据 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
输入完整并且格式正确的数据 |
提示“创建成功”,并显示所有数据 |
预期结果 |
|
核心位置数据但非必要位置不输入数据 |
提示“创建成功”,并显示所有数据 |
预期结果 |
|
核心数据位置不输入数据 |
提示“创建失败” |
预期结果 |
6.2.3修改数据测试
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如下表所示。
表6-3 修改数据测试用例
|
测试用例编号 |
YL_06 |
|
|
测试用例名称 |
系统使用者进行修改数据 |
|
|
测试用例描述 |
使用者对可修改的数据项进行修改 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
将现有数据修改成正确的数据 |
提示“修改成功”,并显示所有数据 |
预期结果 |
|
将现有数据修改成错误的数据 |
提示“修改失败” |
预期结果 |
6.2.4查询数据测试
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如下表所示。
表6-4 查询数据测试用例
|
测试用例编号 |
YL_05 |
|
|
测试用例名称 |
系统使用者进行查询数据 |
|
|
测试用例描述 |
全部查询以及输入关键词查询 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
界面自动查询全部 |
显示对应所有记录 |
预期结果 |
|
输入已存在且能匹配成功的关键字 |
显示所查询到的数据 |
预期结果 |
|
输入不存在的关键字 |
显示数据界面为空 |
预期结果 |
6.3测试结果
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。
结论
美味通餐饮小程序的推出,标志着餐饮行业在数字化转型方面迈出了重要一步。通过集成化的在线点餐、餐位预订、订单管理等功能,平台为用户和餐饮商家提供了更加便捷、高效的服务体验。用户能够在手机端快速浏览菜单、预定座位、下单点餐,不仅减少了传统餐饮模式中的等待时间,也提升了就餐体验的灵活性和个性化。同时,平台为餐饮商家提供了强大的后台管理功能,使商家能够实时更新商品信息、调整库存、管理订单,确保了整个服务过程的顺利运转。这种便捷的数字化管理,提升了运营效率,降低了人工成本,也增强了商家与顾客之间的互动和粘性。
通过美味通,餐饮商家能够实时跟踪订单状态、分析消费数据、优化菜单布局,并根据用户需求进行精准营销和服务调整。这种数据驱动的管理方式,使餐饮商家能够及时捕捉市场动态,做出更快速且精准的决策。在激烈的市场竞争中,平台的灵活性和智能化使商家能够更好地适应市场变化,提高运营效率,增强竞争力。对于消费者而言,美味通不仅提供了便捷的点餐和预订功能,更通过个性化推荐和健康饮食资讯,提升了用户的整体用餐体验,打造了一种全新的餐饮消费模式。随着平台功能的不断完善和技术的不断更新,美味通无疑将在未来的餐饮行业中占据一席之地,推动行业的进一步发展与创新。
参考文献
- 李新锦,鲁志萍,刘苑如. 基于微信小程序的校园点餐系统的设计 [J]. 电脑知识与技术, 2020, 16 (07): 50-51+56.
- 韦婉辰,卢华. 基于微信小程序的校园订餐管理系统的设计与实现 [J]. 信息记录材料, 2022, 23 (05): 119-122.
- 陈帅. 微信点餐系统小程序的设计与实现 [J]. 电子技术与软件工程, 2021, (24): 30-31.
- 于莉,张哲坤,白天. 基于微信小程序的高校就餐食堂管理与开发 [J]. 电子世界, 2021, (14): 204-205.
- 李昊. 基于微信小程序的智能推荐点餐系统的设计与实现[D]. 南京邮电大学, 2020.
- 王易,曹瑞吉. 微信小程序在餐饮行业的营销策略研究——以肯德基为例 [J]. 现代营销(下旬刊), 2020, (06): 82-83.
- 曾爽. 隐私披露视角下餐饮类微信小程序使用意愿影响因素研究[D]. 南京财经大学, 2023.
- 孙浩天,戴坤,韩嘉熠,等. 基于微信小程序的高校智慧餐饮系统研究与设计 [J]. 网络安全技术与应用, 2022, (08): 41-43.
- 詹文韬,袁绪川,姜明辉,等. 不同定价策略下基于等待区增值服务的餐饮企业运营决策研究 [J]. 管理学报, 2025, 22 (02): 355-365.
- 王秋红,席亚敬. 基于高职餐饮服务与管理课程思政的设计与实施 [J]. 产业与科技论坛, 2024, 23 (22): 112-114.
- 孙胜男. 基于移动端的校园智慧餐饮系统研究与设计 [J]. 现代食品, 2024, 30 (20): 82-84.
- 黄广博,孙东阳,谭媛媛,等. 考前餐饮服务系统的设计与实现 [J]. 中外食品工业, 2024, (18): 91-94.
- 向文蔚. 湖南茶悦餐饮管理公司营销策略改进研究[D]. 湖南大学, 2023.
- 刘佳影. 基于MINA框架的社区食堂智慧餐饮系统 [J]. 信息与电脑(理论版), 2023, 35 (02): 144-146.
- 吴宝歧. MC餐饮公司营销策略研究[D]. 延边大学, 2022.
- 汪晶. 电子商务融入餐饮业的实践研究 [J]. 中国食品, 2025, (04): 99-101.
- Azzoni R C ,Moita M R ,Rodrigues M . Meal delivery and the local restaurant industry [J]. Applied Geography, 2025, 176 103524-103524.
- 缪雨. 校园餐饮电子商务贸易平台建设的可行性研究 [J]. 文化创新比较研究, 2020, 4 (01): 179-180.
- Koppenberg M ,Wimmer S ,Hirsch S . Has corporate greed driven inflation in the European Union? An analysis of the food and beverage industry [J]. Economics Letters, 2025, 247 112164-112164.
- Gopal S ,Gil T M ,Salian C B , et al. Optimizing digital menus for enhanced purchase intentions: insights from India’s restaurant industry in the post-COVID-19 era [J]. Cogent Business & Management, 2024, 11 (1):
致 谢
经过精心策划和实施,我们完成了美味通餐饮小程序的设计与开发工作。在此,我要向所有给予我支持和帮助的老师、同学和朋友表达最诚挚的感谢。没有老师们的专业指导,我不可能掌握如此丰富的知识和技能。老师们严谨的工作态度,为我们树立了优秀的榜样。
在系统开发的过程中,我深刻认识到学习的重要性。前端框架、后端框架、业务流程、数据结构、操作系统等各个领域的知识都极为重要,需要我不断深入研究。在此,我要特别感谢老师们的悉心教导,他们的付出和努力让我受益匪浅。我想说:“老师,您辛苦了!有您的指导,我的大学生活才更加充实。”
同时,我也要感谢我的室友们。在开发过程中,他们给予了我很多宝贵的建议和支持,帮助我解决了许多难题。此外,我还要向那些为计算机科学领域做出杰出贡献的先哲们表示敬意。正是有了他们的智慧和付出,我们才能站在巨人的肩膀上,看得更远,走得更稳。
最后,我希望自己能够在未来的道路上继续努力,不辜负大学时光和老师们的期望。我将不断追求进步,为实现自己的理想和目标而努力拼搏。
点赞+收藏+关注 → 私信领取本源代码、数据库
更多推荐
所有评论(0)