springboot游泳馆预约管理系统

  

本项目设计与开发了一个游泳馆预约管理系统,采用Spring Boot框架和Java语言,并使用MySQL数据库进行数据管理。系统旨在提升游泳馆的管理效率和用户体验,支持会员用户、管理员用户及员工用户的多样化需求。会员用户可以进行注册登录、浏览课程和套餐信息、在线充值及预约场馆;管理员用户负责系统用户管理、财务管理及资源维护;员工用户则专注于后台操作和预约调度。

系统通过Spring Boot实现了模块化设计,增强了代码的可维护性和扩展性。Java语言的应用确保了系统的高效稳定运行,而MySQL数据库提供了可靠的数据存储和查询功能。系统采用了前后端分离架构,前端通过RESTful API与后端进行数据交互,提升了响应速度和用户体验。在安全性方面,系统集成了多种安全机制,包括双因素认证和密码加密存储,保障用户数据的安全。此外,系统的灵活性使其能够根据实际需求调整功能模块,适应不同规模游泳馆的需求。整体而言,该系统不仅优化了游泳馆的运营流程,还为用户提供了便捷的服务体验。

关键词:游泳馆预约管理系统;Spring Boot框架;Java语言;MySQL数据库;

Abstract

This project designs and develops a swimming pool reservation management system, using the Spring Boot framework and Java language, and utilizing MySQL database for data management. The system aims to improve the management efficiency and user experience of swimming pools, supporting the diverse needs of member users, administrator users, and employee users. Member users can register and log in, browse course and package information, recharge online, and book venues; Administrator users are responsible for system user management, financial management, and resource maintenance; Employee users focus on backend operations and appointment scheduling.

The system has implemented modular design through Spring Boot, enhancing the maintainability and extensibility of the code. The application of Java language ensures the efficient and stable operation of the system, while MySQL database provides reliable data storage and query functions. The system adopts a front-end and back-end separation architecture, where the front-end interacts with the back-end through RESTful APIs to improve response speed and user experience. In terms of security, the system integrates multiple security mechanisms, including two factor authentication and password encryption storage, to ensure the security of user data. In addition, the flexibility of the system enables it to adjust functional modules according to actual needs and adapt to the needs of swimming pools of different sizes. Overall, the system not only optimizes the operation process of the swimming pool, but also provides users with a convenient service experience.

Keywords: swimming pool reservation management system; Spring Boot framework; Java language; MySQL database;

目  录

1 绪 论

1.1 研究背景

1.2 研究意义

1.3 研究国内现状

1.4 论文结构与章节安排

2 相关技术介绍

2.1 Java语言

2.2 MySQL

2.3 Spring Boot框架

3 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.1.4 市场可行性

3.2 功能需求分析

3.3 系统非功能性需求分析

3.1 系统流程分析

3.1.1 程序操作流程

3.1.2 信息添加流程

3.1.3 信息删除流程

4 系统设计

4.1 总体设计

4.1.1 架构设计

4.1.2 功能模块设计

4.2 数据库设计

4.2.1 概念结构设计

4.2.2 逻辑结构设计

5 系统实现

5.1 会员用户功能实现

5.1.1 用户注册界面

5.1.2 用户登录界面

5.1.3 首页界面

5.1.4 在线充值界面

5.1.5 课程信息界面

5.1.6 个人中心界面

5.2 员工用户功能实现

5.2.1 在线充值管理界面

5.2.2 个人中心界面

5.3 后台管理员功能实现

5.3.1 系统用户界面

5.3.2 课程类型管理界面

5.3.3 系统管理界面

5.3.4 通知公告管理界面

6  系统测试

6.1  系统测试目的

6.2  功能测试用例

6.3  测试结果

7总结

参考文献

致  谢

 

1    

1.1研究背景

随着健康意识的提升和运动需求的增加,游泳作为一种受欢迎的健身方式吸引了众多参与者。然而,传统游泳馆管理依赖人工操作,效率低下且易出错,难以满足用户需求。特别是在预约课程、购买套餐及场馆使用方面,用户面临不便和信息不透明问题,影响体验。为应对这些挑战,开发高效便捷的游泳馆预约管理系统变得必要。采用Spring Boot框架和Java语言,并结合MySQL数据库,系统实现模块化设计和高效数据管理。这种数字化解决方案不仅提高运营效率,还改善用户体验。系统支持会员用户的注册与登录、课程和套餐信息浏览与购买、在线充值及预约管理;管理员用户负责系统用户管理、财务管理和资源维护;员工用户专注于后台操作与预约调度。

具体来说,会员用户可以方便地查看课程安排、教练简介并进行在线预约和充值。管理员用户全面管理用户信息、处理财务状况和维护系统资源。员工用户通过后台操作优化场馆资源利用,确保每个预约得到及时响应。系统采用前后端分离架构,提升响应速度和用户体验,多种安全机制保障用户数据安全。最终,该系统解决了传统管理方式中的低效问题,提供了完整的数字化解决方案,提升了管理水平和服务质量。

1.2研究意义

在当今社会,随着人们健康意识的不断提升,游泳馆作为重要的健身和休闲场所,其使用频率和客流量日益增加。然而,传统的游泳馆管理方式往往存在排队等候时间长、资源分配不均、用户体验差等问题。因此,开发游泳馆预约管理系统旨在通过信息化手段,实现游泳馆资源的有效管理和优化分配。该系统能够为用户提供便捷的预约服务,减少现场排队等候时间,提升用户体验;同时,对于游泳馆管理者而言,该系统有助于实时监控场馆使用情况,合理安排工作人员,提高运营效率。

从实际应用的角度来看,游泳馆预约管理系统的开发具有重要的现实意义。一方面,该系统能够显著提升游泳馆的服务质量和用户体验,满足广大游泳爱好者的需求,进一步推动全民健身运动的普及和发展。另一方面,通过智能化的管理,该系统有助于游泳馆实现资源的最大化利用,降低运营成本,提高经济效益。此外,该系统的开发还具有一定的示范效应,能够推动其他公共场所和设施向智能化、信息化方向发展,为构建智慧城市、提升城市管理水平贡献力量。因此,开发游泳馆预约管理系统不仅具有迫切的现实需求,更具有重要的社会价值和长远意义。

1.3研究国内现状

在国内,随着游泳运动的普及和人们健康意识的增强,游泳馆预约管理系统逐渐受到重视。近年来,国内学者和科研机构对游泳馆预约管理系统进行了深入研究,并取得了一系列成果。这些研究主要集中在系统的功能设计、算法优化、用户体验提升等方面。例如,一些研究通过引入先进的算法和技术,实现了游泳馆预约的自动化和智能化,提高了预约的准确性和效率。同时,国内的一些企业也积极投入到游泳馆预约管理系统的开发中,推出了一系列具有自主知识产权的产品,为游泳馆的管理和运营提供了有力支持。

在国外,游泳馆预约管理系统的研究和发展也呈现出蓬勃发展的态势。与国内相比,国外的研究更加注重系统的创新性和实用性。一些发达国家已经建立了相对完善的游泳馆预约管理系统,并广泛应用于各类游泳馆和健身中心。这些系统不仅具备基本的预约功能,还融入了数据分析、健康管理、个性化推荐等先进技术,为用户提供更加全面和个性化的服务。此外,国外的研究还注重系统的安全性和稳定性,通过引入先进的加密技术和安全防护措施,确保用户数据的安全和隐私。

国内外对游泳馆预约管理系统的研究均展现出显著进步,但仍面临一些挑战。在功能设计层面,系统已能实现高效的预约管理,但在用户体验优化方面仍有待加强,特别是针对用户个性化需求的满足和界面友好性的提升。安全性与稳定性方面,虽然国外研究已有一定成果,但国内研究仍需进一步深化,特别是在用户数据保护及隐私安全机制上。此外,系统的推广与应用亦面临挑战,如何提升在游泳馆和健身中心的普及率和覆盖率,是当前研究的关键议题。

综上所述,游泳馆预约管理系统的研究和发展具有广阔的前景和重要的意义。未来的研究应更加注重系统的创新性、实用性和安全性,推动系统在游泳馆和健身中心中的广泛应用和普及。

1.4论文结构与章节安排

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

第一章:引言,主要介绍游泳馆预约管理系统领域研究的背景和意义,概述研究的现状。

第二章:关键技术,主要探讨和说明实现游泳馆预约管理系统的关键技术。

第三章:系统分析,主要从游泳馆预约管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。

第四章:系统设计,主要对游泳馆预约管理系统功能模块、数据库进行功能设计。

第五章:系统实现,主要介绍了游泳馆预约管理系统各个用户的功能、系统界面的实现。

第六章:系统测试,主要对游泳馆预约管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。

第七章:总结。主要对系统的开发设计工作进行总结。

2  相关技术介绍

2.1Java语言

在本研究中,Java语言是构建游泳馆预约管理系统的核心技术之一。主要使用Java语言开发后端系统,采用Spring Boot框架来实现业务逻辑和数据交互。Spring Boot简化了配置和开发过程,提供了一套开箱即用的解决方案,能够专注于业务功能的实现。同时,Java的多线程和并发处理能力,使平台能够高效处理大量用户请求和并发交易,保证系统的稳定性和响应速度。此外,Java语言的跨平台特性和丰富的类库支持,使得系统具有良好的可移植性和可扩展性,能够适应不同的操作环境和业务需求。总之,Java语言在本系统中的应用,为实现一个高效、安全、稳定的游泳馆预约管理系统提供了坚实的技术基础。

2.2MySQL

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

2.3Spring Boot框架

在本研究中,Spring Boot框架被用于开发游泳馆预约管理系统的后端系统。Spring Boot是基于Spring框架的一款快速开发工具,提供了简化的配置和自动化的设置,极大地提高了开发效率。它通过"约定优于配置"的理念,减少了人员的配置工作,使得项目能够快速启动和运行。Spring Boot内置了嵌入式服务器(如Tomcat),无需进行复杂的服务器配置即可运行项目。此外,Spring Boot还支持微服务架构,方便系统的模块化开发和部署,提高了系统的可扩展性和维护性。通过Spring Boot能够快速构建出一个高效、稳定且具备良好扩展性的后端系统,满足游泳馆预约管理系统的复杂需求。

3  系统分析

3.1可行性分析

3.1.1技术可行性

Java是一种跨平台的编程语言,具有丰富的类库和良好的兼容性,广泛应用于各种场景。Java语言具有较高的性能和稳定性,可以满足系统高并发、大数据处理的需求。此外,Spring Boot是一个非常流行的Java开发框架,Spring Boot不仅能够帮助开发者快速搭建应用的基本框架,还提供了丰富的扩展点,使得开发者可以灵活地定制和优化应用程序,满足不同场景下的需求。因此,从技术层面来说是可行的。

3.1.2经济可行性

Spring Boot的自动配置功能可以根据应用程序的依赖和环境来进行自动配置,减少了大量的手动配置工作,可以降低开发成本,Spring Boot的开发效率和生产力非常高,它提供了一系列快速构建和开发的功能。这也有助于减少开发成本;Spring Boot的代码质量和可维护性较高,可以降低后期维护成本。因此,从经济层面来说是可行的。

3.1.3操作可行性

系统采用B/S架构,用户只需要通过浏览器即可访问系统,无需安装额外的软件。同时,系统的操作界面简洁明了,易于理解和使用,用户无需具备专业的计算机知识即可进行操作。因此,从操作层面来说是可行的。

3.1.4市场可行性

随着健康意识的提高和生活节奏的加快,越来越多的人选择游泳作为保持身心健康的方式。这导致了游泳馆数量的增长和对高效管理系统的需求。这为游泳管理系统提供了广阔的市场空间。因此,从市场需求角度层面分析是可行的。

3.2功能需求分析

本系统分为会员用户、员工用户和管理员这三大角色。

会员用户具体功能说明如下所示。

  1. 注册与登录:提供便捷且安全的注册和登录方式,支持多种验证手段(如短信验证码、邮箱验证),确保用户账户的安全性和隐私保护。
  2. 首页:展示游泳馆的最新动态、热门课程和服务推荐,帮助用户快速了解当前最受欢迎的内容。
  3. 公告通知:发布重要的系统更新、活动信息和维护通知,确保用户及时获取关键信息并做出相应安排。
  4. 新闻资讯:定期更新有关游泳健康、健身技巧以及行业动态的文章,丰富用户的知识面,增强平台的互动性。
  5. 在线充值:支持多种支付方式(如微信支付、支付宝、银行卡等),让用户能够方便快捷地为账户充值,享受更多服务。
  6. 到账信息:实时显示用户的充值记录和交易详情,提供详细的财务透明度,确保每笔资金流动都清晰可查。
  7. 课程信息:详细介绍各类游泳课程的时间表、教练简介和课程内容,帮助用户根据个人需求选择合适的课程。
  8. 套餐信息:提供多样化的服务套餐供用户选择,包括不同类型的游泳课程、场馆使用时间等,满足不同层次的需求。
  9. 场馆信息:展示各游泳馆的具体位置、设施情况和开放时间,帮助用户选择最适合自己的场馆进行预约。
  10. 修改密码:允许用户随时更改登录密码,并通过多重验证机制(如旧密码验证、手机验证码)提升账户安全性。
  11. 我的账户:集中管理个人信息、订单状态、消费记录等,提供一站式的账户管理体验,方便用户随时查看和调整。
  12. 个人中心:个性化设置界面,允许用户上传头像、编辑个人资料,并查看历史记录和收藏内容,增强用户体验。
  13. 个人首页:展示用户的专属信息和推荐内容,基于用户的历史行为和偏好,提供个性化的服务建议和活动推送。
  14. 课程订单:记录并管理用户的课程购买情况,提供详细的订单状态跟踪和取消/修改功能,确保服务质量。
  15. 套餐订单:管理用户已购买的服务套餐,提供续费提醒和套餐变更功能,确保用户享受最佳服务体验。
  16. 预约信息:允许用户在线预约游泳课程或场地,支持灵活的时间段选择和即时确认,提高使用效率。
  17. 收藏:让用户保存感兴趣的内容(如课程、文章、场馆等),便于日后快速访问和预订,提升便利性。
  18. 评论管理:提供平台给用户发表对课程或服务的看法,管理员可以审核和回复评论,促进用户间的交流和信任。

会员用户角色用例如下图所示。

图3.1会员用户用例图

员工用户具体功能说明如下所示。

  1. 登录:员工专用的安全登录入口,采用角色权限控制,确保不同岗位的员工只能访问相应的功能模块。
  2. 后台首页:提供员工所需的系统操作界面,集成常用功能快捷入口,简化工作流程,提升工作效率。
  3. 在线充值管理:处理用户的充值请求,支持批量查询和导出功能,确保资金流动顺畅。
  4. 到账信息管理:记录和核对用户的到账信息,提供详细的财务报表和统计分析,确保交易准确无误。
  5. 场馆信息管理:管理和更新各场馆的基本信息,支持图片上传和设施介绍,确保数据准确。
  6. 预约信息管理:管理和调度用户的预约信息,支持冲突检测和智能排班,确保资源合理分配。

员工用户角色用例如下图所示。

图3.2员工用户用例图

管理员具体功能说明如下所示。

  1. 登录:管理员专用的安全登录入口,采用双因素认证(2FA)机制,确保管理系统访问的安全性。
  2. 后台首页:综合展示系统运行状况、用户统计数据和财务概览,帮助管理员全面掌握系统的整体情况。
  3. 系统用户:管理和维护所有用户的信息,包括增删改查操作,确保系统的正常运作和数据准确。
  4. 在线充值管理:处理和审核用户的充值请求,支持批量导入和导出功能,确保资金流动顺畅。
  5. 到账信息管理:记录和核对用户的到账信息,提供详细的财务报表和统计分析,确保交易准确无误。
  6. 课程信息管理:管理和更新课程信息,支持批量上传和分类管理,保证数据的准确性和时效性。
  7. 课程类型管理:分类管理课程类型,支持自定义标签和排序规则,优化用户体验。
  8. 课程订单管理:跟踪和处理用户的课程订单,支持订单状态更新和退款申请处理,确保服务质量。
  9. 套餐信息管理:管理和更新套餐信息,支持多维度筛选和组合套餐设置,满足用户多样化需求。
  10. 套餐类型管理:分类管理套餐类型,支持自定义属性和促销策略,优化用户体验。
  11. 套餐订单管理:处理和跟踪用户的套餐订单,支持自动续费提醒和套餐升级功能,确保服务顺利进行。
  12. 场馆信息管理:管理和更新各场馆的基本信息,支持图片上传和设施介绍,确保数据准确。
  13. 场馆类型管理:分类管理不同类型的场馆,支持自定义字段和搜索功能,便于用户选择。
  14. 预约信息管理:管理和调度用户的预约信息,支持冲突检测和智能排班,确保资源合理分配。
  15. 维护信息管理:记录和管理系统维护信息,支持故障报告和修复进度跟踪,保证系统稳定运行。
  16. 系统管理:管理网站首页的轮播图,支持图片上传、链接设置和定时切换功能,提升视觉效果。
  17. 公告通知管理:发布和管理公告通知,支持多语言版本和定时发布功能,确保信息及时传达。
  18. 资源管理:管理和更新新闻资讯及分类,支持富文本编辑器和SEO优化,丰富网站内容。

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

图3.3管理员用例图

3.3系统非功能性需求分析

系统的功能需求方面主要是从系统的性能、可用性、安全性等方面进行分析:

性能需求:系统需确保快速响应和高吞吐量,以支持大量用户同时访问,即使在高峰时段也能保持流畅的操作体验,避免因延迟或卡顿影响用户体验。

可用性:安系统必须具备高可用性,采用冗余部署、负载均衡等策略,确保即使部分组件故障也能迅速恢复服务,减少服务中断时间,保障用户业务的连续性。

安全性:鉴于系统处理用户敏感信息,如个人信息、支付数据等,必须实施严格的安全措施,包括数据加密、访问控制、防攻击机制等,以保护用户数据免受未授权访问或泄露。

可维护性:系统设计应注重可维护性,采用模块化、标准化的架构,提供详尽的开发文档和用户手册,确保系统易于理解和维护,降低长期运维成本。

可扩展性:随着业务的发展,系统可能需要扩展功能或提升性能。因此,系统需具备灵活的可扩展性,能够轻松添加新模块、优化性能,以应对未来增长的需求。

易用性:用户界面应直观易用,符合用户习惯,提供清晰的导航和友好的操作反馈,帮助用户快速上手并高效完成任务,提升整体用户满意度。

3.1系统流程分析

3.1.1程序操作流程

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

图3.4程序操作流程图

3.1.2信息添加流程

管理员可以对用户信息、失物类型等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如下图所示。

图3.5信息添加流程图

3.1.3信息删除流程

管理员可以对用户信息、轮播图信息、公告通知信息等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如写=下图所示。

图3.6信息删除流程图

4  系统设计

4.1总体设计

4.1.1架构设计

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

图4.1系统架构图

4.1.2功能模块设计

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

图4.2系统功能结构图

4.2数据库设计

4.2.1概念结构设计

数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体-关系模型或者其他适当的模型,我们将定义系统中涉及的各个实体属性以及它们之间的联系。游泳馆预约管理系统总体E-R图如下图所示。

图4.3总E-R图

4.2.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

用户编号:

表appointment_information (预约信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

appointment_information_id

int

10

0

N

Y

预约信息ID

2

venue_number

varchar

64

0

Y

N

场馆编号

3

venue_location

varchar

64

0

Y

N

场馆位置

4

venue_name

varchar

64

0

Y

N

场馆名称

5

venue_type

varchar

64

0

Y

N

场馆类型

6

appointment_user

int

10

0

Y

N

0

预约用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

time_of_appointment

datetime

19

0

Y

N

预约时间

9

number_of_appointments

double

9

2

Y

N

0.00

预约人数

10

appointment_remarks

text

65535

0

Y

N

预约备注

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

examine_reply

varchar

16

0

Y

N

审核回复

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

15

source_table

varchar

255

0

Y

N

来源表

16

source_id

int

10

0

Y

N

来源ID

17

source_user_id

int

10

0

Y

N

来源用户

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

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

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

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

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

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

parent

varchar

64

0

Y

N

父级菜单

8

parent_sort

int

10

0

N

N

0

父级菜单排序

9

position

varchar

32

0

Y

N

位置:

10

mode

varchar

32

0

N

N

_blank

跳转方式:

11

add

tinyint

3

0

N

N

1

是否可增加:

12

del

tinyint

3

0

N

N

1

是否可删除:

13

set

tinyint

3

0

N

N

1

是否可修改:

14

get

tinyint

3

0

N

N

1

是否可查看:

15

field_add

text

65535

0

Y

N

添加字段:

16

field_set

text

65535

0

Y

N

修改字段:

17

field_get

text

65535

0

Y

N

查询字段:

18

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

19

table_nav

varchar

500

0

Y

N

跨表导航:

20

option

text

65535

0

Y

N

配置:

21

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

code_token_id

int

10

0

N

Y

2

token

varchar

255

0

Y

N

3

code

varchar

255

0

Y

N

验证码

4

expire_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

失效时间

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表course_information (课程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_information_id

int

10

0

N

Y

课程信息ID

2

course_number

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

course_type

varchar

64

0

Y

N

课程类型

5

number_of_course_sessions

double

9

2

Y

N

0.00

课程节数

6

course_amount

double

9

2

Y

N

0.00

课程金额

7

cover_photo

varchar

255

0

Y

N

封面图片

8

course_details

longtext

2147483647

0

Y

N

课程详情

9

hits

int

10

0

N

N

0

点击数

10

praise_len

int

10

0

N

N

0

点赞数

11

collect_len

int

10

0

N

N

0

收藏数

12

comment_len

int

10

0

N

N

0

评论数

13

course_order_limit_times

int

10

0

N

N

0

购买限制次数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表course_order (课程订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_order_id

int

10

0

N

Y

课程订单ID

2

course_number

varchar

64

0

Y

N

课程编号

3

course_name

varchar

64

0

Y

N

课程名称

4

course_type

varchar

64

0

Y

N

课程类型

5

course_amount

double

9

2

Y

N

0.00

课程金额

6

purchase_users

int

10

0

Y

N

0

购买用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

phone_number

varchar

64

0

Y

N

手机号码

9

purchase_time

date

10

0

Y

N

购买时间

10

purchase_remarks

text

65535

0

Y

N

购买备注

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

examine_reply

varchar

16

0

Y

N

审核回复

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

15

source_table

varchar

255

0

Y

N

来源表

16

source_id

int

10

0

Y

N

来源ID

17

source_user_id

int

10

0

Y

N

来源用户

表course_type (课程类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

course_type_id

int

10

0

N

Y

课程类型ID

2

course_type

varchar

64

0

Y

N

课程类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表employee_users (员工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_users_id

int

10

0

N

Y

员工用户ID

2

employee_name

varchar

64

0

Y

N

员工姓名

3

employee_gender

varchar

64

0

Y

N

员工性别

4

employee_age

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

更新时间

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

表maintain_information (维护信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

maintain_information_id

int

10

0

N

Y

维护信息ID

2

venue_number

varchar

64

0

Y

N

场馆编号

3

venue_name

varchar

64

0

Y

N

场馆名称

4

venue_location

varchar

64

0

Y

N

场馆位置

5

venue_type

varchar

64

0

Y

N

场馆类型

6

maintenance_type

varchar

64

0

Y

N

维护类型

7

maintenance_time

datetime

19

0

Y

N

维护时间

8

maintenance_status

varchar

64

0

Y

N

维护状态

9

maintenance_details

text

65535

0

Y

N

维护详情

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

12

source_table

varchar

255

0

Y

N

来源表

13

source_id

int

10

0

Y

N

来源ID

14

source_user_id

int

10

0

Y

N

来源用户

表member_users (会员用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

member_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

user_age

double

9

2

Y

N

0.00

用户年龄

5

account_balance

double

9

2

Y

N

0.00

账户余额

6

phone_number

varchar

16

0

N

N

手机号码

7

examine_state

varchar

16

0

N

N

已通过

审核状态

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

更新时间:

表online_recharge (在线充值)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

online_recharge_id

int

10

0

N

Y

在线充值ID

2

recharge_title

varchar

64

0

Y

N

充值标题

3

recharge_amount

double

9

2

Y

N

0.00

充值金额

4

recharge_user

int

10

0

Y

N

0

充值用户

5

user_name

varchar

64

0

Y

N

用户姓名

6

phone_number

varchar

64

0

Y

N

手机号码

7

recharge_remarks

text

65535

0

Y

N

充值备注

8

pay_state

varchar

16

0

N

N

未支付

支付状态

9

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

10

receipt_information_limit_times

int

10

0

N

N

0

确认到账限制次数

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表package_information (套餐信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

package_information_id

int

10

0

N

Y

套餐信息ID

2

package_number

varchar

64

0

Y

N

套餐编号

3

package_name

varchar

64

0

Y

N

套餐名称

4

package_type

varchar

64

0

Y

N

套餐类型

5

package_price

double

9

2

Y

N

0.00

套餐价格

6

cover_photo

varchar

255

0

Y

N

封面图片

7

package_details

longtext

2147483647

0

Y

N

套餐详情

8

praise_len

int

10

0

N

N

0

点赞数

9

collect_len

int

10

0

N

N

0

收藏数

10

comment_len

int

10

0

N

N

0

评论数

11

package_order_limit_times

int

10

0

N

N

0

购买限制次数

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表package_order (套餐订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

package_order_id

int

10

0

N

Y

套餐订单ID

2

package_number

varchar

64

0

Y

N

套餐编号

3

package_name

varchar

64

0

Y

N

套餐名称

4

package_type

varchar

64

0

Y

N

套餐类型

5

package_price

double

9

2

Y

N

0.00

套餐价格

6

purchase_users

int

10

0

Y

N

0

购买用户

7

user_name

varchar

64

0

Y

N

用户姓名

8

phone_number

varchar

64

0

Y

N

手机号码

9

purchase_time

date

10

0

Y

N

购买时间

10

purchase_remarks

text

65535

0

Y

N

购买备注

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

examine_reply

varchar

16

0

Y

N

审核回复

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

15

source_table

varchar

255

0

Y

N

来源表

16

source_id

int

10

0

Y

N

来源ID

17

source_user_id

int

10

0

Y

N

来源用户

表package_type (套餐类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

package_type_id

int

10

0

N

Y

套餐类型ID

2

package_type

varchar

64

0

Y

N

套餐类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

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

表receipt_information (到账信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

receipt_information_id

int

10

0

N

Y

到账信息ID

2

recharge_title

varchar

64

0

Y

N

充值标题

3

recharge_amount

double

9

2

Y

N

0.00

充值金额

4

recharge_user

int

10

0

Y

N

0

充值用户

5

user_name

varchar

64

0

Y

N

用户姓名

6

phone_number

varchar

64

0

Y

N

手机号码

7

payment_date

datetime

19

0

Y

N

到账时间

8

receipt_remarks

text

65535

0

Y

N

到账备注

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

11

source_table

varchar

255

0

Y

N

来源表

12

source_id

int

10

0

Y

N

来源ID

13

source_user_id

int

10

0

Y

N

来源用户

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_id

smallint

5

0

N

Y

日程ID:[0,32767]

2

content

varchar

255

0

Y

N

日程内容

3

scheduled_time

datetime

19

0

Y

N

计划时间

4

user_id

int

10

0

N

N

用户id

5

create_time

datetime

19

0

Y

N

创建时间

6

update_time

datetime

19

0

Y

N

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_id

int

10

0

N

Y

评分ID:

2

user_id

int

10

0

N

N

0

评分人:

3

nickname

varchar

64

0

Y

N

昵称:

4

score_num

double

5

2

N

N

0.00

评分:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

source_table

varchar

255

0

Y

N

来源表:

8

source_field

varchar

255

0

Y

N

来源字段:

9

source_id

int

10

0

N

N

0

来源ID:

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

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

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

int

10

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表venue_information (场馆信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

venue_information_id

int

10

0

N

Y

场馆信息ID

2

venue_number

varchar

64

0

Y

N

场馆编号

3

venue_name

varchar

64

0

Y

N

场馆名称

4

venue_location

varchar

64

0

Y

N

场馆位置

5

venue_type

varchar

64

0

Y

N

场馆类型

6

venue_status

varchar

64

0

Y

N

场馆状态

7

capacity_for_people

double

9

2

Y

N

0.00

容纳人数

8

opening_hours

varchar

64

0

Y

N

开放时间

9

cover_photo

varchar

255

0

Y

N

封面图片

10

appointment_notice

text

65535

0

Y

N

预约须知

11

venue_details

longtext

2147483647

0

Y

N

场馆详情

12

hits

int

10

0

N

N

0

点击数

13

praise_len

int

10

0

N

N

0

点赞数

14

collect_len

int

10

0

N

N

0

收藏数

15

comment_len

int

10

0

N

N

0

评论数

16

appointment_information_limit_times

int

10

0

N

N

0

预约限制次数

17

maintain_information_limit_times

int

10

0

N

N

0

维护限制次数

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表venue_type (场馆类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

venue_type_id

int

10

0

N

Y

场馆类型ID

2

venue_type

varchar

64

0

Y

N

场馆类型

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

5  系统实现

5.1会员用户功能实现

5.1.1用户注册界面

用户注册:输入账号、设置密码、确认密码、昵称、邮箱、选择用户身份、填写用户姓名、用户性别、用户电话等个人信息,点击注册按钮进行注册。用户注册界面如下图所示。

图5.1用户注册界面设计  

5.1.2用户登录界面

用户登录:输入用户名、密码和验证码信息点击登录按钮,校验通过后即可登录,同时提供找回密码的选项。用户登录界面如下图所示。

图5.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.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.1.3首页界面

首页界面是用户访问系统的入口页面,它展示系统的主要功能和特色。系统首页以上中下的布局进行展示,正上方是系统的导航栏,中间是轮播图,下面是新闻资讯等信息。首页界面图如下图所示。

图5.3首页界面设计

5.1.4在线充值界面

在该界面用户可以在线充值、查询余额等。在线充值界面图如下图所示。

图5.4在线充值界面设计

5.1.5课程信息界面

在该界面用户可以查看课程信息列表,同时可以通过输入关键字或课程名称等方式进行搜索查询相关课程信息,点击列表中你想要了解的课程信息后将会进入该课程的详情界面,可以查看该课程的详细介绍并可以进行点赞、收藏等、预约购买和发表评论操作。点击详情下方的“预约购买”进入页面填写预约时间、优惠劵码等信息后点击“提交”即可完成该课程预约购买申请。课程信息界面图如下图所示。

图5.5课程信息界面设计

5.1.6个人中心界面

用户点击我的图像下拉菜单“个人中心”可以查看个人首页、课程信息、场馆信息、到账信息和收藏信息并进行相关操作。例如点击“课程信息”可以查看课程信息列表中某个课程的详情等。个人中心界面图如下图所示。

图5.6个人中心界面设计

5.2员工用户功能实现

5.2.1在线充值管理界面

员工查看在线充值管理界面图如下图所示。

图5.7在线充值管理界面设计

5.2.2个人中心界面

员工用户可以管理个人首页、到账信息、场馆信息、预约信息并进行相关操作。可以查看或删除列表信息。个人中心界面图如下图所示。

图5.8个人中心界面设计

5.3后台管理员功能实现

5.3.1系统用户界面

管理员负责对员工用户账户的创建;可以对系统用户(会员用户、员工用户、管理员)信息进行增删改查操作,例如点击会员用户列表中某个用户后面的详情,进入页面可以修改用户状态和会员等级信息。支持通过用户姓名这一关键信息搜索查找用户信息。系统用户界面图如下图所示。

图5.9系统用户界面设计

修改的代码如下:

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

    }

5.3.2课程类型管理界面

在该界面管理员可以查看课程类型列表中某个用户的课程详情并进行审核。可以对列表信息进行查询、重置和删除操作。支持通过输入课程名称或用户名姓名查询课程类型信息。课程类型管理界面图如下图所示。

图5.10课程类型管理界面设计

   查询的代码如下:

    @RequestMapping("/get_obj")

    public Map<String, Object> obj(HttpServletRequest request) {

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

    }

}

5.3.3系统管理界面

在该界面管理员可以对系统轮播图信息进行增删改查操作。点击“添加”进入页面上传轮播图图片、填写标题、链接后点击提交即可完成添加。系统管理界面图如下图所示。

图5.11系统管理界面设计

5.3.4通知公告管理界面

在该界面管理员可以对通知公告信息进行增删改查操作。例如,勾选某个或多个通知公告后点击删除即可删除公告信息。通知公告管理界面图如下图所示。

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

删除的代码如下:

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

    }

6  系统测试

6.1  系统测试目的

游泳馆预约管理系统测试旨在确保功能正常、性能稳定和安全可靠,验证各项功能符合需求规格,检查易用性和用户体验,评估响应时间和并发能力以保证高负载下的正常运行,并通过安全测试防范各类威胁,从而全面保障系统的稳定性、可靠性和安全性。

6.2  功能测试用例

系统测试旨在检验系统功能是否正常工作。通过功能测试用例的执行,可以有效评估系统功能的正确性、完整性和稳定性,帮助发现和解决潜在的功能缺陷,确保系统能够按照预期功能正常运行。功能测试用例包括用户注册、用户登录、课程信息录入审核。

测试用例编号

功能模块

测试用例描述

预期结果

TC001

用户注册

输入有效的用户名、密码、邮箱和角色信息

注册成功,用户账户创建成功

TC002

用户注册

输入已有用户名

注册失败,提示用户名已存在

表6-1 注册功能测试用例

测试用例编号

功能模块

测试用例描述

预期结果

TC003

用户登录

输入正确的用户名和密码

登录成功,进入首页

TC004

用户登录

输入错误的用户名或密码

登录失败,提示用户名或密码错误

TC005

用户登录

输入注册邮箱,使用忘记密码功能

提示发送重置密码链接到邮箱

表6-2 登录功能测试用例

测试用例编号

功能模块

测试用例描述

预期结果

TC006

课程信息录入

管理员填写完整的课程信息信息录入

课程信息录入成功,展示在用户端课程信息界面

TC007

失物招领录入

管理员录入课程信息时缺少必要信息

课程信息录入失败,提示补充必要信息

表6-3 课程信息录入功能测试用例

6.3  测试结果

在本次测试中,主要对用户注册、用户登录、课程信息审核功能进行了详细测试。所有测试用例均达到预期效果,系统功能表现稳定。

7总结

游泳馆预约管理系统的开发成功实现了对游泳馆资源的高效管理和用户服务的优化提升。通过采用Spring Boot框架和Java语言,系统具备了高度的可扩展性和灵活性,能够适应不同规模游泳馆的需求。MySQL数据库的应用确保了数据存储的可靠性和查询的高效性,为系统的稳定运行提供了坚实基础。

在功能实现方面,会员用户可以便捷地进行注册登录、浏览课程和套餐信息、在线充值及预约场馆;管理员用户能够全面管理用户信息、财务状况及系统资源;员工用户则专注于后台操作和预约调度。这些功能模块的设计不仅提升了用户的使用体验,还显著提高了游泳馆的运营效率。

系统的前后端分离架构使得前端与后端能够独立开发和部署,提升了系统的响应速度和用户体验。安全性方面,系统集成了多种安全机制,包括双因素认证和密码加密存储,有效保障了用户数据的安全。此外,系统设计注重易用性和可维护性,采用了模块化设计,便于后续的功能扩展和技术升级。

整体而言,该游泳馆预约管理系统不仅解决了传统管理方式中存在的效率低下、用户体验差等问题,还为游泳馆提供了一套完整的数字化解决方案。系统的成功实施验证了其在实际应用中的可行性和有效性,展示了技术手段在提升行业管理水平和服务质量方面的巨大潜力。未来,系统还可以进一步结合大数据分析和人工智能技术,提供更加智能化的服务和管理支持,助力游泳馆行业的持续发展。

参考文献

[1]A Rahadini.Regional Typology in Central Java: Urban and Rural Relation based on Cluster Analysis[J].IOP Conference Series: Earth and Environmental Science,2024,1381(1):012043-012043.

[2]马惠强,曾宋贤,陈云生.基于Java的在线考试系统设计与开发[J].现代信息科技,2024,8(12):56-60+65.

[3]Rizfi Fariz Pari,Uju,Agung Tri Wijayanta,Wahyu Ramadhan,Safrina Dyah Hardiningtyas,Kiki Adi Kurnia,Mochamad Lutfi Firmansyah,Arinal Hana,Muhammad Naufal Abrar,Rie Wakabayashi,Noriho Kamiya,Masahiro Goto.Prospecting Ulva lactuca seaweed in Java Island, Indonesia, as a candidate resource for industrial applications[J].Fisheries Science,2024,90(5):795-808.

[4]李丹.基于B/S的高校实验室预约管理系统设计与实现[J].现代信息科技,2024,8(05):31-35.

[5]Yu Wang,Weiyi Fan.Design of Media Industry's Device Reservation Management System Based on Internet of Things[J].Media and Communication Research,2024,5(1):

[6]王伟江.大学校园浴室预约管理系统的设计与开发[J].科技资讯,2023,21(23):246-249.

[7]Yuanrong Wang, Tingmei Wang, Da Li.Design and Implementation of an Android-Based Intelligent Parking Reservation Management System[J].Journal of Intelligence and Knowledge Engineering,2023,1(4):

[8]徐正超,王义斐,谭煜凯,朱立佳,李强.基于HTML的实验预约管理系统设计与实现[J].科技与创新,2023,(22):146-148.

[9]袁江琛.健身预约管理系统的设计与实现[J].福建电脑,2023,39(11):111-113.

10]徐赛花,张希.一种图书馆预约管理系统设计与实现[J].电脑编程技巧与维护,2023,(07):107-110.

[11]王以伍,舒晖.基于SpringBoot+Vue前后端分离的高校实验室预约管理系统的设计与实现[J].现代计算机,2023,29(01):114-117.

[12]张昕,林洪芳.基于微信小程序的图书馆座位预约管理系统[J].电子元器件与信息技术,2022,6(12):106-109.

[13]巩蕾.医院挂号预约管理系统设计[J].电脑编程技巧与维护,2022,(02):66-68+80.

[14]Asim Faraz,Abdul Waheed,Ayman Balla Mustafa,Nasir Ali Tauqir,Riaz Hussain Mirza,Hafiz Muhammad Ishaq,Rana Muhammad Bilal,Muhammad Shahid Nabeel.Milk Production Potential of Marecha Camel (Camelus dromedarius) in Extensive and Semi-intensive Management Systems[J].Pakistan Journal of Zoology,2020,

[15]翟振广.淄博市高校游泳场所开展现状与发展策略研究[J].文体用品与科技,2024,(13):46-48.

[16] 柯巧素.地方高校游泳馆运营模式探究[D].   湖南理工学院,   2024.

[17]  许淦胜,冯丹丹.潮州市湘桥区游泳场馆经营现状调查与分析研究[J].文体用品与科技,2024,(05):59-61.

[18]  朱晓凤,徐瑶,张诚.重庆市游泳馆(池)管理运营现状及发展对策研究[J].内江科技,2024,45(02):53-55.

致  谢

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

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

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

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

请关注点赞+私信博主,免费领取项目源码

更多推荐