摘  要

随着互联网技术的快速发展和智能手机的普及,在线美食分享平台逐渐成为人们日常生活的重要组成部分。本文围绕基于UniApp的美食分享平台的设计与实现进行了深入研究,旨在为用户提供一个便捷、高效的美食交流与分享环境。平台主要面向普通用户和管理员,普通用户可以通过注册登录、浏览美食资讯、参与交流论坛、查看店铺信息等功能,提升其美食体验与社交互动;而管理员则可以通过后台管理系统,进行用户管理、店铺信息审核、美食分类管理、公告发布等操作,以确保平台的正常运营和内容的质量。

本文首先分析了现有美食分享平台的不足之处,提出了基于UniApp构建美食分享平台的必要性和可行性。接着,详细阐述了平台的系统架构、功能模块设计及其实现方法,采用了前后端分离的架构,利用UniApp的跨平台特性,实现了在多种设备上的无缝访问。最后,通过实际案例对平台的性能和用户体验进行了评估,结果表明该平台在美食分享、交流互动以及信息获取方面具有良好的用户反馈和市场潜力。

综上所述,基于UniApp的美食分享平台不仅满足了用户对美食信息的需求,还为餐饮商家提供了有效的宣传和推广渠道,具有广阔的应用前景和社会价值。未来,平台将继续优化功能,提升用户体验,以适应不断变化的市场需求。

关键词:美食分享;Spring Boot;UniApp;用户体验

Abstract

With the rapid development of Internet technology and the popularity of smart phones, online food sharing platform has gradually become an important part of people's daily life. This article conducts in-depth research on the design and implementation of a food sharing platform based on UniApp, aiming to provide users with a convenient and efficient environment for food communication and sharing. The platform is mainly aimed at ordinary users and administrators. Ordinary users can enhance their food experience and social interaction by registering and logging in, browsing food information, participating in communication forums, and viewing store information; Administrators can perform user management, store information review, food classification management, announcement publishing, and other operations through the backend management system to ensure the normal operation of the platform and the quality of content.

This article first analyzes the shortcomings of existing food sharing platforms and proposes the necessity and feasibility of building a food sharing platform based on UniApp. Next, the system architecture, functional module design, and implementation methods of the platform were elaborated in detail. A front-end and back-end separation architecture was adopted, and the cross platform characteristics of UniApp were utilized to achieve seamless access on multiple devices. Finally, the performance and user experience of the platform were evaluated through practical cases, and the results showed that the platform has good user feedback and market potential in food sharing, communication and interaction, and information acquisition.

In summary, the food sharing platform based on UniApp not only meets users' needs for food information, but also provides effective promotion and advertising channels for catering businesses, with broad application prospects and social value. In the future, the platform will continue to optimize its functions and enhance user experience to adapt to the constantly changing market demands.

Keywords:Food sharing; Spring Boot; UniApp; User experience

目  录

1 前  言

1.1 研究背景和意义

1.2 国内外研究现状

1.3 系统的特点

1.4 论文结构与章节安排

2 关键技术

2.1 Java

2.2 MySQL

2.3 Spring Boot框架

2.4 B/S模式

2.5 uni-app

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.1.4 社会可行性

3.2 功能需求分析

3.3 系统性能分析

3.4 系统流程分析

3.4.1 程序操作流程

3.4.2 登录流程

3.4.3 注册流程

4 系统设计

4.1 总体设计

4.1.1 框架设计

4.1.2 功能模块设计

4.2 数据库设计

4.2.1 E-R图

4.2.1 数据库表结构设计

5 系统实现

5.1 系统环境分析

5.2 普通用户模块

5.2.1 用户登录界面

5.2.2 用户注册界面

5.2.3 交流论坛界面

5.2.4 店铺信息界面

5.2.5 美食信息界面

5.2.6 美食咨询界面

5.3 后台管理员模块

5.3.1 系统用户界面

5.3.2 店铺类型管理界面

5.3.3 美食信息管理界面

5.3.4 美食收录管理界面

5.3.5 系统管理界面

5.3.6 通知公告管理界面

5.3.7 资源管理界面

6 系统测试

6.1 测试目的与意义

6.2 测试用例

6.3 测试分析

7 结束语

参考文献

致  谢

 

1.1研究背景和意义

在数字化时代,互联网和移动设备的广泛普及使人们的生活方式和消费习惯发生了显著变化。美食作为人们日常生活的重要组成部分,越来越多的人选择通过线上平台获取美食信息、分享美食体验以及进行社交互动。传统的美食推荐和分享方式已无法满足现代用户对便捷性和多样性的需求,因此构建一个集美食分享、交流互动与信息获取于一体的在线平台显得尤为重要。

UniApp作为一种高效的跨平台开发框架,具备快速开发和便捷部署的特点,可以有效解决不同设备之间的兼容性问题。这使得开发者能够在一个代码基础上,轻松实现对多个平台的支持,满足用户在不同终端上使用的需求。因此,基于UniApp构建美食分享平台,不仅可以提高开发效率,还能为用户提供一致的使用体验,增强用户粘性。

研究基于UniApp的美食分享平台的设计与实现,具有重要的学术价值和实际意义。该平台的构建能够为用户提供一个集美食资讯和用户交流和商家推广于一体的综合性服务,满足用户对美食的探索与分享需求。同时,平台为餐饮商家提供了一个有效的宣传渠道,助力其品牌推广和市场拓展。此外,随着社交网络的兴起,用户在美食分享中的互动性和参与感愈发重要。平台的设计将充分考虑用户体验,通过社区功能和社交机制,促进用户间的交流与互动,形成良好的美食分享生态。

综上所述,基于UniApp的美食分享平台的设计与实现,不仅顺应了当前数字化转型的潮流,也为用户和商家之间搭建了有效的桥梁,具有广泛的社会价值和市场前景。通过深入研究该平台的功能设计与技术实现,可以为后续相关领域的研究和实践提供有益的借鉴和参考。

1.2国内外研究现状

在近年来,随着移动互联网的迅猛发展,美食分享平台作为一种新兴的社交电商模式,逐渐受到关注。国内外的研究现状表明,这一领域的发展不仅仅局限于简单的信息分享,而是向着多元化和智能化的方向发展。

在国外,美食分享平台的研究起步较早,诸如Yelp、TripAdvisor等平台已经形成了相对成熟的商业模式。Yelp作为一个以用户评价为基础的餐厅推荐平台,利用用户生成内容(UGC)吸引了大量用户参与,形成了一个庞大的美食社区。研究表明,Yelp的成功在于其强大的用户互动机制和社交功能,用户不仅可以查看餐厅的评分和评论,还可以通过照片、视频等多种形式分享自己的美食体验。此外,TripAdvisor通过集成用户评论、评分和旅行建议,成为全球最大的旅游网站之一,进一步推动了美食与旅游的结合。这些平台的成功经验为国内美食分享平台的设计与实现提供了宝贵的参考。

在国内,美食分享平台的研究与实践也在不断发展。平台如美团、饿了么等不仅提供餐厅信息,还整合了外卖服务,形成了“线上线下”相结合的商业模式。近年来,随着社交媒体的崛起,像小红书这样的平台也逐渐兴起,用户通过图文并茂的方式分享美食体验,形成了强大的社区效应。小红书的成功在于其精准的用户画像和社交电商的结合,使得用户不仅能够获取美食推荐,还能通过评论与他人互动,形成良好的用户粘性。

在学术研究方面,国内外学者对美食分享平台的探讨主要集中在用户行为分析、平台商业模式、社交网络对美食消费的影响等方面。例如,研究发现用户在美食分享平台上的活跃度与其社交网络的强度密切相关,用户在平台上的互动行为能够显著提升其对平台的忠诚度。此外,针对用户生成内容的研究也逐渐增多,许多学者探讨了用户评论的真实性、可信度及其对其他用户决策的影响。

综上所述,基于UniApp的美食分享平台的设计与实现,不仅可以借鉴国内外成熟平台的成功经验,还能结合当前用户需求的变化与技术的发展,推动美食分享平台的创新与发展。随着用户对美食分享的兴趣不断增加,未来的研究可以进一步探索平台的智能化发展和个性化服务,以满足不断变化的市场需求。

1.3系统的特点

(1)美食分享平台中的web后台管理中的后端不再使用古老的jsp+javabean+servlet技术,而是使用当前主流的Spring Boot框架,它减少Java配置代码,简化编程代码,目前Spring Boot框架也是很多企业选择的框架之一。

(2)美食分享平台中的前端使用的是uni-app框架,它是使用Vue.js 开发所有前端应用的框架,可应用多平台,性能优秀,周边生态丰富且开发学习成本低。

(3)美食分享平台中数据库用的MySQL,它执行效率高,运行速度快,安全性能也很高,同时无平台限制。

1.4论文结构与章节安排

本文共分为七章,章节内容安排如下:

第一章:引言,主要介绍美食分享平台领域研究的背景和意义,概述研究的现状和系统特点。

第二章:关键技术,主要探讨和说明实现美食分享平台的关键技术。

第三章:系统分析,主要从美食分享平台的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对美食分享平台功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了美食分享平台各个顾客用户的功能、系统界面的实现。

第六章:系统测试,主要对美食分享平台进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:结束语。总结全文研究内容,提出对美食分享平台领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。

2 关键技术

2.1Java

Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在美食分享平台中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。

2.2MySQL

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在美食分享平台中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。

2.3Spring Boot框架

Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在美食分享平台中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。

2.4B/S模式

B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在美食分享平台中,uni-app结合B/S模式B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序。此外,维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限。

2.5uni-app

uni-app是一个跨平台的应用开发框架,可以同时用于开发微信小程序、H5应用、Android和iOS应用等,减少了开发成本和时间。uni-app提供了丰富的组件库和插件,可以快速构建各种功能模块,提高开发效率。通过优化渲染引擎和网络请求,提高了应用程序的性能和用户体验。App端支持原生渲染,可支撑更流畅的用户体验。小程序端的性能优于市场其他框架。同时基于通用的前端技术栈,采用vue语法+微信小程序api,无额外学习成本。

系统分析

3.1可行性分析

3.1.1技术可行性

从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。

3.1.2经济可行性

考虑到Springboot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升度假管理的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。

3.1.3操作可行性

系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。

3.1.4社会可行性

美食分享平台具有良好的社会可行性。随着人们对美食的热爱和分享文化的兴起,该平台能够满足用户对美食探索和交流的需求。同时,它促进了用户之间的互动与社区建设,增强了文化交流和多样性。此外,平台还能够提供美食推荐和评价,帮助用户做出更好的选择,从而提升整体的饮食体验。因此,美食分享平台不仅能满足个体用户的兴趣,还能为社会带来积极的文化效益。

从技术、经济、操作和社会四个维度来看,美食分享平台的开发均具备高度的可行性。

3.2功能需求分析

本系统可以分为:普通用户和管理员两大角色。

普通用户主要包括首页、交流论坛、美食资讯、店铺信息、美食信息、网站公告、我的(基本信息、美食咨询、美食收录、收藏)等功能。

管理员可登录系统具有后台首页、系统用户、店铺类型管理、美食类型管理、店铺信息管理、美食信息管理、美食咨询管理、美食收录管理、系统管理(轮播图)、通知公告管理、资源管理(美食资讯、资讯分类)、交流管理等功能。

(一)普通用户角色用例如下图所示。

图3.1普通用户用例图

普通用户具体功能说明如下所示。

注册登录:普通用户可以通过手机号、邮箱进行注册和登录,确保用户信息的安全性与私密性。登录后,用户可以访问个人中心,管理自己的账户信息和偏好设置。

首页:首页是用户进入平台后的第一印象,展示了最新的美食资讯、推荐的餐厅和热门的菜谱。用户可以快速浏览、搜索和筛选感兴趣的内容,提升使用的便捷性。

交流论坛:用户可以在论坛中发表自己的美食体验、分享菜谱、询问美食建议或评论他人的帖子。通过互动交流,用户能够建立社区感,获取更多美食灵感和建议。

美食资讯:该功能提供最新的美食相关资讯,包括饮食健康、烹饪技巧、行业动态等。用户可以通过浏览资讯,获取丰富的美食知识,提升自己的烹饪水平和饮食品味。

店铺信息:用户可以查看附近餐厅的详细信息,包括菜单、营业时间、地址、用户评价等。这一功能帮助用户快速找到符合自己口味和需求的餐厅,提升外出就餐的效率。

美食信息:用户可以浏览和搜索各类美食信息,包括菜谱、烹饪教程和美食推荐。通过多样化的美食信息,用户能够尝试新的菜式,丰富自己的饮食选择。

网站公告:平台会定期发布重要的公告和活动信息,用户可以通过这一功能及时获取平台的最新动态、促销活动和社区新闻,确保不遗漏任何重要信息。

我的:

基本信息:用户可以在个人中心查看和编辑自己的基本信息,如昵称、头像、联系方式等,确保个人资料的准确性。

美食咨询:用户可以查看自己发布的美食相关咨询及其回复,便于跟踪和获取更多的帮助与建议。

美食收录:用户可以查看自己收藏的美食信息、菜谱和店铺,方便随时查阅和使用。

收藏:用户可以收藏感兴趣的帖子、美食资讯和店铺,方便日后快速访问,提升用户体验。

(二)管理员角色用例如下图所示。

图3.2管理员用例图

系统后台管理端管理员具体功能说明如下所示。

登录:管理员可以通过安全的登录系统进入后台管理界面,系统要求输入用户名和密码,以确保只有授权人员能够访问管理功能。

后台首页:后台首页为管理员提供了一个全面的概览,帮助管理员快速了解平台运营状况。

系统用户管理:管理员可以查看、编辑和删除系统用户的信息,包括普通用户和商家用户。这一功能使管理员能够有效管理用户权限,确保平台的安全与秩序。

店铺类型管理:管理员可以添加、编辑和删除餐厅的类型,便于用户在搜索时能够快速找到感兴趣的店铺。同时,合理的分类管理有助于提升用户体验和平台的整体结构。

美食类型管理:此功能允许管理员对美食的分类进行管理,包括添加新类型、编辑现有类型和删除不再需要的类型。这一管理有助于用户更方便地浏览和选择美食。

店铺信息管理:管理员可以对平台上注册的餐厅进行信息管理,包括审核新店铺的申请、更新店铺信息和删除不合规的店铺。确保平台上的店铺信息准确可靠。

美食信息管理:管理员可以审核和添加美食信息,包括菜谱和烹饪教程等内容。这一功能确保平台上发布的美食信息的质量和合规性。

美食咨询管理:管理员可以查看和管理用户在平台上提出的美食咨询,及时回复用户的问题,提升用户满意度和互动性。

美食收录管理:该功能使管理员能够管理用户收藏的美食信息,确保收藏内容的准确性,并能够处理用户的反馈。

系统管理(轮播图):管理员可以添加、编辑和删除首页的轮播图,确保平台展示的信息和活动的及时更新,吸引用户的注意力。

通知公告管理:管理员可以发布和管理平台的通知公告,包括活动信息、系统更新和重要公告,确保用户及时获取平台的最新动态。

资源管理(美食资讯、资讯分类):管理员能够管理平台上的美食资讯和分类,确保资讯的及时更新和准确性,为用户提供丰富的美食知识和信息。

交流管理:管理员可以监控和管理平台上的用户交流,确保讨论内容的健康和积极,处理不当言论或违规行为,维护良好的社区氛围。

3.3系统性能分析

对于美食分享平台的设计与实现,下面是系统性能分析表:

表3.1性能需求表

项目

内容

响应时间

系统对用户请求的响应时间需在500ms以内

并发用户数

系统需要支持1000个并发用户同时访问

吞吐量

系统每秒需要处理1000个请求

可用性

系统需要保证每月99.9%的可用性

数据安全

用户敏感数据需要加密存储,并支持数据库备份和恢复

数据一致性

系统中的数据操作需保证ACID特性,确保数据一致性

扩展性

系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量

可维护性

系统代码需要清晰易懂、结构良好,方便团队成员维护和修改

日志记录

系统需要记录用户操作日志、异常日志以及系统运行日志

监控报警

系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员

缓存设置

针对频繁使用的数据,系统需要进行合适的缓

3.4系统流程分析

3.4.1程序操作流程

用户访问平台,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.3程序操作流程图

3.4.2登录流程

用户访问平台,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.4登录流程图

3.4.3注册流程

未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

图3.5注册流程图

4 系统设计

4.1总体设计

4.1.1框架设计

B/S架构,即浏览器/服务器架构,是一种基于Web的分布式计算范式。在此架构中,应用程序的逻辑被巧妙地区分为客户端和服务器两部分。具体而言,客户端借助广泛使用的浏览器界面,进行应用访问与操作;而服务器端则肩负起业务逻辑处理、数据存储及管理的核心职责。值得一提的是,客户端无需安装特定的软件,用户仅需通过浏览器输入相应的URL地址,即可轻松访问应用程序,这一特性极大地提升了用户的使用便捷性和系统的维护效率。服务器端通常采用高性能的计算机和数据库系统,能够处理大量并发请求和复杂的业务逻辑。B/S架构的优势在于其跨平台性和易于维护性,开发者可以通过更新服务器端的代码来实现整个系统的升级和维护,而无需逐一更新客户端。

图4.1系统架构图

4.1.2功能模块设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。美食分享平台由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统架构图

4.2数据库设计

4.2.1E-R

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本美食分享平台拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3总E-R图

4.2.1数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表food_collection (美食收录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

food_collection_id

int

10

0

N

Y

美食收录ID

2

name_of_dish

varchar

64

0

Y

N

菜品名称

3

type_of_dish

varchar

64

0

Y

N

菜品类型

4

cooking_methods

varchar

64

0

Y

N

烹饪方式

5

ingredients_of_ingredients

varchar

64

0

Y

N

食材成分

6

price_of_dishes

double

9

2

Y

N

0.00

菜品价格

7

personnel_included

int

10

0

Y

N

0

收录人员

8

user_name

varchar

64

0

Y

N

用户姓名

9

date_of_inclusion

date

10

0

Y

N

收录日期

10

reason_for_inclusion

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

更新时间

13

source_table

varchar

255

0

Y

N

来源表

14

source_id

int

10

0

Y

N

来源ID

15

source_user_id

int

10

0

Y

N

来源用户

表food_consultation (美食咨询)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

food_consultation_id

int

10

0

N

Y

美食咨询ID

2

name_of_dish

varchar

64

0

Y

N

菜品名称

3

type_of_dish

varchar

64

0

Y

N

菜品类型

4

cooking_methods

varchar

64

0

Y

N

烹饪方式

5

ingredients_of_ingredients

varchar

64

0

Y

N

食材成分

6

ordinary_users

int

10

0

Y

N

0

普通用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

consultation_content

text

65535

0

Y

N

咨询内容

9

consultation_reply

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

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

表food_information (美食信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

food_information_id

int

10

0

N

Y

美食信息ID

2

name_of_dish

varchar

64

0

Y

N

菜品名称

3

type_of_dish

varchar

64

0

Y

N

菜品类型

4

cooking_methods

varchar

64

0

Y

N

烹饪方式

5

ingredients_of_ingredients

varchar

64

0

Y

N

食材成分

6

price_of_dishes

double

9

2

Y

N

0.00

菜品价格

7

cover_photo

varchar

255

0

Y

N

封面图片

8

description_of_dishes

text

65535

0

Y

N

‌菜品描述

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

recommend

int

10

0

N

N

0

智能推荐

12

food_consultation_limit_times

int

10

0

N

N

0

咨询限制次数

13

food_collection_limit_times

int

10

0

N

N

1

收录限制次数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

18

istop

int

10

0

N

N

0

是否置顶

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表ordinary_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

ordinary_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

contact_information

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

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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已取消

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表store_information (店铺信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

store_information_id

int

10

0

N

Y

店铺信息ID

2

store_name

varchar

64

0

Y

N

店铺名称

3

store_type

varchar

64

0

Y

N

店铺类型

4

popular_rating

varchar

64

0

Y

N

大众评分

5

store_location

varchar

64

0

Y

N

店铺位置

6

business_hours

varchar

64

0

Y

N

营业时间

7

store_hotline

varchar

64

0

Y

N

店铺热线

8

cover_photo

varchar

255

0

Y

N

封面图片

9

store_introduction

text

65535

0

Y

N

店铺简介

10

hits

int

10

0

N

N

0

点击数

11

praise_len

int

10

0

N

N

0

点赞数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表store_type (店铺类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

store_type_id

int

10

0

N

Y

店铺类型ID

2

store_type

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

更新时间

表types_of_cuisine (美食类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

types_of_cuisine_id

int

10

0

N

Y

美食类型ID

2

types_of_cuisine

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

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

email

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

创建时间:

表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

更新时间:

5 系统实现

5.1系统环境分析

考虑到美食分享平台主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Tomcat服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及MySQL 5.6以上的数据库应用的需求点。系统具体开发环境如下表所示:

表5.1系统环境表

项目

开发环境

操作系统

Windows 11、Windows 10、Windows 8、Windows 7

开发语言

Java

使用框架

Spring Boot、uni-app

体系结构

三层B/S体系结构

开发工具

IDEA(2020版)/MyEclipse(2017)/Eclipse、Vs Code

数据库

MySQL 5.6以上

数据库管理工具

Navicat

JDK版本

Java 1.8

Maven

apache-maven 3.6.1-bin

Tomcat

apache-tomcat-7.0.88

移动端

iOS、Android、Web(响应式)、以及各种小程序

5.2普通用户模块

5.2.1用户登录界面

用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图5.1用户登录界面设计

登录关键代码如下:

 /**

     * 登录

     * @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.2.2用户注册界面

用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图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.2.3交流论坛界面

用户可以在论坛中发表自己的美食体验、分享菜谱、询问美食建议或评论他人的帖子。通过互动交流,用户能够建立社区感,获取更多美食灵感和建议。

例如,普通用户交流论坛主界面图如下所示。

图5.3交流论坛主界面设计

5.2.4店铺信息界面

用户可以查看附近餐厅的详细信息,包括菜单、营业时间、地址、用户评价等。这一功能帮助用户快速找到符合自己口味和需求的餐厅,提升外出就餐的效率。

普通用户店铺信息主界面图如下所示。

图5.4店铺信息主界面设计

5.2.5美食信息界面

用户可以浏览和搜索各类美食信息,包括菜谱、烹饪教程和美食推荐。通过多样化的美食信息,用户能够尝试新的菜式,丰富自己的饮食选择。

普通用户美食信息主界面图如下所示。

图5.5美食信息主界面设计

5.2.6美食咨询界面

用户可以查看自己发布的美食相关咨询及其回复,便于跟踪和获取更多的帮助与建议。

普通用户美食咨询主界面图如下所示。

图5.6美食咨询主界面设计

5.3后台管理员模块

5.3.1系统用户界面

管理员可对普通用户和管理员等用户信息进行管控,包括进行增删改查操作,可点击详情进行查阅。

系统用户主界面图如下所示。

图5.7系统用户界面设计

添加系统用户信息关键代码:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

5.3.2店铺类型管理界面

管理员可以添加、编辑和删除餐厅的类型,便于用户在搜索时能够快速找到感兴趣的店铺。同时,合理的分类管理有助于提升用户体验和平台的整体结构。

店铺类型管理主界面图如下所示。

图5.8店铺类型管理界面设计

5.3.3美食信息管理界面

管理员可以审核和添加的美食信息,包括菜谱和烹饪教程等内容。这一功能确保平台上发布的美食信息的质量和合规性。

美食信息管理界面如下所示。

图5.9美食信息管理详情界面设计

5.3.4美食收录管理界面

该功能使管理员能够管理用户收藏的美食信息,确保收藏内容的准确性,并能够处理用户的反馈。

美食收录管理界面如下所示。

图5.10美食收录管理详情界面设计

5.3.5系统管理界面

管理员可以添加、编辑和删除首页的轮播图,确保平台展示的信息和活动的及时更新,吸引用户的注意力。

系统管理界面如下所示。

图5.11系统管理界面设计

5.3.6通知公告管理界面

管理员可以发布公告信息,所有普通用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。

通知公告管理界面如下所示。

图5.12通知公告管理界面设计

上传图片关键代码如下:

   @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

5.3.7资源管理界面

管理员能够管理平台上的美食资讯和分类,确保资讯的及时更新和准确性,为用户提供丰富的美食知识和信息。

资源管理界面如下所示。

图5.13资源管理界面设计

6 系统测试

6.1测试目的与意义

在软件开发生命周期中,系统测试占据着举足轻重的地位。通过进行全面而系统的测试,我们能够确保软件在实际使用环境中具备稳定运行的能力,从而满足用户的多样化需求,并显著提升软件的整体质量与可靠性。这一过程不仅有助于识别并修复潜在问题,还能为软件的持续优化提供有力支撑。

随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6-1就是纠错测试流程。

图6.1测试与纠错信息流程

6.2测试用例

在系统的功能验证阶段,我们将对全部的功能界面进行全面测试。具体而言,我们将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,我们将确保系统在实际应用中能够稳定、准确地响应用户需求。

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.1系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表6.2注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

下表是店铺信息管理功能的测试用例,检测了对店铺信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.3店铺信息管理的测试用例

功能描述

用于店铺信息

测试目的

检测店铺信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加店铺信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加店铺信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改店铺信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改店铺信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除店铺信息,选择店铺信息删除

提示删除成功

与预期结果一致

点击搜索店铺信息,输入存在的店铺信息名

查找出相应店铺信息

与预期结果一致

点击搜索店铺信息,输入不存在的店铺信息名

不显示店铺信息

与预期结果一致

下表是美食信息管理功能的测试用例,检测了美食信息管理中对美食信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.4美食信息管理的测试用例

功能描述

用于美食信息

测试目的

检测美食信息时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加美食信息,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加美食信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改美食信息,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改美食信息,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除美食信息,选择美食信息删除

提示删除成功

与预期结果一致

点击搜索美食信息,输入存在的美食信息名

查找出相应美食信息

与预期结果一致

点击搜索美食信息,输入不存在的美食信息名

不显示美食信息

与预期结果一致

下表是美食咨询管理功能的测试用例,检测了美食咨询管理中对美食咨询的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.5美食咨询管理的测试用例

功能描述

用于美食咨询

测试目的

检测美食咨询时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加美食咨询,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加美食咨询,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改美食咨询,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改美食咨询,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除美食咨询,选择美食咨询删除

提示删除成功

与预期结果一致

点击搜索美食咨询,输入存在的美食咨询名

查找出相应美食咨询

与预期结果一致

点击搜索美食咨询,输入不存在的美食咨询名

不显示美食咨询

与预期结果一致

下表是店铺类型管理功能的测试用例,检测了店铺类型管理中对店铺类型的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;登录系统。

表6.6店铺类型管理的测试用例

功能描述

用于店铺类型

测试目的

检测店铺类型时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加店铺类型,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加店铺类型,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改店铺类型,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改店铺类型,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除店铺类型,选择店铺类型删除

提示删除成功

与预期结果一致

点击搜索店铺类型,输入存在的店铺类型名

查找出相应店铺类型

与预期结果一致

点击搜索店铺类型,输入不存在的店铺类型名

不显示店铺类型

与预期结果一致

6.3测试分析

本美食分享平台开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及会员能够方便操作。系统的主要特点和优点归纳如下:

(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。

(2)该美食分享平台开发与设计内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因客户的马虎操作而出现的失误,其操作方便,会员界面友好,能够上网的人都可以很好的进行操作。

经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进美食分享平台的发展,发展前景广阔。

7 结束语

通过开发美食分享平台,我深刻体会到软件开发的完整流程。首先,在确定开发目标后,我进行了详细的需求分析,明确了系统所需的各项功能。接下来,我设计了系统的功能框架和数据库结构,包括实体和数据表的设计。随后,我实现了各个功能模块的详细界面,并进行了全面的功能测试。尽管在这个过程中遇到了各种挑战,但通过反复分析和深入思考,借助相关文献和解决方案,我成功地解决了这些问题,最终使美食分享平台顺利运行。

虽然该系统在功能上基本满足了用户的需求,但仍有许多需要改进的地方。在接下来的开发阶段,我计划进行以下改进:

用户界面设计:目前的操作页面虽然满足了简易操作的要求,但在多样化设计方面还有提升空间。我将考虑引入更多丰富的设计元素,使界面更加美观和用户友好。

安全性能优化:针对系统安全性能的增强,需要进一步优化系统的整体防护能力。具体而言,将要对程序退出的安全性进行加强,确保在退出过程中不存在数据泄露或系统不稳定的风险。同时,对系统的并发处理能力进行升级,以确保在高并发场景下系统能够保持稳定的运行状态。这些改进措施将共同提升系统的安全性能,确保在各种使用场景下,系统都能为用户提供安全、可靠的服务。

性能优化:在性能优化方面,将着重于对程序的数据结构和代码逻辑进行精细化调整。通过优化,旨在确保系统能在高负载下保持稳定且高效的运行状态。优化后的系统应具备快速处理大量事务的能力,显著缩短事务处理时间,从而提高整体工作效率。同时,致力于降低服务器资源的占用率,以实现资源的高效利用和成本的有效控制。这些优化措施将共同提升系统的整体性能,为用户提供更加流畅、高效的服务体验。

通过这些改进,我希望能够进一步提升美食分享平台的用户体验和性能,使其更加贴合实际需求。

参考文献

[1]Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):

[2]Wai H K ,Funabiki N,Aung T S, et al.Answer Code Validation Program with Test Data Generation for Code Writing Problem in Java Programming Learning Assistant System[J].Engineering Letters,2024,32(5):

[3]Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.

[4]Aung T S ,Aung H L,Funabiki N, et al.An Implementation of Web-based Personal Platform for Programming Learning Assistant System with Instance File Update Function[J].Engineering Letters,2024,32(2):

[5]Oswald C .Java Basics Using ChatGPT/GPT-4[M].Mercury Learning and Information:2023-12-28.

[6]杨玲.基于文本挖掘的美食旅游者在线分享行为特征研究[J].黑龙江科学,2023,14(15):16-19.

[7]马铭华.基于微信小程序的贵州美食推广系统[J].软件,2023,44(08):147-149.

[8]徐文倩,谢丹艳,黎柳,等.基于JSP的美食分享网站的设计与实现[J].电脑知识与技术,2023,19(09):57-59.DOI:10.14004/j.cnki.ckt.2023.0421.

[9]倪雪莹.“互联网+美食”平台中饮品短视频设计研究[J].美与时代(上),2023,(01):125-128.DOI:10.16129/j.cnki.mysds.2023.01.018.

[10]齐祺,张丽婷,赵颜,等.基于留学生美食服务平台的构建研究[J].中国新通信,2022,24(18):70-72.

[11]李亚君.基于ASP.NET的美食商城后台管理系统设计与实现[J].机电信息,2022,(16):29-33.DOI:10.19514/j.cnki.cn32-1628/tm.2022.16.008.

[12]李慧敏,宁芳.基于服务设计的新美食生态平台体验设计研究[J].机电产品开发与创新,2022,35(04):57-60.

[13]刘业成.美食广场智慧餐饮平台的设计与实现[D].东南大学,2021.DOI:10.27014/d.cnki.gdnau.2021.004910.

[14]屈琦.“让菲律宾唤醒你——美味之旅”分享活动圆满结束[J].留学,2021,(13):19.

[15]朱敏.基于微信小程序的美食服务平台的设计与实现[J].电子技术与软件工程,2021,(08):50-51.

[16]鲜易洲,杨蕊,吴蓉,等.时食美食分享系统的设计与分析[J].电脑知识与技术,2021,17(09):85-87.DOI:10.14004/j.cnki.ckt.2021.0845.

[17]何燕,蔡起辉.平潭巷弄飘台味欢声笑语一家亲——台籍厨师张先超以菜会友分享美食[J].台声,2020,(16):63-65.

[18]顾捷.舟山紫菜“海味”美食分享[J].农村百事通,2020,(01):42-43.DOI:10.19433/j.cnki.1006-9119.2020.01.019.

[19]王佳安,王可心,李直旭.美食精准搜索与智能推荐平台的设计与实现[J].福建电脑,2019,35(08):27-30.DOI:10.16707/j.cnki.fjpc.2019.08.007.

[20]杨艳妮.分享餐饮美食平台的政府监管问题研究[D].吉林大学,2019.

致  谢

这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,

其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。

再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。

由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。

免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐