springboot小熊餐厅点餐系统--附源码84831
目 录
摘 要
基于SpringBoot河南非物质文化遗产平台旨在通过现代信息技术手段,保护与传承河南地区丰富的非物质文化遗产资源。该平台分为普通用户和管理员两大模块,以满足不同用户的需求。普通用户可以通过平台浏览新闻资讯、参与非遗项目的互动、在非遗商场购买相关产品等,而管理员则负责后台数据的维护与管理,包括但不限于商品销售统计、项目类型及非遗项目的管理、传承人信息更新、系统设置及权限分配等功能。
利用SpringBoot框架构建此平台,不仅能够简化开发流程,提高开发效率,还能保证系统的稳定性和扩展性。平台特别强调用户体验,无论是对非遗文化的展示,还是对传统工艺品的销售都力求做到最佳。用户可以在平台上轻松找到感兴趣的非遗项目或传承人的详细信息,并能通过地图功能直观了解其地理位置分布。针对非遗产品的在线商城,提供了便捷的购物流程,支持多种支付方式,让用户可以方便快捷地购买到心仪的手工艺品,以此促进非物质文化遗产的商业化运作,助力文化传承与发展。通过这样一个综合性的平台,不仅能增强公众对非物质文化遗产的认知与兴趣,同时也为文化的保存与传播开辟了新的途径。
关键词:河南非物质文化遗产平台;SpringBoot框架
Abstract
Based on SpringBoot Henan intangible cultural heritage platform aims to protect and inherit the rich intangible cultural heritage resources in Henan by means of modern information technology. The platform is divided into two modules: ordinary users and administrators, to meet the needs of different users. Ordinary users can browse the news and information through the platform, participate in the interaction of intangible projects, in intangible stores to buy related products, etc., while the administrator is responsible for the background data maintenance and management, including but not limited to commodity sales statistics, project type and intangible project management, inheritance information update, system Settings and permission allocation, and other functions.
Building this platform with the SpringBoot framework can not only simplify the development process and improve the development efficiency, but also ensure the stability and scalability of the system. The platform puts special emphasis on user experience, both in the display of intangible cultural heritage and in the sales of traditional handicrafts. Users can easily find the detailed information of the intangible cultural heritage projects or inheritors that they are interested in on the platform, and can intuitively understand their geographical location distribution through the map function. The online mall for intangible cultural heritage products provides a convenient shopping process and supports a variety of payment methods, so that users can easily and quickly buy their favorite handicrafts, so as to promote the commercial operation of intangible cultural heritage and help cultural inheritance and development. Such a comprehensive platform can not only enhance the public's cognition and interest in the intangible cultural heritage, but also open up a new way for the preservation and dissemination of culture.
Keywords: Henan intangible cultural heritage platform; SpringBoot framework
第一章 绪 论
1.1选题背景及意义
基于SpringBoot的河南非物质文化遗产平台的研究背景源于对非物质文化遗产保护与传承的迫切需求。随着现代化进程的加速,许多珍贵的非物质文化遗产正面临着失传的风险。特别是在河南这样一个拥有丰富历史文化资源的省份,如何有效保护和传承这些宝贵的文化遗产成为了亟待解决的问题。传统的保护方式往往受限于地域、时间和传播手段的制约,难以实现广泛的公众参与和有效的文化推广。
本研究的意义在于通过现代信息技术,特别是SpringBoot框架,构建一个全面、互动性强且易于访问的数字平台,为非物质文化遗产的保护与传承提供新的思路和技术支持。该平台不仅能够集中展示和介绍各类非遗项目及其传承人,还能通过在线商城促进相关产品的销售,增强非遗项目的自我造血能力。
这一平台有助于打破地域限制,让更多的人了解和接触到河南丰富的非物质文化遗产,同时也为非遗传承人提供了更广阔的展示舞台和发展空间。通过这种方式,不仅能有效提升非物质文化遗产的社会认知度和影响力,还能够推动文化产业的发展,促进地方经济的增长和社会和谐进步。
1.2国内外发展现状
在国内外,非物质文化遗产的保护与数字化传播已经成为一个广泛关注的研究领域。国际上,联合国教科文组织自2003年通过《保护非物质文化遗产公约》以来,积极推动各国对ICH的保护工作,并在全球范围内推广了一系列成功的案例和最佳实践。例如,日本通过“人间国宝”制度对传统技艺进行保护和支持;韩国则利用数字技术建立了多个在线平台,用于记录和传播其丰富的非物质文化遗产资源。
在国内,随着国家对文化自信和文化软实力重视程度的提升,非物质文化遗产的数字化保护与传承也取得了显著进展。许多地方政府和研究机构纷纷启动了针对本地特色文化的数字化项目,如北京、上海等地已经建立了多个非物质文化遗产数据库和展示平台。尽管取得了一定成果,当前的数字化保护工作仍面临诸多挑战,包括技术应用不足、公众参与度低以及缺乏有效的商业模式等问题。
基于SpringBoot框架开发的河南非物质文化遗产平台正是在这样的背景下应运而生。它不仅借鉴了国内外先进的理念和技术,还结合了本地实际情况,旨在构建一个更加互动、开放且可持续发展的数字生态系统。该平台通过整合新闻资讯、非遗商城、地图服务等功能模块,不仅提升了用户体验,也为非遗项目的商业化运作提供了新的思路。
1.3研究方法
首先,通过引擎搜索或者查阅相关文献资料,了解了本系统开发的背景及意义和国内外研究现状,收集用户需求信息。其次,在开发工具上,最终确定是基于Mysql数据库,在Java的springboot框架设计的基础上实现,设计出系统大致的功能模块。主要从方便系统用户和系统管理员的角度进行分析,明确该系统应该具有的功能。最终是测试系统,通过用例测试发现存在的问题并找到解决的方案。利用现有的开发平台,结合自己所学的知识,在老师的指导帮助下来完成该设计,确保系统的可用性、实用性。
第二章 关键技术
2.1Java语言
在本研究中,Java语言是构建河南非物质文化遗产平台的核心技术之一。主要使用Java语言开发后端系统,采用SpringBoot框架来实现业务逻辑和数据交互。SpringBoot简化了配置和开发过程,提供了一套开箱即用的解决方案,能够专注于业务功能的实现。同时,Java的多线程和并发处理能力,使平台能够高效处理大量用户请求和并发交易,保证系统的稳定性和响应速度。此外,Java语言的跨平台特性和丰富的类库支持,使得系统具有良好的可移植性和可扩展性,能够适应不同的操作环境和业务需求。总之,Java语言在本系统中的应用,为实现一个高效、安全、稳定的河南非物质文化遗产平台提供了坚实的技术基础。
2.2MySQL
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在河南非物质文化遗产平台中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
2.3SpringBoot框架
在本研究中,SpringBoot框架被用于开发河南非物质文化遗产平台的后端系统。SpringBoot是基于Spring框架的一款快速开发工具,提供了简化的配置和自动化的设置,极大地提高了开发效率。它通过"约定优于配置"的理念,减少了人员的配置工作,使得项目能够快速启动和运行。SpringBoot内置了嵌入式服务器(如Tomcat),无需进行复杂的服务器配置即可运行项目。此外,SpringBoot还支持微服务架构,方便系统的模块化开发和部署,提高了系统的可扩展性和维护性。通过SpringBoot能够快速构建出一个高效、稳定且具备良好扩展性的后端系统,满足河南非物质文化遗产平台的复杂需求。
2.4B/S结构概述
B/S结构是一种网络应用模式,其主要特点是将客户端与服务器端的任务进行划分。客户端主要负责用户界面的显示与用户操作,而服务器端则负责数据处理、业务逻辑实现以及数据存储等任务。在这种结构中,客户端使用浏览器作为访问服务器端应用程序的入口,通过HTTP协议与服务器端进行通信。
B/S结构相较于传统的C/S(Client/Server,客户端/服务器)结构,具有更好的跨平台性、可维护性和可扩展性。它摆脱了客户端与服务器端之间的紧密耦合,使得开发和维护变得更加方便。同时,B/S结构还能够充分利用互联网的资源,实现快速的信息传递与共享。
第三章 河南非物质文化遗产平台 系统分析
3.1系统可行性分析
3.1.1技术可行性
现代软件开发技术已经相当成熟,提供了丰富的工具和框架,可以应对各种复杂的业务需求。采用Java等成熟、稳定的语言进行开发,利用其面向对象、跨平台等特性,实现系统的模块化、可扩展性和可维护性。同时,利用SpringBoot等现代框架,简化开发过程,提高开发效率。此外,对于数据库的选择,使用MySQL等关系型数据库,以满足数据存储和查询的需求。因此,从技术层面来看,开发河南非物质文化遗产平台是完全可行的。
3.1.2经济可行性
系统的开发成本相对较低,可以利用开源框架和工具,降低开发成本。其次,系统的运行和维护成本也相对较低,可以采用Java等技术,实现系统的自动化部署和维护。因此,从经济层面来看,开发河南非物质文化遗产平台也是可行的。
3.1.3社会可行性
平台建设与运营既符合国家非物质文化遗产保护政策,也满足公众对传统文化的热爱。它能激发公众兴趣,增强文化自信,促进文化多样性。商业化运作为非遗传承人提供经济支持,鼓励技艺传承,实现文化可持续发展。平台的成功运营为其他地区提供借鉴,推动文化遗产保护工作,具有高社会价值。
3.1.4操作可行性
系统的操作界面设计简洁明了,易于用户理解和操作。系统提供了详尽的操作指南和帮助文档,使得用户能够快速上手并熟练使用系统。此外,系统还具备良好的容错性和错误提示功能,当用户操作失误时,能够及时给出提示信息,引导用户进行正确的操作。因此,从操作层面来看,河南非物质文化遗产平台同样具备可行性。
3.2系统功能分析
3.2.1功能性分析
河南非物质文化遗产平台划分为了前端模块和后端模块两大部分。
前端普通用户模块:
- 注册登录:该模块允许新用户创建账户,创建后需要管理员审核,并为已注册用户提供登录功能。用户需要提供必要的信息,如用户名、密码、邮箱等,以完成注册。登录功能则允许用户输入用户名和密码来访问他们的个人账户。
- 首页:首页是用户访问平台时首先看到的页面,它展示了非遗商场和新闻资讯的入口。用户可以在这里快速浏览最新的非遗商品和资讯,同时也可以查看通知公告,了解平台最新动态。
- 通知公告:通知公告模块用于发布平台的重要信息和更新,确保用户能够及时了解平台的最新政策、活动或其他重要事项。
- 新闻资讯:新闻资讯模块提供了非遗相关的新闻和文章,用户可以浏览、点赞、收藏和评论这些内容。这个模块旨在提供丰富的非遗知识和最新动态,增强用户的参与感和信息获取。
- 非遗商场:非遗商场模块是用户购买非遗商品的平台。用户可以浏览商品,收藏喜欢的商品,对商品进行评论,并且可以将商品加入购物车或直接购买。这个模块旨在方便用户发现和购买非遗产品。
- 商城管理:商城管理模块为用户提供个人订单和购物车的管理功能。用户可以查看和管理自己的地址信息、订单状态以及购物车中的商品,确保购物体验的便捷和顺畅。
- 非遗项目:非遗项目模块展示了非物质文化遗产项目,用户可以浏览这些项目,点赞、收藏和评论。此外,用户还可以查看项目的地图信息,了解项目的地理位置。
- 传承人信息:传承人信息模块提供了非遗传承人的详细资料,用户可以对这些信息进行点赞、收藏和评论,从而支持和了解非遗传承人的工作。
- 我的账户:我的账户模块允许用户修改他们的密码和个人资料,如联系方式、密码等,以确保账户的安全性和个人信息的准确性。
- 个人中心:个人中心是用户管理个人信息和订单的综合区域。用户可以查看个人首页,管理订单配送信息,查看和管理自己的收藏列表,以及管理自己的评论。这个模块为用户提供了一个集中的地方来控制他们的用户活动和偏好设置。
后端管理员模块:
- 登录:管理员通过输入账号和密码登录系统,系统提供验证码或短信验证等多重安全措施,确保登录过程的安全性。
- 后台首页:登录后,管理员首先进入后台首页,这里提供直观的数据统计图表,包括商品销售金额统计和商品销售数量统计,帮助管理员快速了解商城运营情况。
- 系统用户:系统区分普通用户和管理员两种角色,管理员可以对用户进行权限分配,查看用户信息,以及管理用户账号,包括账号的创建、编辑、删除和权限设置。
- 项目类型管理:管理员可以对非遗项目类型进行添加、删除和查询操作,同时能够查看每个项目类型的详细信息,便于对非遗项目进行分类管理。
- 非遗项目管理:管理员可以添加新的非遗项目,删除或查询现有项目,并且可以查看项目的详细信息。此外,系统支持地图功能,方便展示非遗项目的地理位置。
- 传承人信息管理:管理员负责传承人信息的添加、删除和查询,以及查看传承人的详细资料和相关评论,确保传承人信息的准确性和完整性。
- 系统管理:管理员可以对系统中的轮播图进行添加、删除和查询操作,通过轮播图展示重要信息或活动,吸引用户关注。
- 通知公告管理:管理员可以发布、编辑和删除通知公告信息,确保用户能够及时获取最新的平台通知和公告内容。
- 资源管理:管理员负责新闻资讯的增删改查操作,包括资讯分类的管理,以及查看用户对资讯的评论,保证信息的及时更新和准确性。
- 商城管理:管理员可以管理非遗商城的商品分类、订单列表和订单配送状态,确保商城运营的顺畅和用户购物体验的优化。
- 权限管理:管理员可以设置不同角色的权限,控制用户对系统功能模块的访问和操作范围,保障系统的安全性和数据的保密性。
3.2.2非功能性分析
河南非物质文化遗产平台的非功能性需求比如河南非物质文化遗产平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等,具体可以表示在如下3-1表格中:
表3-1河南非物质文化遗产平台非功能需求表
|
安全性 |
主要指河南非物质文化遗产平台数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
|
可靠性 |
可靠性是指河南非物质文化遗产平台能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
|
性能 |
性能是影响河南非物质文化遗产平台占据市场的必要条件,所以性能最好要佳才好。 |
|
可扩展性 |
比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
|
易用性 |
用户只要跟着河南非物质文化遗产平台的页面展示内容进行操作,就可以了。 |
|
可维护性 |
河南非物质文化遗产平台开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3.3系统用例分析
河南非物质文化遗产平台的完整UML用例图分别是图3-1、3-2。
普通用户角色用例如图3-1所示。

图 3-1河南非物质文化遗产平台普通用户角色用例图
管理员角色用例如图3-2所示。

图 3-2河南非物质文化遗产平台管理员角色用例图
3.4业务流程分析
河南非物质文化遗产平台的基本业务流程图如图3-3所示:

图 3-3业务流程图
3.5本章小结
本章主要通过对河南非物质文化遗产平台的、可行性分析、功能需求分析、系统用例分析,确定整个河南非物质文化遗产平台要实现的功能。同时也为河南非物质文化遗产平台的代码实现和测试提供了标准。
第四章 河南非物质文化遗产平台 总体设计
本章主要讨论的内容包括河南非物质文化遗产平台的功能模块设计、数据库系统设计。
4.1系统架构设计
本河南非物质文化遗产平台从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图 4-1河南非物质文化遗产平台架构设计图
表现层(UI):也称为用户界面层,它负责与用户进行直接的交互。一个优秀的UI设计能够显著提升用户的体验,确保用户在使用河南非物质文化遗产平台时感到舒适和便捷。为了确保良好的兼容性,UI界面设计需要适应不同版本的平台和各种屏幕尺寸的分辨率。此外,UI交互功能必须合理设计,确保用户的操作能够得到相应的反馈和结果,这要求表现层与业务逻辑层之间保持良好的通信和协同工作。
业务逻辑层(BLL):这一层主要处理河南非物质文化遗产平台的数据和业务逻辑。当用户通过表现层提交数据时,业务逻辑层会接收这些数据,进行处理,并将结果传递给数据层进行存储或查询。同时,当系统需要从数据层读取数据时,业务逻辑层会处理这些数据,并将其传递给表现层进行展示。
数据层(DL):虽然本河南非物质文化遗产平台的数据存储在服务端的MySQL数据库中,但数据层仍然作为一个独立的部分存在。它的主要功能是存储和管理河南非物质文化遗产平台的数据。数据层与MySQL数据库进行交互,执行数据的增、删、改、查等操作,确保数据的完整性和安全性。
这三个层次相互独立但又紧密协作,共同构成了河南非物质文化遗产平台的完整架构。通过合理的分层设计,可以提高系统的可维护性、可扩展性和可重用性,为用户提供更好的服务和体验。
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-address(收货地址)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
address_id |
int |
是 |
是 |
收货地址 |
|
|
2 |
name |
varchar |
32 |
否 |
否 |
姓名 |
|
3 |
phone |
varchar |
13 |
否 |
否 |
手机 |
|
4 |
postcode |
varchar |
8 |
否 |
否 |
邮编 |
|
5 |
address |
varchar |
255 |
是 |
否 |
地址 |
|
6 |
user_id |
mediumint |
是 |
否 |
用户ID |
|
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
9 |
default |
tinyint |
是 |
否 |
默认判断 |
表 4-3-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-4-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-5-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-6-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-7-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-8-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-9-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-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-inheritor_information(传承人信息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
inheritor_information_id |
int |
是 |
是 |
传承人信息ID |
|
|
2 |
name_of_the_inheritor |
varchar |
64 |
否 |
否 |
传承人姓名 |
|
3 |
gender_of_inheritor |
varchar |
64 |
否 |
否 |
传承人性别 |
|
4 |
date_of_birth |
varchar |
64 |
否 |
否 |
出生年月 |
|
5 |
list_of_inheritors |
varchar |
64 |
否 |
否 |
传承人名录 |
|
6 |
inheritor_cover |
varchar |
255 |
否 |
否 |
传承人封面 |
|
7 |
introduction_to_the_inheritor |
longtext |
4294967295 |
否 |
否 |
传承人简介 |
|
8 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
9 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
10 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
11 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
12 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-14-intangible_cultural_heritage_projects(非遗项目)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
intangible_cultural_heritage_projects_id |
int |
是 |
是 |
非遗项目ID |
|
|
2 |
entry_name |
varchar |
64 |
否 |
否 |
项目名称 |
|
3 |
project_type |
varchar |
64 |
否 |
否 |
项目类型 |
|
4 |
the_abyss_of_history |
varchar |
64 |
否 |
否 |
历史深渊 |
|
5 |
project_video |
varchar |
255 |
否 |
否 |
项目视频 |
|
6 |
cover_photo |
varchar |
255 |
否 |
否 |
封面图片 |
|
7 |
project_introduction |
longtext |
4294967295 |
否 |
否 |
项目简介 |
|
8 |
hits |
int |
是 |
否 |
点击数 |
|
|
9 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
10 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
11 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
12 |
recommend |
int |
是 |
否 |
智能推荐 |
|
|
13 |
mark_address |
varchar |
64 |
否 |
否 |
详细地址 |
|
14 |
mark_lng |
varchar |
64 |
否 |
否 |
详细地址经度 |
|
15 |
mark_lat |
varchar |
64 |
否 |
否 |
详细地址纬度 |
|
16 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
17 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-15-intangible_cultural_heritage_shopping_mall(非遗商场)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
intangible_cultural_heritage_shopping_mall_id |
int |
是 |
是 |
非遗商场ID |
|
|
2 |
product_specifications |
varchar |
64 |
否 |
否 |
商品规格 |
|
3 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
4 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
5 |
cart_title |
varchar |
125 |
否 |
否 |
标题 |
|
6 |
cart_img |
text |
65535 |
否 |
否 |
封面图 |
|
7 |
cart_description |
varchar |
255 |
否 |
否 |
描述 |
|
8 |
cart_price_ago |
double |
是 |
否 |
原价 |
|
|
9 |
cart_price |
double |
是 |
否 |
卖价 |
|
|
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-16-logistics_delivery(物流配送)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
logistics_delivery_id |
int |
是 |
是 |
物流配送ID |
|
|
2 |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
|
3 |
product_name |
varchar |
64 |
否 |
否 |
商品名称 |
|
4 |
purchase_quantity |
varchar |
64 |
否 |
否 |
购买数量 |
|
5 |
total_transaction_amount |
double |
否 |
否 |
交易总额 |
|
|
6 |
the_date_of_issuance |
date |
否 |
否 |
发货日期 |
|
|
7 |
delivery_number |
varchar |
30 |
否 |
否 |
配送订单 |
|
8 |
ordinary_users |
int |
否 |
否 |
普通用户 |
|
|
9 |
shipping_address |
varchar |
64 |
否 |
否 |
收货地址 |
|
10 |
delivery_status |
varchar |
64 |
否 |
否 |
配送状态 |
|
11 |
signing_status |
varchar |
64 |
否 |
否 |
签收状态 |
|
12 |
recommend |
int |
是 |
否 |
智能推荐 |
|
|
13 |
contact_name |
varchar |
255 |
否 |
否 |
联系人名字 |
|
14 |
merchant_id |
int |
否 |
否 |
商家id |
|
|
15 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
16 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-17-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
是 |
是 |
公告ID |
|
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-18-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-19-ordinary_users(普通用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
ordinary_users_id |
int |
是 |
是 |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
3 |
contact_information |
varchar |
64 |
否 |
否 |
联系方式 |
|
4 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
是 |
否 |
用户ID |
|
|
7 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-20-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-21-project_type(项目类型)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
project_type_id |
int |
是 |
是 |
项目类型ID |
|
|
2 |
project_type |
varchar |
64 |
否 |
否 |
项目类型 |
|
3 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-22-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-23-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-24-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-25-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-26-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-27-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 |
是 |
否 |
更新时间 |
第五章 河南非物质文化遗产平台 详细设计与实现
河南非物质文化遗产平台的详细设计与实现主要是根据前面的河南非物质文化遗产平台的需求分析和河南非物质文化遗产平台的总体设计来设计页面并实现业务逻辑。主要从河南非物质文化遗产平台界面实现、业务逻辑实现这两部分进行介绍。
5.1前端首页模块
首页是用户访问平台时首先看到的页面,它展示了非遗商场和新闻资讯的入口。用户可以在这里快速浏览最新的非遗商品和资讯,同时也可以查看通知公告,了解平台最新动态。前台首页模块展示如下图所示。
图 5-1前台首页模块图
5.2用户注册模块
不是河南非物质文化遗产平台中正式用户的是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+手机号+身份+用户姓名+用户性别等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。用户注册流程图如下所示。

图 5-2 注册流程图
其用户注册模块展示如下图所示。
图 5-3注册模块图
注册代码如下:
/
* 注册
* @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-4 用户登录流程图
登录模块如下图所示。
图 5-5登录模块图
登录代码如下:
/
* 登录
* @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-6新闻资讯模块图
5.4.2非遗商场模块
非遗商场模块是用户购买非遗商品的平台。用户可以浏览商品,收藏喜欢的商品,对商品进行评论,并且可以将商品加入购物车或直接购买。这个模块旨在方便用户发现和购买非遗产品。非遗商场模块如下图所示。
图 5-7非遗商场模块图
5.4.3非遗项目模块
非遗项目模块展示了非物质文化遗产项目,用户可以浏览这些项目,点赞、收藏和评论。此外,用户还可以查看项目的地图信息,了解项目的地理位置。非遗项目模块如下图所示。
图 5-8非遗项目模块图
5.4.4传承人信息模块
传承人信息模块提供了非遗传承人的详细资料,用户可以对这些信息进行点赞、收藏和评论,从而支持和了解非遗传承人的工作。传承人信息模块如下图所示。
图 5-9传承人信息模块图
5.4.5个人中心模块
个人中心是用户管理个人信息和订单的综合区域。用户可以查看个人首页,管理订单配送信息,查看和管理自己的收藏列表,以及管理自己的评论。这个模块为用户提供了一个集中的地方来控制他们的用户活动和偏好设置。个人中心模块如下图所示。
图 5-10个人中心模块图
5.5后端管理员功能模块
5.5.1后台首页模块
登录后,管理员首先进入后台首页,这里提供直观的数据统计图表,包括商品销售金额统计和商品销售数量统计,帮助管理员快速了解商城运营情况。后台首页模块如下图所示。
图 5-11后台首页模块图
5.5.2系统用户模块
系统用户管理功能允许管理员对系统中的用户进行全面管理。管理员可以添加教师用户、修改用户信息、设定用户角色以及处理用户账号的停用或删除。这一功能确保了系统用户信息的准确性和安全性,也方便管理员根据实际需要调整用户权限。用户管理流程图如下所示。

图 5-12用户管理流程图
系统用户模块如下图所示。
图 5-13系统用户模块图
系统用户管理关键代码如下:
@RequestMapping("/get_list")
public Map<String, Object> getList(HttpServletRequest request) {
Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
return success(map);
}
5.5.3项目类型管理模块
管理员可以对非遗项目类型进行添加、删除和查询操作,同时能够查看每个项目类型的详细信息,便于对非遗项目进行分类管理。项目类型管理模块如下图所示。
图 5-14项目类型管理模块图
5.5.4非遗项目管理模块
管理员可以添加新的非遗项目,删除或查询现有项目,并且可以查看项目的详细信息。此外,系统支持地图功能,方便展示非遗项目的地理位置。非遗项目管理添加模块如下图所示。
图 5-15非遗项目管理添加模块图
5.5.5传承人信息管理模块
管理员负责传承人信息的添加、删除和查询,以及查看传承人的详细资料和相关评论,确保传承人信息的准确性和完整性。传承人信息管理模块如下图所示。
图 5-16传承人信息管理模块图
5.5.6系统管理模块
管理员可以对系统中的轮播图进行添加、删除和查询操作,通过轮播图展示重要信息或活动,吸引用户关注。轮播图管理模块如下图所示。
图 5-17轮播图管理模块图
5.5.7资源管理模块
管理员负责新闻资讯的增删改查操作,包括资讯分类的管理,以及查看用户对资讯的评论,保证信息的及时更新和准确性。资源管理模块如下图所示。
图 5-18资源管理模块图
5.5.8商城管理模块
管理员可以管理非遗商城的商品分类、订单列表和订单配送状态,确保商城运营的顺畅和用户购物体验的优化。商城管理模块如下图所示。
图 5-19商城管理模块图
第六章 系统测试
在系统开发的流程中,前台、后台以及数据库的建设只是整个项目的基础构建部分,完成了这些仅仅意味着系统框架的搭建告一段落。然而,一个系统的真正成熟与稳定,关键在于其是否能经受住严格的测试。测试是系统开发流程中不可或缺的一环,它对于确保系统质量至关重要。
6.1系统测试的目的
一个系统测试的目的就是检验系统在真正的工作环境和条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。
6.2测试用例
6.2.1非遗商场测试
非遗商场测试用例如表6-1 所示。
表6-1 非遗商场测试用例
|
测试用例编号 |
YL_03 |
|
|
测试用例名称 |
系统使用者点击非遗商场进行购买 |
|
|
测试用例描述 |
使用者输入购买信息 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
输入完整的购买内容 |
点击“提交成功”,并进入系统 |
预期结果 |
|
不输入购买内容 |
提示“请输入完整” |
预期结果 |
6.2.2创建数据测试
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如表6-2 所示。
表6-2 创建数据测试用例
|
测试用例编号 |
YL_05 |
|
|
测试用例名称 |
系统使用者进行创建数据 |
|
|
测试用例描述 |
使用者输入要创建的数据 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
输入完整并且格式正确的数据 |
提示“创建成功”,并显示所有数据 |
预期结果 |
|
核心位置数据但非必要位置不输入数据 |
提示“创建成功”,并显示所有数据 |
预期结果 |
|
核心数据位置不输入数据 |
提示“创建失败” |
预期结果 |
6.2.3修改数据测试
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如表6-3所示。
表6-3 修改数据测试用例
|
测试用例编号 |
YL_06 |
|
|
测试用例名称 |
系统使用者进行修改数据 |
|
|
测试用例描述 |
使用者对可修改的数据项进行修改 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
将现有数据修改成正确的数据 |
提示“修改成功”,并显示所有数据 |
预期结果 |
|
将现有数据修改成错误的数据 |
提示“修改失败” |
预期结果 |
6.2.4查询数据测试
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如表6-4所示。
表6-4 查询数据测试用例
|
测试用例编号 |
YL_05 |
|
|
测试用例名称 |
系统使用者进行查询数据 |
|
|
测试用例描述 |
全部查询以及输入关键词查询 |
|
|
系统入口 |
浏览器 |
|
|
步骤 |
预期结果 |
实际结果 |
|
界面自动查询全部 |
显示对应所有记录 |
预期结果 |
|
输入已存在且能匹配成功的关键字 |
显示所查询到的数据 |
预期结果 |
|
输入不存在的关键字 |
显示数据界面为空 |
预期结果 |
6.3测试结果
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。
结 论
经过深入研究与分析,明确了基于Java和MySQL数据库的河南非物质文化遗产平台的可行性。该系统结合Java与MySQL技术,实现了高效的河南非物质文化遗产平台。通过本次开发实践,深刻认识到学习的无止境和实践的重要性。尽管在初期遇到了如页面显示不规范、数据库连接问题以及参数传递困难等挑战,但通过查阅资料和团队协作,我们成功解决了这些问题。在此过程中,积累了丰富的知识和问题解决能力,尤其是学会了如何从海量信息中筛选出有价值的内容。
尽管理论知识是宝贵的,但每个人的编程思路和数据处理方法各不相同。因此,实践成为了找到解决方案的关键。在毕业设计过程中,不断提升自我,积累了丰富的经验,这将对未来的职业发展产生积极影响。
在开发河南非物质文化遗产平台的过程中,参考了众多相关系统的成功案例,取其精华、去其糟粕,逐步完善了系统功能。然而,该系统仍存在诸多不足,需要在后续的学习中不断改进。实践表明,河南非物质文化遗产平台具有广阔的发展前景。经过严格的测试与运行,该系统功能完善、界面美观、操作简便,技术理论上已趋成熟。
参考文献
- 于亚兰.非物质文化遗产的保护和传承研究——以河南汤阴跑帷子为个案[J].嘉应文学,2025,(03):100-102.
- 闫贝,付儒佳.文旅融合背景下开封非物质文化遗产创新传承研究——以朱仙镇木版年画文创产品创新发展为例[J].玩具世界,2025,(01):157-159.
- 赵君.洛阳音乐类非物质文化遗产的空间分布研究[J].洛阳理工学院学报(社会科学版),2024,39(06):7-10.
- 李亚.洛阳唐三彩传统烧制技艺国家级非物质文化遗产代表性传承人高水旺访谈[J].文化遗产,2024,(06):147-154+2-3.
- 张宁,郭艺伟.河南非物质文化遗产空间分布及驱动因素研究[J].重庆文理学院学报(社会科学版),2024,43(06):23-38.DOI:10.19493/j.cnki.issn1673-8004.2024.06.003.
- 余红卫,张莉.河南非物质文化遗产传播创新研究[J].农村·农业·农民,2024,(21):58-61.
- 韩淼,徐豫资.信阳非物质文化遗产融入高校思政课教学价值探析[J].文化月刊,2024,(S1):67-69.
- 靳晴.河南传统舞蹈文化意蕴探析——以河南省国家级非遗项目为例[J].喜剧世界(上半月),2024,(10):130-132.
- 花爽.非物质文化遗产视角下“汴京灯笼张”的传承与设计应用[J].轻纺工业与技术,2024,53(04):84-87.
- 徐进,袁子文.河南段体育非物质文化遗产传承与保护研究[C]//陕西省体育科学学会,陕西省学生体育协会.第二届陕西省体育科学大会论文摘要集(墙报).河南科技学院体育学院;,2024:1.DOI:10.26914/c.cnkihy.2024.023992.
- 王静.非物质文化遗产特色街区发展策略研究——以洛阳老城历史文化街区为例[J].洛阳理工学院学报(社会科学版),2024,39(03):53-57.
- 史英霞,曹洋,李晨阳.河南历史文化遗产保护和活化利用策略研究[N].黑龙江日报,2024-05-27(007). DOI:10.28348/n.cnki.nhjrb.2024.001949.
- 王嘉晴.非物质文化在高校美术教育中的应用研究——以烙画为例[J].美与时代(中),2024,(05):108-110.DOI:10.16129/j.cnki.mysdz.2024.05.037.
- 赵予盈.河南“非遗”传承与中原文化传播的路径研究[J].新楚文化,2024,(12):4-6.DOI:10.20133/j.cnki.CN42-1932/G1.2024.12.001.
- 赵傲扬.传播学视域下河南非物质文化遗产外宣翻译策略研究[J].今古文创,2024,(13):106-108.DOI:10.20024/j.cnki.CN42-1911/I.2024.13.032.
- 吴婉莹.文旅融合下平顶山非物质文化遗产发展路径探析——以马街书会为例[J].管理工程师,2023,28(06):54-58.DOI:10.19327/j.cnki.zuaxb.1007-1199.2023.06.007.
- 赵君.洛阳市嵩县“大铜器”非物质文化遗产保护传承研究[J].洛阳理工学院学报(社会科学版),2023,38(06):1-4.
- Subhajit A ,Sunil K . Exploring Scientific Computing with Java:A practical guide for logic and application building (English Edition)[M]. BPB Publishers: 2024-09-25.
- Salunke V S ,Ouda A . A Performance Benchmark for the PostgreSQL and MySQL Databases [J]. Future Internet, 2024, 16 (10): 382-382.
- Shao W ,Liu K . Design and Implementation of Online Ordering System Based on SpringBoot [J]. Journal of Big Data and Computing, 2024, 2 (3):
致 谢
河南非物质文化遗产平台设计与实现工作已结束,虽然过程中充满挑战,但内心充满自豪和满足。感谢大学四年间教导我的所有老师,他们的专业知识与人生智慧让我成长为能独立完成系统的学生。特别感谢指导老师,他耐心解答疑惑,引导我解决问题,提升自主解决能力。室友和同学们的宝贵建议和支持也让我取得长足进步。未来,我将继续努力追求卓越,不辜负所学所悟和老师期望。坚信坚定信念和不懈努力,未来定能取得更辉煌成就。期待更美好未来!
此外,河南非物质文化遗产平台设计与实现不仅是技术挑战,挫折和困难是成长的垫脚石,让我更深入理解问题,精确找到解决方案。每次解决问题,都感到满足和自豪。
对于未来,我充满期待和信心。无论道路多崎岖,只要保持坚定信念,持续努力,定能取得更大成就。期待将知识和技能运用到实际中,为社会做出更大贡献。
最后,感谢所有帮助和支持我的人。你们的教诲、鼓励和支持让我有今天的成就。我会继续努力,不辜负期望,为实现更美好的未来而奋斗。
点赞+收藏+关注 →私信领取本源代码、数据库
更多推荐
所有评论(0)