springboot瑜伽课约课小程序-计算机毕业设计源码87936

摘要

本文详细阐述了一个基于SpringBoot框架的瑜伽课约课小程序的设计与实现过程。随着现代生活节奏的加快,越来越多的人开始关注身心健康,瑜伽作为一种集健身、放松、减压于一体的运动方式,受到了广泛的欢迎。为满足瑜伽爱好者的课程预约和学习需求,我们设计并开发了这款瑜伽课约课小程序,旨在为用户提供便捷、高效的课程预约和学习体验。

首先,我们对瑜伽课约课小程序进行了深入的需求分析,明确了用户群体、功能需求以及技术实现方式。在此基础上,我们选择SpringBoot框架作为后端开发的基础,利用其强大的功能和快速开发的特点,实现了用户注册与登录、课程浏览与搜索、课程预约与取消、课程评价等核心功能。同时,我们还选用了MySQL数据库进行数据存储,确保数据的安全性和稳定性。

在前端方面,我们选用了微信小程序作为开发平台,凭借其跨平台、易推广的优势,为用户提供了流畅的使用体验。通过设计直观、简洁的界面和交互方式,我们使用户可以轻松浏览课程信息、预约心仪的课程、查看课程详情和进行课程评价,实现了良好的用户体验。

为了进一步提升用户满意度和平台的竞争力,我们还增加了一些特色功能,如个性化课程推荐、课程进度跟踪、在线客服等。这些功能不仅提高了用户的学习效率和满意度,也增强了用户与平台之间的互动和粘性。

最后,我们对瑜伽课约课小程序进行了全面的测试和优化,确保其稳定性和性能。通过实际运行和用户反馈,我们验证了该小程序的有效性和实用性。

综上所述,本文设计的基于SpringBoot的瑜伽课约课小程序,不仅满足了广大瑜伽爱好者的课程预约和学习需求,也为瑜伽教学行业提供了一种新的发展模式。我们相信,随着技术的不断进步和用户需求的不断变化,该小程序将会在未来发挥更大的作用。

****关键词:****瑜伽课约课小程序;MySQL数据库;SpringBoot框架。

Abstract

This article introduces the design and implementation process of a yoga teaching platform mini program based on the Spring Boot framework. With the increasing awareness of health, yoga, as a form of physical and mental cultivation, has been favored by more and more people. In order to meet the learning needs of yoga enthusiasts, we have designed and developed a yoga teaching platform mini program, aiming to provide convenient and efficient yoga learning resources and services.

Firstly, we conducted a requirement analysis on the yoga teaching platform mini program, clarifying the user group, functional requirements, and technical implementation methods. On this basis, we adopted the Spring Boot framework as the foundation for backend development, utilizing its lightweight and fast development characteristics to achieve core functions such as user management, course management, video teaching, and interactive communities. At the same time, we used MySQL database for data storage, ensuring the security and stability of the data.

In terms of front-end, we have adopted WeChat Mini Program as the development platform, leveraging its advantages of cross platform and easy promotion, to provide users with a good user experience. By designing a concise and clear interface and interactive approach, we enable users to easily browse courses, watch videos, and participate in interactions, achieving a good user experience.

In addition, in order to improve teaching quality and user stickiness, we have also added some special features, such as intelligent course recommendation, learning progress tracking, online Q&A. These features not only improve the learning efficiency of users, but also enhance the interaction and stickiness between users and the platform.

Finally, we conducted comprehensive testing and optimization of the yoga teaching platform mini program to ensure its stability and performance. Through actual operation and user feedback, we have verified the effectiveness and practicality of the mini program.

In summary, the yoga teaching platform mini program based on Spring Boot designed in this article not only meets the learning needs of yoga enthusiasts, but also provides a new development model for the yoga teaching industry. We believe that with the continuous advancement of technology and the changing needs of users, this mini program will play a greater role in the future.

Keywords: Yoga teaching platform mini program; WeChat Mini Program Development Framework; Springboot

目录

毕业设计

摘要

[1 绪论](#1 绪论)

[1.1 课题研究背景](#1.1 课题研究背景)

[1.2 国内外研究现状](#1.2 国内外研究现状)

1.3系统开发技术的特色

[1.4 微信开发者工具](#1.4 微信开发者工具)

[1.5 小程序框架以及目录结构介绍](#1.5 小程序框架以及目录结构介绍)

2瑜伽课约课小程序分析

2.1可行性分析

2.1.1技术可行性分析

2.1.2经济可行性分析

2.1.3操作可行性分析

2.2功能需求分析

2.3用例分析

3瑜伽课约课小程序总体设计

3.1系统功能模块设计

3.3数据库设计

[3.3.1 数据库E-R模型](#3.3.1 数据库E-R模型)

[3.3.2 数据库表设计](#3.3.2 数据库表设计)

4瑜伽课约课小程序实现

[4.1 前台微信端](#4.1 前台微信端)

[4.1.1 用户注册界面](#4.1.1 用户注册界面)

[4.1.2 用户登录界面](#4.1.2 用户登录界面)

[4.1.3 瑜伽课程界面](#4.1.3 瑜伽课程界面)

4.1.4瑜伽教练界面

[4.1.5 我的界面](#4.1.5 我的界面)

4.2管理员端

[4.2.1 系统用户登陆管理界面](#4.2.1 系统用户登陆管理界面)

[4.2.2 系统管理界面](#4.2.2 系统管理界面)

4.2.3瑜伽课程管理界面

[4.2.4 课程预约管理界面](#4.2.4 课程预约管理界面)

[4.2.5 通知公告管理界面](#4.2.5 通知公告管理界面)

[4.2.6 管理员前端我的管理界面](#4.2.6 管理员前端我的管理界面)

[4.2.7 教练用户我的管理界面](#4.2.7 教练用户我的管理界面)

5瑜伽课约课小程序测试

5.1系统测试

5.2测试结果

总结与展望

参考文献

致谢
1 绪论

1.1 课题研究背景

瑜伽课约课小程序课题,其研究背景源于多方面因素的融合与推动。首先,随着社会健康意识的日益提升,人们开始更加注重身体锻炼和精神层面的修养。瑜伽作为一种独特的身心锻炼方式,其受欢迎程度不断攀升,越来越多的人希望通过瑜伽学习来塑造健康体态、缓解生活压力并提升个人气质。然而,传统的线下瑜伽教学方式受限于时间、地点和教学资源,难以充分满足广大学习者的需求。

与此同时,数字化教育和移动互联网的快速发展为瑜伽教学提供了新的可能性。通过在线平台,瑜伽教学能够打破时间和空间的限制,让学习者随时随地获取专业的教学资源,实现个性化的学习体验。小程序作为一种便捷、轻量级的应用形态,特别适合用于瑜伽教学平台的开发,能够为用户提供流畅、高效的学习路径。

在技术开发层面,SpringBoot框架的广泛应用和优势也为瑜伽教学平台小程序的设计与实现提供了有力支持。SpringBoot通过简化Spring应用的开发流程,降低了技术实现的难度和成本,使得开发者能够更加专注于业务逻辑的实现,提高开发效率和质量。

综上所述,瑜伽课约课小程序课题,是在社会健康意识提升、数字化教育兴起以及SpringBoot框架广泛应用等多重背景下应运而生的。这一课题的研究不仅有助于推动瑜伽教学的数字化转型和创新发展,还能够为广大瑜伽爱好者提供更加便捷、高效的学习体验,具有重要的现实意义和应用价值。

1.2 国内外研究现状

国内研究现状:

近年来,随着人们对健康生活方式的追求,瑜伽在国内逐渐普及。为了满足广大瑜伽爱好者的需求,国内已经涌现出众多瑜伽课约课小程序。这些小程序不仅提供了丰富的瑜伽教学资源,还通过智能推荐、互动学习等功能,为用户带来了全新的学习体验。

在技术实现上,国内研究者主要利用SpringBoot框架进行小程序的开发。SpringBoot以其简洁、快速和易于扩展的特性,成为了开发瑜伽教学小程序的理想选择。同时,结合前端技术如Vue.js、React等,以及后端数据库技术如MySQL、MongoDB等,实现了瑜伽教学资源的快速部署和高效管理。

在功能设计方面,国内瑜伽教学小程序注重用户体验和学习效果的提升。通过智能推荐算法,为用户推荐合适的瑜伽课程;通过互动学习机制,如在线问答、社区交流等,增强了用户的学习动力和参与度。

国外研究现状:

在国外,瑜伽课约课小程序同样受到了广泛关注。许多国际知名的在线教育平台和科技公司都在积极探索和应用这一技术。这些平台通常拥有更为成熟的技术架构和更为丰富的教学资源,为用户提供了更为优质的在线学习体验。

在技术实现上,国外研究者同样重视SpringBoot框架的应用与优化。他们通过引入微服务架构、容器化技术等手段,进一步提升瑜伽教学小程序的性能和可扩展性。同时,他们还关注于数据安全和隐私保护等问题,确保用户信息的安全性和隐私性。

在功能设计方面,国外瑜伽教学小程序同样注重用户体验和学习效果的提升。通过引入虚拟现实(VR)、增强现实(AR)等先进技术,为用户提供更为沉浸式的学习体验;

综上所述,瑜伽课约课小程序的研究与应用在国内外均呈现出蓬勃发展的态势。然而,仍有许多问题和挑战需要我们不断探索和研究,以推动该领域的持续发展和进步。

1.3系统开发技术的特色

(1)系统采用前后端分离的开发模式,使得前端和后端可以独立开发和维护,提高了开发效率和系统的可维护性。

(2)系统采用微服务架构,将系统拆分成多个独立的服务,每个服务可以独立部署和扩展,提高了系统的灵活性和可扩展性。

(3)系统采用 Docker 容器化部署技术,使得系统可以快速部署和迁移,提高了系统的可靠性和可移植性。

(4)系统采用自动化测试技术,包括单元测试、接口测试和性能测试等,提高了系统的稳定性和可靠性。

(5)系统采用安全保障技术,包括用户认证、授权、数据加密等,保障了系统的安全性和用户的隐私。

这些技术特色使得瑜伽课约课小程序具有高效、稳定、可靠、安全等优点,能够满足用户的需求和提高用户的体验。

1.4 微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,我们将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,我们可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

1.5 小程序框架以及目录结构介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

2瑜伽课约课小程序分析

瑜伽课约课小程序可在微信端实现登录注册、首页、瑜伽课程、瑜伽教练、我的(基本信息、收藏、课程预约、课程取消、教练预约、取消预约)等功能,相对于传统运动管理方式,瑜伽课约课小程序提高了效率和便利性。在后台可对系统用户、瑜伽课程、课程预约、课程取消、瑜伽教练、教练预约、取消预约、系统管理、通知公告管理,另外系统还设有瑜伽教练,在前台可对用户实现瑜伽教练、教练预约、取消预约、基本信息和收藏等功能、管理员亦可在前端我的实现普通用户、教练用户、瑜伽课程、课程预约、课程取消、瑜伽教练、教练预约、取消预约和基本信息、收等功能,针对用户对运动管理的需求,充分了解用户的需求,更有针对性的服务用户。

2.1可行性分析

2.1.1技术可行性分析

瑜伽课约课小程序存储所使用的mysql数据库以及开发中所使用的IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用Springboot框架进行开发,使系统的可扩展性和维护性更佳,减少java配置代码,简化编程代码,目前Springboot框架也是很多企业选择的框架之一。

2.1.2经济可行性分析

在开发瑜伽课约课小程序中所使用的开发软件像IDEA开发工具、Tomcat8.0服务器、MySQL5.7数据库、Photoshop图片处理软件等,这些都是开源免费的,并且瑜伽课约课小程序是自己设计并编码实现的,数据库是使用流行mysql进行数据的存储,开源的mysql等技术的使用,减少系统开发费用。

2.1.3操作可行性分析

在日常生活中,随着小程序的快速推广和使用,越来越多人掌握小程序的使用方法,瑜伽课约课小程序在这种条件背景下是很容易被人们所接受和熟悉的,所以在操作上没任何问题。

2.2功能需求分析

瑜伽课约课小程序中的web后台管理端采用了IntelliJ IDEA 2019.3.4 开发工具,配合了java开发语言中Springboot开发框架以及tomcat8.0服务器、jdk1.8,微信端采用了微信开发者工具稳定版1.05.2111300,页面使用wxss和wxml进行布局,微信端和web后台管理端采用json接口通信。

  1. 普通用户功能:

登录注册: 提供用户注册和登录功能,确保用户身份安全。

首页: 展示平台的主要功能入口、最新的通知公告和瑜伽资讯、瑜伽教练推荐,引导用户浏览运动管理服务。

瑜伽课程:用户可以查看瑜伽课程列表,包括课程名称、价格、节数、内容等详细信息。对感兴趣的课程进行收藏,方便日后快速找到。并且用户可以直接预约合适的课程,查看预约时间和地点。

瑜伽教练:用户可以浏览瑜伽教练的详情列表,了解教练的姓名、从业时间、简介等信息。也可以根据喜好收藏特定的教练,方便未来查找。并且可以直接预约喜欢的教练,进行私教课程。

我的

基本信息:用户可以修改自己的基本资料信息,如姓名、联系方式等。

课程预约:用户可以查看已预约的课程列表,包括课程名称、价格、预约时间等。用户可以进行课程支付,或在必要时取消预约。同时,用户可以通过多种条件搜索课程预约信息,如用户姓名、课程名称、审核状态、支付状态等。

课程取消:用户可以在此功能中查看已取消的课程详情,并进行课程取消申请,填写取消原因。取消申请将处于待审核状态。

教练预约:用户可以查看已预约的教练信息,进行预约或取消操作。预约请求将等待教练的审核和回复。

取消预约:用户可以查看已取消预约的列表,包括取消原因和审核状态。

收藏:用户可以查看自己收藏的课程和教练信息,并随时删除不再需要的收藏内容。

2.教练用户功能:

基本信息:教练用户可以在前台方便地管理自己的资料信息。他们不仅可以查看自己的详细资料,包括姓名、从业时间、教练简介等,还可以随时修改和更新这些信息,确保其准确性和最新性。此外,教练用户还可以通过搜索功能,快速找到其他教练的信息,以便进行交流和合作。

瑜伽教练:在预约管理方面,教练用户可以轻松查看所有瑜伽教练的列表详情,包括他们的姓名、擅长领域、课程时间等。同时,教练用户可以查看自己的课程预约详情,包括预约时间、用户姓名、课程地点等信息。通过搜索功能,教练用户还可以根据用户姓名、教练姓名和审核状态来筛选和查找预约信息。对于用户的课程预约请求,教练用户可以进行审核,并根据实际情况进行回复,如确认预约、调整时间或拒绝请求。

教练预约:教练用户在前台系统中,可以方便地查看瑜伽教练的列表详情,包括教练的姓名、资质、可预约时间段等信息。同时,教练能够查阅自己的课程预约详情,了解哪些时间段已被用户预约,哪些时间仍然空余。系统还应提供根据用户姓名、教练姓名和审核状态进行搜索的功能,以便教练快速定位到特定的预约信息。对于用户的预约请求,教练可以进行审核,并给出是否接受的回复。

取消预约:教练用户在前台系统中,可以查阅取消预约的列表,查看用户的取消预约详情,包括取消的用户姓名、取消的时间以及取消的原因。这些信息对于教练了解用户的行为习惯、优化课程安排具有重要价值。同时,系统应允许教练对取消预约进行审核,并对取消原因进行回复,以维护良好的用户关系。

收藏:教练用户在前台系统中,可以对自己的课程、用户评价等信息进行收藏,以便日后快速访问和参考。收藏功能可以帮助教练更好地整理和管理自己的工作内容,提高工作效率。同时,教练还可以通过系统查看其他教练的收藏列表,了解哪些内容受到了同行的关注,从而为自己的工作提供借鉴和灵感。

3.管理员前台功能:

基本信息:管理员可以修改自己的基本资料信息等。

普通用户:管理员可以查看和编辑普通用户的信息,包括用户资料、登录记录等。同时,管理员还可以对用户进行分组管理,以便于后续的权限分配和数据分析。

教练用户:管理员可以查看教练用户列表,进行信息的查询、重置和添加。通过教练姓名进行搜索,可以快速定位到特定教练的信息。此外,管理员还可以对教练的权限进行设置,以确保教练在系统中只能执行其职责范围内的操作。

瑜伽课程:在瑜伽课程方面,管理员可以查看所有课程的预约情况,包括用户姓名、课程名称、审核状态和支付状态等信息。管理员还可以进行课程预约的添加和取消操作,以及根据用户需求进行搜索和筛选。

课程取消:对于已预约但随后取消的课程,管理员可以查看详细的取消列表,包括用户姓名、课程名称、取消时间和原因等信息。管理员可以对取消的课程进行审核,并给出相应的回复。

教练预约与取消:管理员可以处理瑜伽教练的预约和取消请求,确保教练的工作安排合理有序。同时,管理员还可以查看教练的预约和取消记录,以便于后续的数据分析和优化。

收藏:管理员可以收藏重要的课程、用户或教练信息,以便于快速访问和管理。收藏功能可以帮助管理员提高工作效率,更好地满足用户需求。

管理员后台功能:

后台首页:管理员可以全面管理课程预约统计表与教练预约统计表,监控用户预约课程的费用情况,以及预约教练的占比,从而掌握整体运营状况。

系统用户:管理员能够管理所有系统用户,包括普通用户、教练用户等,进行增删改查操作,并查看详情。

瑜伽课程管理:管理员可以管理课程列表,添加新课程,查看详情,查询课程,重置搜索条件,删除课程,并通过课程名称进行搜索。这为管理员提供了灵活的课程管理手段。

课程预约管理:管理员可以查看预约列表,查看预约详情,处理用户取消课程的请求,处理支付课程费用等操作,查询预约记录,重置搜索条件,删除预约记录,并通过用户姓名、课程名称、审核状态、支付状态进行搜索,确保课程预约的顺利进行。

课程取消管理:管理员还能够管理课程取消记录,查看取消列表,查看详情,查询取消记录,重置搜索条件,删除取消记录,并通过用户姓名、课程名称、审核状态进行搜索,以监控课程的取消情况。

瑜伽教练管理:管理员可以管理教练列表,添加新教练,查看教练详情,查询教练信息,重置搜索条件,删除教练记录,并通过教练姓名进行搜索,确保教练信息的准确性。

教练预约管理:管理员可以查看预约列表,查看预约详情,处理取消预约的请求,查询预约记录,重置搜索条件,删除预约记录,并通过用户姓名、教练姓名和审核状态进行搜索,以满足对教练预约的全面管理需求。

取消预约管理:管理员可快速浏览所有预约列表,并通过用户姓名、教练姓名或审核状态搜索特定预约。查看预约详情、重置或删除预约,确保数据准确高效。

系统管理:管理员负责轮播图的全流程管理,包括新增、编辑、删除和查看。确保轮播图内容新鲜、准确,提升用户体验。

通知公告管理:管理员可发布、编辑和删除通知公告,随时查看公告详情。确保用户及时获取最新、最准确的信息。

2.3用例分析

瑜伽课约课小程序的完整UML用例图分别是图2-1,图2-2。在参与者上包括普通用户、管理员。

普通用户角色的用例包括登录注册、首页、瑜伽课程、瑜伽教练、通知公告、我的(基本信息、收藏、课程预约、课程取消、教练预约、取消预约)。

图2-1瑜伽课约课小程序普通用户角色用例图

管理员角色的用例包括前台和后台首页、我的、基本信息、教练用户、瑜伽课程、课程预约、课程取消、瑜伽教练、教练预约、取消预约、收藏。后台包括:后台首页、系统用户、瑜伽课程管理、课程预约管理、课程取消管理、瑜伽教练管理、教练预约管理、取消预约管理、系统管理、通知公告管理。

图2-2瑜伽课约课小程序管理员角色用例图

教练用户角色的用例包括登录注册、我的、基本信息、收藏、瑜伽教练、教练预约、取消预约。

图2-3瑜伽课约课小程序教练用户角色用例图
3瑜伽课约课小程序总体设计

在上一章节中分析了瑜伽课约课小程序的功能性需求,并且根据需求分析了瑜伽课约课小程序中的用例。那么接下来就要开始对瑜伽课约课小程序架构、主要功能和数据库开始进行设计。

3.1系统功能模块设计

通过对瑜伽课约课小程序的功能需求分析以及用例分析,得出了瑜伽课约课小程序的功能模块图如图3-1所示。

图3-1瑜伽课约课小程序功能模块图

3.3数据库设计

3.3.1 数据库E-R模型

下面是整个瑜伽课约课小程序的数据库表的E-R实体关系图,如图3-2所示:

图3-2瑜伽课约课小程序E-R实体关系图

3.3.2 数据库表设计

通过上一小节中瑜伽课约课小程序中总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 | 用户编号: |

表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 | 更新时间: |

表cancel_reservation (取消预约)

|----|-------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | cancel_reservation_id | int | 10 | 0 | N | Y | | 取消预约ID |
| 2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 4 | coach_users | int | 10 | 0 | Y | N | 0 | 教练用户 |
| 5 | coach_name | varchar | 64 | 0 | Y | N | | 教练姓名 |
| 6 | cancel_time | datetime | 19 | 0 | Y | N | | 取消时间 |
| 7 | reason_for_cancellation | text | 65535 | 0 | Y | N | | 取消原因 |
| 8 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 9 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表coach_appointment (教练预约)

|----|----------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | coach_appointment_id | int | 10 | 0 | N | Y | | 教练预约ID |
| 2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 4 | coach_users | int | 10 | 0 | Y | N | 0 | 教练用户 |
| 5 | coach_name | varchar | 64 | 0 | Y | N | | 教练姓名 |
| 6 | appointment_time | datetime | 19 | 0 | Y | N | | 预约时间 |
| 7 | remarks | text | 65535 | 0 | Y | N | | 备注信息 |
| 8 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 9 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表coach_users (教练用户)

|----|---------------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | coach_users_id | int | 10 | 0 | N | Y | | 教练用户ID |
| 2 | coach_name | varchar | 64 | 0 | Y | N | | 教练姓名 |
| 3 | coach_gender | varchar | 64 | 0 | Y | N | | 教练性别 |
| 4 | contact_information | 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 | 更新时间 |

表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: |

表course_cancellation (课程取消)

|----|-------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | course_cancellation_id | int | 10 | 0 | N | Y | | 课程取消ID |
| 2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 4 | course_name | varchar | 64 | 0 | Y | N | | 课程名称 |
| 5 | cancel_time | datetime | 19 | 0 | Y | N | | 取消时间 |
| 6 | reason_for_cancellation | text | 65535 | 0 | Y | N | | 取消原因 |
| 7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 8 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |

表course_reservation (课程预约)

|----|-----------------------|-----------|----|-----|------|----|-------------------|-----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | course_reservation_id | int | 10 | 0 | N | Y | | 课程预约ID |
| 2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 4 | course_name | varchar | 64 | 0 | Y | N | | 课程名称 |
| 5 | course_prices | varchar | 64 | 0 | Y | N | | 课程价格 |
| 6 | appointment_time | datetime | 19 | 0 | Y | N | | 预约时间 |
| 7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 8 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 9 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 10 | pay_type | varchar | 16 | 0 | Y | N | | 支付类型: 微信、支付宝、网银 |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | 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 | 更新时间: |

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

表regular_users (普通用户)

|----|---------------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | regular_users_id | int | 10 | 0 | N | Y | | 普通用户ID |
| 2 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 3 | user_gender | varchar | 64 | 0 | Y | N | | 用户性别 |
| 4 | contact_information | 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 | 更新时间 |

表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 | 更新时间: |

表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 | 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 | 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 | 创建时间: |
| 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 | 更新时间: |

表yoga_course (瑜伽课程)

|----|---------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | yoga_course_id | int | 10 | 0 | N | Y | | 瑜伽课程ID |
| 2 | course_name | varchar | 64 | 0 | Y | N | | 课程名称 |
| 3 | course_poster | varchar | 255 | 0 | Y | N | | 课程海报 |
| 4 | course_prices | int | 10 | 0 | Y | N | 0 | 课程价格 |
| 5 | number_of_course_sessions | int | 10 | 0 | Y | N | 0 | 课程节数 |
| 6 | course_content | text | 65535 | 0 | Y | N | | 课程内容 |
| 7 | hits | 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 | 更新时间 |

表yoga_instructor (瑜伽教练)

|----|--------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | yoga_instructor_id | int | 10 | 0 | N | Y | | 瑜伽教练ID |
| 2 | coach_users | int | 10 | 0 | Y | N | 0 | 教练用户 |
| 3 | coach_name | varchar | 64 | 0 | Y | N | | 教练姓名 |
| 4 | coach_photo | varchar | 255 | 0 | Y | N | | 教练照片 |
| 5 | employment_time | varchar | 64 | 0 | Y | N | | 从业时间 |
| 6 | coach_introduction | text | 65535 | 0 | Y | N | | 教练简介 |
| 7 | hits | 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 | 更新时间 |

4瑜伽课约课小程序实现

瑜伽课约课小程序划分了微信小程序用户端和web后台管理员端,可在微信端实现登录注册、首页、瑜伽课程、瑜伽教练、我的(基本信息、收藏、课程预约、课程取消、教练预约、取消预约)等功能,相对于传统运动管理方式,瑜伽课约课小程序提高了效率和便利性。在后台可对系统用户、瑜伽课程、课程预约、课程取消、瑜伽教练、教练预约、取消预约、系统管理、通知公告管理,另外系统还设有瑜伽教练,在前台可对用户实现瑜伽教练、教练预约、取消预约、基本信息和收藏等功能、管理员亦可在前端我的实现普通用户、教练用户、瑜伽课程、课程预约、课程取消、瑜伽教练、教练预约、取消预约和基本信息、收等交流的平台。

4.1 前台微信端

4.1.1 用户注册界面

不是瑜伽课约课小程序的用户可以通过微信小程序在线进行注册,填写上自己的账号、密码、重复密码、昵称、邮箱登信息后点击"提交"按钮后将会验证是否有非空数据,再验证密码和重复密码是否一样,最后验证是否账号重复,都验证没问题后即可注册成功。注册实现了用户注册和发布者注册两部分,其用户注册界面展示如下图4-1所示。

图4-1用户注册界面图

注册关键代码如下:

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;

}

4.1.2 用户登录界面

微信小程序上注册后的用户可以通过自己的用户名和密码进行登录,在用户填写好自己的用户名和密码信息并点击"登录"按钮后,将会先验证是否有非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息,用户登录界面如下图4-2所示。

图4-2用户登录界面图

用户登录关键代码如下:

/**

* 登录

* @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.select(map, new HashMap<>()).getResultList();

}

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

map.put("email", email);

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

}

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

map.put("phone", phone);

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

}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.select(groupMap, new HashMap<>()).getResultList();

if (groupList.size()<1){

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

}

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

//查询用户审核状态

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

String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

String res = String.valueOf(service.runCountSql(sql).getSingleResult());

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());

tokenService.save(accessToken);

// 返回用户信息

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, "账号或密码不正确");

}

}

输入有效的用户名和密码信息,点击"登录"按钮,自动跳转到"首页"页面,首页界面如下图4-3所示。

图4-3首页界面图

4.1.3 瑜伽课程界面

点击"瑜伽课程",用户可以查看瑜伽课程列表的详情,包括课程名称、价格、节数、内容等信息,并对合适的课程进行收藏和预约等操作。界面如下图4-4所示。

图4-4瑜伽课程详情界面图

4.1.4瑜伽教练界面

用户点击"瑜伽教练",可以浏览瑜伽教练的详情列表,了解教练姓名、从业时间、简介等信息,并对喜欢的教练进行收藏和预约等操作。如下图所示。

图4-5瑜伽教练界面图

4.1.5 我的界面

在"我的"功能中,用户可以方便地修改个人基本资料信息,管理课程预约和取消,查看教练预约详情并进行取消操作,以及管理个人的收藏内容,提供了全面的个人信息和预约管理功能。界面如下图4-6所示。

图4-6我的界面图

4.2管理员端

4.2.1 系统用户登陆管理界面

瑜伽课约课小程序的管理员是可以通过自己的账户名和密码进行系统前台和后台登录的。前、后台登录界面如下图所示。

图4-6管理员登陆前台界面图

后台登录界面如下图所示。

图4-7管理员登陆后台界面图

4.2.2 系统管理界面

管理员点击"系统管理"这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图所示。

图4-8系统管理界面图

4.2.3瑜伽课程管理界面

管理员可以对瑜伽课程进行列表显示、添加新课程、查看课程详情、查询、重置和删除操作,并可以通过课程名称进行搜索。界面如下图所示。

图4-9瑜伽课程管理界面图

4.2.4 课程预约管理界面

管理员可以管理课程预约信息,包括列表显示、查看详情、用户取消课程、支付课程费用等操作,进行查询、重置和删除,并可以通过用户姓名、课程名称、审核状态、支付状态进行搜索。课程预约管理界面如下图所示。

图4-10课程预约管理界面图

4.2.5 通知公告管理界面

管理员点击"通知公告管理"这个菜单,可以对系统中的通知公告进行管理,包括网站公告、关于我们、联系方式、网站介绍等操作。通知公告管理界面如下图所示。

图4-11通知公告管理界面图

4.2.6 管理员前端我的管理界面

管理员在前台端的管理详细详情包括查看和管理瑜伽课程、瑜伽教练信息,以及处理课程预约、取消预约等操作。管理员还可以查看用户的预约情况和管理系统用户的基本信息,提供了全面的课程和用户管理功能。界面如下图所示。

图4-12管理员前台端我的管理界面图

4.2.7 教练用户我的管理界面

教练用户在前台可以通过"我的"功能管理个人基本信息,查看和管理瑜伽教练列表,处理教练预约和取消预约的相关操作,以及管理个人收藏内容,提供了全面的教练用户信息管理和预约处理功能。界面如下图所示。

图4-13教练用户我的管理界面图

5瑜伽课约课小程序测试

瑜伽课约课小程序测试是为了检验软件是否达到设计要求,是否存在错误,通过测试的方法来检查瑜伽课约课小程序,以便发现瑜伽课约课小程序中的错误。测试工作是保证瑜伽课约课小程序质量的关键。

5.1系统测试

微信端上用户查看瑜伽课程功能测试:

表5-1微信端上用户查看瑜伽课程功能测试用例表

|--------------|-------------|------------|----------------------------------------------|----------------|------|
| 测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
| 查看瑜伽课程功能模块测试 | 瑜伽课程信息正常的显示 | 浏览瑜伽课程详情信息 | 在小程序端上选择一个瑜伽课程信息将会进入该瑜伽课程的详情界面,同时可以评论、收藏、点赞。 | 进入该瑜伽课程的详情信息界面 | 正确 |

微信端上评论功能测试:

表5-2微信端上评论功能测试用例表

|----------|-----------|--------|--------------------------------|----------|------|
| 测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
| 评论功能模块测试 | 评论信息正常的显示 | 浏览瑜伽视频 | 点击瑜伽课程底部"评论"按钮后点击填写评论内容点击提交即可。 | 评论内容提交成功 | 正确 |

web后台端上管理员发布瑜伽课程功能测试:

表5-3web后台端上管理员发布瑜伽课程功能测试用例表

|---------------|-----------|----------------|--------------------------------------------------|-----------|------|
| 测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
| 管理员发布瑜伽课程功能测试 | 添加瑜伽课程的情况 | 输入新瑜伽课程信息的基本信息 | 后台选择"瑜伽课程"菜单后,点击"瑜伽课程添加",点击添加,填写新瑜伽课程信息后点击"提交"按钮 | 新瑜伽课程发布成功 | 正确 |

5.2测试结果

通过编写了瑜伽课约课小程序的测试用例,已经检测完毕了5.1章节中的3大模块,它为瑜伽课约课小程序系统的后期推广运营提供了强力的技术支撑。
总结与展望

本次瑜伽课约课小程序的设计与实现,功能方面,通过功能模块图区分该程序的用户端与管理端各自的功能权限;数据库方面,数据库使用口碑较好的mysql进行数据的存储,开源的mysql等技术的使用,相对来说体积较小,服务稳定,减少系统开发成本费用,通过数据库表的E-R实体关系图建立了表单与表单之间的连接,区分不同的表单之间的关系,更好的完善数据库的内容;测试方面,通过测试用例检查瑜伽课约课小程序的设计缺陷和程序存在的错误,在系统测试阶段的过程中,出现了一些问题,例如,注册信息,没有规范用户在注册页面填写信息时输入两次密码,而导致后期登录错误,最后通过多次修改程序和测试解决了问题。最终经过不断的检测、修改,实现项目的稳定,达到了预期的设计效果。

系统整体的功能到达预期的效果,但页面的美化方面还是存在一些不足,例如:小程序中的图标过于简洁;wxss页面的渲染布局方面不够完善,人们在使用软件过程中,对某些功能不易找寻,针对此次项目产生的问题,日后将不断改进,使该项目更加完善。
参考文献

[1]Setiawan R A A ,Munawar S S ,Ishizaki R , et al. Optimizing biomass supply for cofiring at power plants to minimize environmental impact: A case of oil palm empty fruit bunches in West Java [J]. Fuel, 2024, 367 131359-.

[2]江国粹. 基于高阶思维能力培养的"MySQL数据库技术"课程教学改革研究 [J]. 安徽电子信息职业技术学院学报, 2024, 23 (01): 39-43.

[3]李彬艳. 邛崃市水沐瑜伽馆运营现状研究[C]// 国际班迪联合会(FIB),国际体能协会(ISCA),中国班迪协会(CBF). 2024年第二届国际体育科学大会论文集. 西安体育学院;, 2024: 9.

[4]Xiao Z ,Ali Y ,Xin W , et al. Sports Work Strategy of College Counselors Based on MySQL Database Big Data Analysis [J]. International Journal of Information Technology and Web Engineering (IJITWE), 2023, 18 (1): 1-14.

[5]袁子怡. 超鹿运动瑜伽业务竞争战略选择研究[D]. 兰州理工大学, 2023.

[6]陈蓓蕾,洪年松. 基于SpringBoot的数据库接口设计 [J]. 信息与电脑(理论版), 2023, 35 (16): 181-183.

[7]郭亚琼,王哲. 瑜伽运动对大学生全面素质的影响探讨 [J]. 当代体育科技, 2023, 13 (17): 186-189.

[8]时乃君. SC瑜伽馆营销策略研究[D]. 山东财经大学, 2023.

[9]王吉,杨辉. 西安市健身俱乐部健身瑜伽开展现状 [J]. 文体用品与科技, 2023, (09): 73-75.

[10]寇晓娜. 现阶段瑜伽健身场馆运营的现状及发展对策 [J]. 文体用品与科技, 2023, (01): 65-67.

[11]Yang Y . Design and Implementation of Student Information Management System Based on Springboot [J]. Advances in Computer, Signals and Systems, 2022, 6 (6):

[12]潘耀华. J瑜伽馆体验营销策略研究[D]. 东华大学, 2022.

[13]张静茹. 新乡市健身俱乐部瑜伽教学的现状与发展研究[D]. 河南师范大学, 2022.

[14]薛新兰. 北京市中小型瑜伽馆营销问题与对策研究[D]. 中央民族大学, 2022.

[15]刘淼. 悦享瑜伽馆营销策略研究[D]. 河北工业大学, 2021.

[16]中国瑜伽行业发展趋势研究报告[C]// 艾瑞咨询系列研究报告(2021年第10期). [出版者不详], 2021: 53.

[17]管鑫,冯晓辉. 滨城区健身俱乐部团操课程开展现状调查研究 [J]. 文体用品与科技, 2021, (16): 43-44.

[18]魏强. 枣庄万事千禧瑜伽有限公司营销策略研究[D]. 山东科技大学, 2020.

[19]江明,何绍平,龙建宇,等. 瑜伽馆约课系统的数据库设计与实现 [J]. 计算机时代, 2020, (08): 53-56.

[20]李涛,何绍平,龙建宇,等. 基于微信小程序的瑜伽馆约课系统设计 [J]. 电脑知识与技术, 2020, 16 (13): 88-90.

致谢

至此论文结束,感谢您的阅读。首先,我要感谢我的父母对我的支持与理解,在两年的本科学习生活中,倾其所能的爱护我,使我能够心无旁骛,全心全意的投入到学习中;不断鼓励我,让我能够拥有不断前进的动力。其次还要感谢我的导师,感谢在这段时间给予我有效的建议,以至于我的毕设有了整体的设计思路,尽管我在实习期间很忙,论文撰写总是停停改改,但是导师依然十分负责,时不时的询问我的任务进展情况,跟进我的论文进度。在老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识,和经验,这些知识和经验令我受益匪浅。

此外,还要感谢我的同学,热心的解答了我在程序上遇到的问题,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测,让我受益良多。在这两年的时间里,我学会了许多专业的知识,还有老师们的谆谆教诲和同学们的帮助使我不断进步,能够做得更好;我也会不断给自己充电,不断突破,成为更好的自己。

最后向所有关心我、帮助我的老师及同学们表示衷心的感谢!

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

相关推荐
用余生去守护19 分钟前
python报错系列(16)--pyinstaller ????????
开发语言·python
yuanbenshidiaos22 分钟前
c++---------数据类型
java·jvm·c++
数据小爬虫@24 分钟前
利用Python爬虫快速获取商品历史价格信息
开发语言·爬虫·python
向宇it26 分钟前
【从零开始入门unity游戏开发之——C#篇25】C#面向对象动态多态——virtual、override 和 base 关键字、抽象类和抽象方法
java·开发语言·unity·c#·游戏引擎
Lojarro40 分钟前
【Spring】Spring框架之-AOP
java·mysql·spring
莫名其妙小饼干43 分钟前
网上球鞋竞拍系统|Java|SSM|VUE| 前后端分离
java·开发语言·maven·mssql
是Dream呀43 分钟前
Python从0到100(七十八):神经网络--从0开始搭建全连接网络和CNN网络
网络·python·神经网络
菜狗woc1 小时前
opencv-python的简单练习
人工智能·python·opencv
十年一梦实验室1 小时前
【C++】sophus : sim_details.hpp 实现了矩阵函数 W、其导数,以及其逆 (十七)
开发语言·c++·线性代数·矩阵
isolusion1 小时前
Springboot的创建方式
java·spring boot·后端