摘要
随着信息技术的飞速发展,移动互联网已经成为人们获取信息和交流的主要渠道。本文针对侗族大歌展示传播的需求,设计并实现了一个基于spring boot侗族大歌推广小程序。该小程序旨在提供一个便捷的平台,让人们更好地了解和参与侗族大歌的传承与保护。
本文首先对侗族大歌传播的现状进行了分析,提出了小程序的设计目标和需求。然后,详细介绍了小程序的架构设计和功能实现,包括用户管理、后台首页、系统用户、侗族大歌管理、侗族视界管理、历史介绍管理、通知消息管理、交流管理、通知公告管理、系统管理等模块。在技术实现方面,小程序采用了SpringBoot框架和MySQL数据库,并使用了一些前端开发技术,如小程序开发框架、JavaScript等。
最后,本文对小程序进行了测试和验证,并对其未来的发展进行了展望。通过本小程序的设计与实现,可以为侗族大歌展示传播提供一个新的渠道和平台,促进侗族大歌的传承和发展。
关键词:小程序;侗族大歌传播;SpringBoot框架
Abstract
With the rapid development of information technology,mobile Internet has become the main channel for people to obtain information and communicate.In this paper,in order to meet the needs of the display and dissemination of Dong songs,a small program based on spring boot for the promotion of Dong songs is designed and implemented.The Mini Program aims to provide a convenient platform for people to better understand and participate in the inheritance and preservation of the Great Song of the Dong Nationality.
This paper first analyzes the current situation of the spread of Dong songs,and puts forward the design goals and requirements of mini programs.Then,the architecture design and function implementation of the Mini Program are introduced in detail,including user management,background homepage,system users,Dong big song management,Dong vision management,historical introduction management,notification message management,communication management,notification announcement management,system management and other modules.In terms of technical implementation,the Mini Program uses the SpringBoot framework and MySQL database,and uses some front-end development technologies,such as the Mini Program development framework,JavaScript,etc.
Finally,this paper tests and verifies the Mini Program,and looks forward to its future development.Through the design and implementation of this Mini Program,it can provide a new channel and platform for the display and dissemination of the great songs of the Dong nationality,and promote the inheritance and development of the great songs of the Dong nationality.
Keywords:applet,Dong song spread,SpringBoot framework
目录
第1章绪论 1
1.1研究背景 1
1.2研究现状 1
1.3研究内容 2
第2章相关技术介绍 3
2.1微信开发者工具 3
2.2小程序框架以及目录结构介绍 3
2.3 MySQL描述 4
2.4 Vue主要功能 4
2.5 Java语言与JDK开发环境 5
2.6 Springboot框架 5
第3章系统分析 6
3.1可行性分析 6
3.1.1技术可行性 6
3.1.2经济可行性 6
3.1.3操作可行性 6
3.2功能需求分析 7
3.3非功能需求分析 8
3.3.1数据安全性 8
3.3.2时间特性 8
3.3.3稳定性 8
3.4业务流程分析 9
3.5数据流程分析 10
第4章系统设计 13
4.1系统架构设计 13
4.2系统总体设计 13
4.3系统功能设计 14
4.4数据库设计 16
4.4.1数据库概念设计 16
4.4.2数据库表设计 17
第5章系统实现 37
5.1用户前台功能模块(前端) 37
5.2管理员功能模块(后端) 48
第6章系统测试 54
6.1测试目的 54
6.2功能测试 54
6.3系统评价 56
第7章全文总结 57
参考文献 58
致谢 60
侗族大歌,流行于贵州省黔东南地区的黎平县、从江县、榕江县等侗族聚居区和广西壮族自治区三江侗族自治县的传统音乐,中国国家级非物质文化遗产之一,人类非物质文化遗产之一。侗族大歌是侗族传统文化的重要载体之一,具有深厚的历史积淀和独特的民族风貌。对侗族大歌进行研究有助于促进民族文化的传承与保护,维护和弘扬侗族优秀传统文化。
语言学研究价值:侗族大歌以口头传唱的形式流传于民间,是侗族语言的重要表现形式之一。通过对侗族大歌的研究,可以深入了解侗族语言的语音、词汇、语法等特点,对侗族语言学研究具有重要意义。越来越多的人开始关注和研究侗族大歌,也推动了相关研究。
文学艺术价值:侗族大歌在形式上具有史诗长诗的特点,其内容丰富、形式独特,具有较高的文学艺术价值。研究侗族大歌有助于深入挖掘其艺术魅力和审美价值,为世界文化多样性的维护和发展做出贡献。
跨学科研究价值:研究侗族大歌涉及到民族学、语言学、文学、历史学、人类学等多个学科领域,具有较强的跨学科研究价值。通过跨学科的研究方法,可以更全面、深入地理解和解释侗族大歌的文化内涵和社会意义。
因此,对侗族大歌进行研究不仅有助于加深对侗族文化的了解,而且对于丰富人类文化多样性、促进民族和谐、推动人类文明的发展都具有积极的意义。
在高校中,侗族大歌的传播主要依赖于社团活动等传统方式,存在着传播渠道单一、信息传达不及时等问题。此外,由于侗族大歌的特殊性,其传承和发展需要更多的参与和互动,而现有的传播方式难以满足这一需求。
目前侗族大歌的研究逐渐兴盛,吸引了越来越多的学者和爱好者的关注。研究者们通过对侗族大歌音乐艺术、口传文学等资料的分析,探索侗族大歌的起源、发展历程以及文化内涵。他们致力于揭示侗族大歌在中国传统文化中的地位和影响,探讨侗族大歌对于中国传统艺术和社会习俗的影响。此外,侗族大歌复兴运动也为侗族大歌的研究提供了新的动力和视角,促进了更多关于侗族大歌的学术探讨和传播活动。随着研究深入和意识的增强,侗族大歌的研究前景将更加广阔。因此,对于基于springboot侗族大歌推广小程序的研究和开发,需要综合考虑技术、用户需求和传播效果等多方面因素,以提高小程序的实用性和有效性。
为了解决上述问题,本文提出了基于SpringBoot的springboot侗族大歌推广小程序的设计与实现。该小程序旨在提供一个便捷的平台,让人们更好地了解和参与侗族大歌的传承与保护。
基于SpringBoot框架开发,具有良好的扩展性和可维护性;采用前后端分离架构,提高了系统的开发效率和性能;支持多种终端设备,方便用户随时随地访问;提供丰富的侗族大歌信息展示和互动功能,如侗族大歌介绍、侗族视界、历史文化交流等。
通过本小程序的设计与实现,可以为侗族大歌传播提供一个新的渠道和平台,促进侗族大歌的传承和发展。同时,也为其他文化领域提供了一个可借鉴的案例,推动侗族大歌在社会中的传播和保护。
开发和实施基于springboot侗族大歌推广小程序的实现,需要完成以下任务:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)在系统ACK完成之后,我们将根据系统开发的要求,选择springboot技术来构建springboot侗族大歌推广小程序,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,我们还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。
(3)在基于springboot侗族大歌推广小程序的实现中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、普通用户,每个角色都有其独特的特点,而且每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,普通用户可以随时根据自身的需求查看侗族大歌、侗族大歌活动报名、侗族大歌项目申请等,管理员可以快速收集用户的详细信息,并能够在第一时间响应用户的需求。
(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,我们会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试[1]。
根据用户的需求,我们将采用不同的屏幕大小来制作小程序,并对其进行精确的切割。
在完成了视图布置之后,可以通过执行编辑功能,快速更改视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,我们可以更容易地进行视图调试。
微信的代码体积应该保持在2M以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特用户界面的应用。它由一套完善的框架结构组成,包括逻辑层、视觉层、操作界面、用户界面三大功能。其中,操作界面的功能主要集成于用户界面,操作界面的功能则集成到用户界面,用户界面的功能则集成到用户界面。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的行为和设计进行一致。它支持对用户行为进行实时的调整,并且能够根据用户的需求进行实时的变化[2]。此外,它还拥有一套完整的功能模块,包括具有微信风格的外观和独立的功能模块,使得用户能够轻松地构建一个功能强大的小程序。
MySQL数据库已经成为网络上的一种强大的工具,它能够支持多个用户,并且能够根据客户端和服务端的需求进行调整,从而满足不同的需求。在这里,服务端和客户端只是一种软件上的概念,而我们所使用的计算机硬件则没有必要完全相互匹配[1]。
MySQL作为一种备受推崇的关联性DBMS,其卓越的性能和易于操作的特性,以及其在多种操作环境中的灵活性,让其成为了最受青睐的应用之选。此外,MySQL还具有良好的跨平台性,让软件开发人员更加满意。与传统的关联式数据库系统形式大相径庭,MySQL拥有一套完善的数据库管理策略,以确保用户的安全、稳健、安全。MySQL具备良好的容错、安全、快速、稳健的特点,使得mysql成为一款相当流行的数据库管理工具[2]。
MySQL拥有一种独特的权限分配机制,可以根据用户的身份和业务逻辑,为用户提供更多的选择,从而大大提高了MySQL的安全性和完整性,远超过其他关系型数据库。
MySQL具有强大的功能,能够处理各种数据类型,包括动态、静态、多种语言,从而使用户能够轻松访问多种数据。
MySQL具有多种功能[3],它能够支持多种平台的开发,并且支持多种编程语言[4],使得用户能够轻松访问和使用MySQL数据库。
Vue(读音/vjuː/,相似于view)是一种具有高度灵活性的JavaScript架构,能够从基础到顶级,从低到高地实现多种功能,从而创造出一个完整的、高效的用户体验。Vue的核心库专注于视觉表示,它的操作简单,并且可以轻松地将其与其他第三方库和已存在的项目进行集成。此外,Vue可以通过搭配先进的工具和多样的支撑性库,来实现对复杂的网站(SPA)的高效管理。
Vue.Vue作为一种逐步改善的用户体验的框架,具备了独特的优势:首先,它的基础结构更加简单,而且可以轻松地被更多的人使用,而Vue的核心库则更加专注于视觉层,可以轻松地被更多的人使用,也可以被更多的库和现成的项目所使用。Vue具备强大的功能,可以利用其内置的多个文档组件以及其强大的生态系统,来实现更加精简、高效的单页应用。
Vue.js旨在通过最少的API,实现对数据的有效绑定,并将其转换为多种形式的视图组件。
Vue.js虽然不是一个完美的框架,但它可以帮助我们更好地理解和实现复杂的页面应用。它的视图层特性使得它更容易学习,并且可以与其他库或已有项目进行整合,从而提高效率。
sun公司的java编写的编译器可以跨越各种不同的操作系统,它的高度可靠的兼容性使它成为当今最受欢迎的编译器之一,它的强大功能使它成为了当今数据中心、个人PC和高端科技电脑的首选编译器,并且拥有一支规模宏大的编译器团队。[5]
sun公司推出的java开发工具JDK,具有极大的功能,如果没有它,java程序将无法正常运行,从而影响到用户的使用体验。[6]
Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的AOP框架,它能够将复杂的任务分解为多个独立的部分,并且能够根据用户的不同需求,调整每个部分的功能。它的AOP框架不仅能够支持复杂的任务分解,而且还能够支持多个独立的部分,从而使得用户能够更好地完成任务。
在软件开发的过程中,可行性分析是至关重要的,它旨在评估问题的可行性,以便尽可能快地解决,同时也要考虑到不同的解决方案的优势和劣势,以及实施这些方案所带来的经济效益。通过对技术、操作和经济因素的综合考量,我们可以更好地评估基于springboot侗族大歌推广小程序的可行性,具体表现在:
Java编程语言为基础,结合Springboot、Vue等模型,数据库则使用当前最先进的MySQL数据库,这样,基于springboot侗族大歌推广小程序就能够将其内容完整地保留下来,同时,为提高用户的使用效率,我们还引入Ajax的异步操作,它能够实现对特定数据的快速更改,从而节省服务器的时间,提升用户的使用感受。这个系统的设计非常容易,所以无须进行额外的调整。它使用了Java语言、MySQL存储,并且使用了H5作为前端界面的展现。
通过采用Java和MySQL的架构,基于springboot侗族大歌推广小程序的开发与维护费用虽然较低,但一旦正式推出,将会带来巨大的收益:既能够让用户更加轻松地获取信息,又能够有效地提高QoS,同时降低运营者的负担。虽然springboot侗族大歌推广小程序的小程序并非特别复杂,但它的制作费用相比较低,而且耗费的时间更少,因为它能够带来更高的效率,而且比起日常的维护与管理,它的收入要更高,因此,它的制作完全符合市场的需求。
这款基于springboot侗族大歌推广小程序是一款基于浏览器和服务器的软件,它的前台页面简洁易懂,无论是系统管理员还是普通用户,只要有网络,只要打开浏览器,就可以轻松访问,而且不需要任何操作指导。由于无需任何复杂的环境配置,这个系统既简单又易于操作,因此它具有极高的实用性和可靠性。
当前,B/S架构的系统提供了一种便捷的数据访问模式:只需点击一下网站,即可获取系统的信息,而且,该信息会被存储,并且会被及时地转交给服务器,从而实现快速、准确的信息交换。springboot侗族大歌推广小程序由三个层次组成:视觉-模拟-决策。其中,视觉层负责将用户的需求从服务器上转发到用户,同时也负责将用户的需求转化成可执行的行动。而决策层则负责执行与用户需求有关的决策,以及将用户的需求转化成可执行的行动。
普通用户用例图如图3-1所示。

图3-1普通用户用例图
管理员用例图如图3-2所示。

图3-2管理员用例图
基于springboot侗族大歌推广小程序的实现是一个集众多用户信息且长时间持续运转的系统,它储存了大量的信息,所以需要保证数据不会出现泄露、损坏等情况。只有良好的数据安全才可以保证系统对侗族大歌展示传播信息的管理。
由于本系统具有侗族大歌展示传播信息性质,涉及侗族大歌名录和侗族大歌信息更新、侗族大歌活动报名、侗族大歌项目报名等及时性较强的功能,所以,为了提高用户体验,需要及时反映操作的准确性以及有效性,预计需要控制系统响应时间在3s内,数据传输在50ms以内。
本系统集信息收集与管理功能于一身,除涉及大量信息数据外,还需满足用户和管理员访问。可以预见,这种访问通常是集中的、突发性的访问,这种访问很容易导致服务器满载、迟缓,最终崩溃。所以这要求在软件以及硬件部分均需要拥有应对短时间内大量数据吞吐的能力。在系统设计方面,我们通过减少不必要的信息提交量等方法来提高系统在特殊情况下的稳定性能。
经过对系统功能的分析,调查,研究,总结出基于springboot侗族大歌推广小程序主要实现的是对用户信息、侗族大歌管理、侗族视界、历史介绍项目等管理功能。这样,可以对该系统绘制业务流程图。
如下为业务流程图图例。

图3-3业务流程图图例
系统的业务流程如下图所示。

图3-4系统业务流程图
根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述,根据自顶向下原则,逐层分解功能,这个过程产生DFD图。
以下是本文当中使用的数据流图图例,见下图所示。

图3-5系统数据流图(0层)
零层数据流程是流程中最抽象的一层,它包括了注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、留言信息文档、图片信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。
系统的0层数据流图如下图所示。

图3-6系统数据流图(0层)
目前B/S体系的系统主要的数据访问方式是:通过浏览器页面用户可以进入系统,系统可以自动对用户向服务器发送的请求进行处理,处理请求是在系统后台中进行的,用户在浏览器页面上进行相应操作,就能够看到服务端传递的处理结果。springboot侗族大歌推广小程序主要分为视图-模型-控制三层架构设计。在视图层中,主要是操作在服务器端向客户端反馈并显示的数据,在模型层中,主要处理相关的业务逻辑、数据整合等,最后的控制层它介于视图和模型之间,主要是调整两层之间的关系,最终落实数据的传递。
系统架构图如图4-1所示。

图4-1系统架构图
在这个springboot侗族大歌推广小程序上,我们将会发现一个由两个部门组成的系统。
虽然两个模块看起来各自独立,但它们所使用的数据库却是一致的。这些模块的功能都是经过精心设计和分析,并结合了大量的资料和信息,才得以实现的。
综上所述,系统功能结构图如图4-2所示。

图4-2系统功能结构图
该小程序包括三个主要模块:浏览、检索和维护。管理员拥有维护这些信息的权限,并能够发布最新的侗族大歌信息和侗族视界信息、历史介绍信息、通知公告等项目信息。
普通用户模块:
- 用户注册登录:用户点击“注册”按钮,并输入账号,设置密码,确认密码,昵称,邮箱,选择身份,点击“立即注册”按钮进行注册,注册完成后用账号密码进行登录。
- 首页信息:进入侗族大歌推广小程序的首页信息包含了首页、侗族大歌、侗族视界、历史介绍等。
- 侗族大歌:在首页点击“侗族大歌”按钮进入侗族大歌的相关资讯,用户可以进行点赞收藏及评论等操作。
- 侗族视界:在首页点击“侗族视界”按钮进入侗族视界的相关资讯,可以查看相关侗族的视频相关详情、轶可进行点赞收藏及评论等操作。
- 历史介绍:用户点击“历史介绍”,可以查看相关侗族大歌的历史文化背景信息,亦可进行点赞收藏及评论等操作。
- 交流论坛:在首页点击“交流社区”按钮进入交流社区页面,用户可以发表内容,也可查看他人发表的内容,并可进行评论、收藏、点赞操作。
- 我的:进入我的基本信息,可以对个人进本信息进行修改,可以查看交流论坛留言管理内容,进行添加删除等操作。
后台管理员管理模块:
- 管理员登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
- 系统用户管理:管理员可以对侗族大歌推广小程序中的管理员,普通用户进行增删改查。
- 侗族大歌管理:管理员可以添加发布侗族大歌内容,包括标题名称、歌唱分类、寓意、音频上传、历史介绍等详情。
- 侗族视界管理:管理员可以对侗族视界列表添加管理,包括标题名称、封面图、视频来源、视频上传、详情介绍等。
- 历史介绍管理:管理员可以查看添加删除历史信息,包括历史标题、历史时期、介绍内容、封面图等详情。
- 通知消息管理:管理员可以查看添加通知消息列表,包括通知内容、通知用户、时间等信息。
- 系统管理:点击“轮播图”可以查看到系统中的轮播图信息,如果想要添加新的轮播图,点击“添加”按钮,根据提示输入上轮播图信息,点击“提交”按钮,信息没有错误的话,添加就完成了,如果轮播图信息有误,可以对轮播图更新维护,也可以直接删除某一轮播图。
- 通知公告管理:管理员点击“通知公告管理”按钮,可查看通知公告,如需添加新的通知公告,点击下侧“添加”按钮,并输入标题、正文,点击“提交”按钮进行提交,同时也支持对已有的通知公告进行编辑,删除和查询。
- 交流管理:管理员点击“交流管理”可以查看分类里面其他用户的交流信息,可以查看详情并且做出回复。
数据库概念设计是指对于某个具体应用的数据模型(数据结构),进行抽象和设计,以便在后续的数据库实现阶段中进行数据库逻辑设计和物理结构设计。概念结构本身特性就是其能表现来自用户的各类需求。
系统ER图如图4-3所示。

图4-3系统ER图
基于springboot侗族大歌推广小程序的实现所拥有的数据表有以下:用户信息表,侗族视界表,侗族大歌信息表等。
系统数据库表如下表所示。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
表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 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表dong_ethnic_perspective (侗族视界)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dong_ethnic_perspective_id | int | 10 | 0 | N | Y | 侗族视界ID | |
2 | title | varchar | 64 | 0 | Y | N | 标题 | |
3 | cover_image | varchar | 255 | 0 | Y | N | 封面图 | |
4 | video_source | varchar | 64 | 0 | Y | N | 视频来源 | |
5 | related_videos | varchar | 255 | 0 | Y | N | 相关视频 | |
6 | details_introduction | longtext | 2147483647 | 0 | Y | N | 详情介绍 | |
7 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
8 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | dong_ethnic_song_id | int | 10 | 0 | N | Y | 侗族大歌ID | |
2 | title_name | varchar | 64 | 0 | Y | N | 标题名称 | |
3 | singing_classification | varchar | 64 | 0 | Y | N | 歌唱分类 | |
4 | cover_image | varchar | 255 | 0 | Y | N | 封面图 | |
5 | moral | varchar | 64 | 0 | Y | N | 寓意 | |
6 | audio_frequency | varchar | 255 | 0 | Y | N | 音频 | |
7 | historical_introduction | longtext | 2147483647 | 0 | Y | N | 历史介绍 | |
8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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]用来搜索指定类型的论坛帖 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表historical_introduction (历史介绍)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | historical_introduction_id | int | 10 | 0 | N | Y | 历史介绍ID | |
2 | history_title | varchar | 64 | 0 | Y | N | 历史标题 | |
3 | cover | varchar | 255 | 0 | Y | N | 封面 | |
4 | historical_period | varchar | 64 | 0 | Y | N | 历史时期 | |
5 | introduction_content | longtext | 2147483647 | 0 | Y | N | 介绍内容 | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
7 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notification_message_id | int | 10 | 0 | N | Y | 通知消息ID | |
2 | notify_users | int | 10 | 0 | Y | N | 0 | 通知用户 |
3 | notification_date | date | 10 | 0 | Y | N | 通知日期 | |
4 | notification_content | text | 65535 | 0 | Y | N | 通知内容 | |
5 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | mobile_phone_number | varchar | 16 | 0 | Y | N | 手机号码 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
表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-1所示。

图5-1登录界面图
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,其代码如下:
/**
*登录
*@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。

图5-2注册界面图
注册页UserController.java,传入user对象,并将"user_id"、"state"、"user_group"、"login_time"、"phone"、"phone_state"、"username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是"username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如下:
/**
*注册
*@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);
}
注册页password则使用了MD5加密,代码如下:
public String encryption(String plainText){
String re_md5=new String();
try{
MessageDigest md=MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[]=md.digest();
int i;
StringBuffer buf=new StringBuffer("");
for(int offset=0;offset<b.length;offset++){
i=b[offset];
if(i<0)
i+=256;
if(i<16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5=buf.toString();
}catch(Exception e){
e.printStackTrace();
}
return re_md5;
}
在首页,用户可以轻松访问首页、侗族大歌、侗族视界、历史介绍等多种功能,如图5-3所示,为用户提供了更加便捷的服务。

图5-3系统首页界面图
在侗族大歌页面,用户可以轻松获取有关侗族大歌的详细信息,还可以通过关键字快速搜索,同时还可以进行点赞、评论、收藏等功能,如图5-4所示。

图5-4侗族大歌界面图
交流论坛界面,用户们可以在上面进行有关侗族大歌的信息交流,如下图所示。

图5-5交流论坛界面图
通过访问我的页面,用户可以查看基本信息、收藏、通知消息、交流管理等,详见下图。

图5-6我的界面图
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如下:
/**
*修改密码
*@param data
*@param request
*@return
*/
@PostMapping("change_password")
public Map<String,Object>change_password(@RequestBody Map<String,String>data,HttpServletRequest request){
//根据Token获取UserId
String token=request.getHeader("x-auth-token");
Integer userId=tokenGetUserId(token);
//根据UserId和旧密码获取用户
Map<String,String>query=new HashMap<>();
String o_password=data.get("o_password");
query.put("user_id",String.valueOf(userId));
query.put("password",service.encryption(o_password));
int count=service.selectBaseCount(service.count(query,service.readConfig(request)));
if(count>0){
//修改密码
Map<String,Object>form=new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
}
历史介绍界面:用户可以在界面进行有关历史介绍详情。如下图所示。

图5-8历史介绍界面图
通过管理员功能页面,管理员可以查看后台首页、系统用户、侗族大歌管理、系统管理、侗族视界管理、通知公告管理、资源管理、交流管理等,并且可以根据需要进行相应的操作,如图5-13所示。

图5-9管理员功能界面图
管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。

图5-10系统用户管理界面图
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。

图5-11系统管理界面图
新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如下:
@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);
}
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下:
@PostMapping("/set")
@Transactional
public Map<String,Object>set(HttpServletRequest request)throws IOException{
service.update(service.readQuery(request),service.readConfig(request),service.readBody(request.getReader()));
return success(1);
}
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下:
@RequestMapping(value="/del")
@Transactional
public Map<String,Object>del(HttpServletRequest request){
service.delete(service.readQuery(request),service.readConfig(request));
return success(1);
}
public void delete(Map<String,String>query,Map<String,String>config){
QueryWrapper wrapper=new QueryWrapper<E>();
toWhereWrapper(query,"0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}]-删除操作:{}",wrapper.getSqlSelect());
}
点击“通知公告管理”这个菜单,可以查看到系统中所有添加的系统公告,支持通过标题对系统公告进行查询,添加、删除等操作。公告信息管理界面如下图所示。

图5-12通知公告管理界面图
当点击“交流管理”这一菜单的时候,会出现交流列表+论坛分类这两个子菜单,可以对这两个模块进行增删改查操作。资源管理界面如下图所示。

点击“侗族视界管理”这个菜单,可以查看添加视频等信息,支持通过标题对报名信息进行查询,添加、删除等操作,点击“详情”按钮,可对报名信息进行审核。界面如下图所示。

图5-14侗族视界管理界面图
点击“侗族大歌管理”,管理原可以添加侗族大歌相关信息进行查看,包括:标题名称、歌唱分类、寓意、历史介绍、音频文件等,侗族大歌管理界面图如下图所示。

图5-15侗族大歌管理界面图
无论什么样的系统,测试都至关重要,因为它们可以帮助我们检查出潜藏的缺陷,从而确保它们的性能和稳定性,避免Bug的出现,并确保它们的功能和性价比达到预期的要求。为了确保系统的安全、高效、可靠,我们将采取三种不同的方法:单元、功能、及AP的检验。
表6-1展示了一个系统登录功能的测试用例,它可以检测用户名和密码的输入,并且可以观察到系统的反应,从而证明这个功能已经达到了预期的效果。
表6-1系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
表6-2提供了一个详细的注册功能测试用例,它可以有效地检测各种数据的输入,并且可以观察系统的反应,从而证明该功能已经达到了预期的目标。
表6-2注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
通过使用表6-3的测试,我们可以看到,在进行侗族大歌管理时,我们可以进行增、减、更新和查询等操作,并且这些操作都已经被成功地执行。通过观察系统的反馈,我们发现这项功能已经实现了我们的预期,并且运行良好。
前置条件;用户登录系统。
表6-3侗族大歌管理的测试用例
功能描述 | 用于侗族大歌管理 | |
测试目的 | 检测侗族大歌管理时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加侗族大歌,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加侗族大歌,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改侗族大歌,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改侗族大歌,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除侗族大歌,选择职位删除 | 提示删除成功 | 与预期结果一致 |
点击搜索侗族大歌,输入存在的侗族大歌名 | 查找出服务类型 | 与预期结果一致 |
点击搜索侗族大歌,输入不存在的侗族大歌名 | 不显示服务类型 | 与预期结果一致 |
系统评价是指在系统完成或改建后,根据预定的系统目标或现有成绩,从技术、经济、社会、功能等方面进行的评价或审核。本系统个人初步评价如下。
(1)系统功能评价:
根据需求分析以及测试结果来看,本系统已将达到了初期的需求目标,满足了用户对应需求。
(2)系统技术评价:
本系统设计略显繁杂,开发过程中对功能进行了一定的简化,运行时较为稳定,暂未发现安全问题。
(3)系统经济评价:
系统在低成本开发的基础上达到了设计要求。预计可以为用户节省一定的人力、物力。
随着科技的飞速发展,越来越多的行业和企业都在利用计算机技术来管理日益增长的数据。本文旨在探讨基于侗族大歌推广小程序的实现,以满足侗族大歌展示传播信息化管理的需求。
本次毕业论文主要是利用Springboot+Vue开发一个安全可靠,操作简易,同时具备业务可扩展的微信小程序。本文详细的论述了小程序的设计和开发,本系统的所有事务逻辑都是按照系统的需求分析进行设计的,系统有普通用户和系统管理员两种角色,本系统多处采用了Ajax的异步交互技术,同时它也叫异步交互技术,利用它我们可以让网页的局部进行数据刷新操作,Ajax和传统的数据更新技术大大增加了客户的体验程度,由于是对局部进行操作那么就减少了一些繁琐而又不必要的操作,减轻了服务器对页面解析的负担。
目前完成的基于springboot侗族大歌推广小程序,还有许多有待改进的地方。一个是功能上的改进,第二个是技术上的改进。另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如兼职数据分析和可视化等。另外就是对前端UI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。
[1]张君,张星雨,安佳慧等.中国侗族大歌品牌营销及其国际传播纵论[J].辽宁丝绸,2024,(01):87-89.
[2]吴秋红.让传统文化滋养童心[J].教育家,2024,(07):57.
[3]连思敏,谭国亮.侗族大歌玩偶设计在促进优秀传统文化传播中的作用浅析[J].西部皮革,2024,46(03):99-101.DOI:10.20143/j.1671-1602.2024.03.099.
[4]郭淇祺,王鹤霖,张道鼎等.传统侗族大歌造型与现代时尚潮流服装的融合创新[J].西部皮革,2024,46(03):96-98.DOI:10.20143/j.1671-1602.2024.03.096.
[5]赵梦圆,张恺璐.论新媒体时代侗族大歌助推文旅发展——以洛邑古城为例[J].洛阳理工学院学报(社会科学版),2024,39(01):56-59.
[6]谢志奇.基于微信小程序的业务系统实时数据查询开发与应用[J].网络安全和信息化,2023,(12):106-109.
[7]任祥清.微信公众号宣传推广模式探析——以首都博物馆为例[J].首都博物馆论丛,2023,(00):69-74.
[8]张娇姣,李东兵.弘扬侗族大歌彰显传统魅力[J].初中生学习指导,2023,(32):8-10.
[9]辛志亮,伍健.基于用户体验的文旅小程序界面设计研究[J].艺术家,2023,(10):45-47.
[10]马铭华.基于微信小程序的贵州美食推广系统[J].软件,2023,44(08):147-149.
[11]贺俊霖.湘西竹编文化品牌推广小程序设计研究[J].品牌与标准化,2023,(S1):13-18.
[12]李果恩,梁颖,王淑琴等.融合图像识别算法的中医药知识推广系统[J].电脑编程技巧与维护,2023,(06):3-7.DOI:10.16184/j.cnki.comprg.2023.06.024.
[13]杨策,张丹.基于微信小程序平台开发的撒拉族刺绣保护及推广[J].现代信息科技,2023,7(11):128-132.DOI:10.19850/j.cnki.2096-4706.2023.11.029.
[14]韦智浪,李芳.一个侗族大歌科普平台小程序的设计与实现[J].电脑知识与技术,2023,19(14):36-38+41.DOI:10.14004/j.cnki.ckt.2023.0741.
[15]李建国,庄群.微信小程序在智慧党校中的应用及安全探讨[J].数字技术与应用,2023,41(04):172-174+186.DOI:10.19695/j.cnki.cn12-1369.2023.04.52.
[16]Lian T,Chenyi W.The Research on the Comparison of Hanfu Fashion Short Videos on Douyin and Tik Tok[C]//[出版者不详],2022:
[17]王思维,冯思媛,朱殷等.Research on the Development Mode of Hanfu Cultural Industry under the Background of“Internet+”—Analysis Based on Cross-Sectional Data of 1002 Hanfu Taobao Stores[J].社会科学前沿,2020,09(05):603-614.
[18]Zhang C.Hanfu Culture Network Creative Industry Research[C]//[出版者不详],2019:
[19]鲁闽.丝路背景下的唐代女性衣风[C]//中国艺术研究院,敦煌研究院,敦煌市政府.2017“一带一路”文化艺术交流合作国际学术研讨会论文集.清华大学;,2017:5.DOI:10.26914/c.cnkihy.2017.012108.
[20]杨本华.侗族大歌设计理念的和合文化意蕴探究[C]//国际设计科学学会(筹),东南大学,东华大学,上海交通大学.第二届东方设计论坛暨2016东方文化与设计哲学国际研讨会论文集.[出版者不详],2016:5.DOI:10.26914/c.cnkihy.2016.002479.
致谢
在这3个月的毕业设计过程中,指导教师的指导发挥了至关重要的作用,他们的认真负责的工作态度、谨慎的教学精神以及丰富的理论知识,为我的设计提供了强有力的支持,使得整个过程顺利进行。她的教学方式非常认真,让我印象深刻。我从她那里学到了很多知识,并在实践中不断提升。我对这位老师表示由衷的感谢。
经过对毕业设计的全面研究和开发,我的系统取得了重大突破,从需求分析到实现复杂功能,再到最终的测试和维护,使我对系统有了更加深刻的理解。此外,我还在实践中不断提升自己的技能,解决复杂问题,这是这次毕业设计最大的收获。
最终,在整个系统开发的过程中,我的同学和朋友们给予了我极大的帮助,他们的建议让我能够迅速地确定系统的商业理念。因此,我深深地感谢他们的支持。
免费领取源码,请点赞关注私信博主