版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ⅰ摘要投入使用后,可以提高游泳馆管理的效率。使游泳馆管理系统能够更好地服务于使用者,同时也能更好地应对市场的挑战。MySQL数据库ⅡABSTRACTWiththeriseofthenationalfitnessmovement,andtheimprovementofpeople'slivingstandards,moreandmorepeoplebegantopayattentiontofitness,somepeoplewillchooseswimmingprojectsforphysicalexercise,sothatmoreandmorepeopleentertheswimmingpool,bringingaseriesofproblemstothemanagementoftheswimmingpool,forexample,managingthecoursesbookedbyusersisamorecumbersomeprocess,butalsowillbelimitedandaffectedbytimeandspace,userscannotintuitivelyunderstandthefacilitiesoftheswimmingpool,thevenueenvironment,etc.Inordertosolvetheseproblems,thispaperusesJavalanguageandMySQLdatabasetodesignandimplementaswimmingpoolmanagementsystembasedondemandanalysis,andthemainfunctionsofthesystemincludeusermanagement,coursemanagementandwalletmanagement.Aftertesting,thissystemhasexcellentinterfaceandcompletefunctions,andafterbeingputintouse,itcanimprovetheefficiencyofswimmingpoolmanagement.Enablingtheswimmingpoolmanagementsystemtobetterserveusers,whilealsobetterrespondingtothechallengesofthemarket.Keywords:Natatorium;Managementsystem;Java;MySQLdatabaseⅢ目录第1章绪论 11.1研究背景和意义 11.2研究现状 11.2.1国外研究现状 11.2.2国内研究现状 21.3主要研究内容 2第2章关键技术简介 32.1Java 32.2SSM 32.3MySQL 3第3章系统分析 43.1可行性分析 43.1.1经济可行性 43.1.2技术可行性 43.1.3操作可行性 43.2需求分析 43.2.1功能需求分析 43.2.2非功能需求分析 63.3系统流程分析 63.3.1开发流程 63.3.2登录流程 73.3.3预约课程流程 8第4章系统设计 104.1系统总体设计 104.2数据库设计 104.2.1概念结构设计 104.2.2逻辑结构设计 13第5章系统实现 235.1用户管理 23Ⅳ5.2教练信息管理 265.3钱包管理 285.4会员卡管理 305.5课程管理 315.6课程预约管理 335.7收藏管理 365.8评论留言管理 37第6章系统测试 406.1测试目的 406.2测试方法 406.3功能测试 406.3.1用户管理 406.3.2教练信息管理 426.3.3课程管理 446.3.4课程预约管理 466.3.5收藏管理 486.3.6评论留言管理 496.3.7钱包管理 496.4测试结论 50结论 51参考文献 52致谢 541第1章绪论1.1研究背景和意义随着全民健身运动的兴起,以及人们生活水平的提高,越来越多的人开始重视健身,有些人会选择游泳项目来进行体育锻炼,使得进入游泳馆的人越来越多,而管理游泳馆所需的数据信息统计和管理工作也变得更为繁琐和复杂,为了解决这个问题,尝试使用Java语言去设计开发一个游泳馆管理系统。预计投入使用该游泳馆管理系统后,用户可以通过系统随时查看游泳馆的一些课程、会员卡、教练等信息,便捷、准确地预约课程。而管理员可以随时更新和查看游泳馆的数据,使管理员足不出户就能够轻松获取数据信息来运营和管理系统。因此,设计一个游泳馆管理系统将极大地方便用户和管理员,提高游泳馆的管理水平和用户体验。1.2研究现状1.2.1国外研究现状很多国外国家的体育产业已经发展了相当长的时间,因此它们的体育运动发展非常完善和系统化。这些国家还投入了大量资源建设和维护游泳馆基础设施。此外,国外还已经成熟地掌握了游泳场馆的建设和管理方面的技术,而涉及到游泳馆的管理方面时,国外的专家学者也经过了广泛的研究,相关理论体系相对完备。因此,需要学习和借鉴这些国家的经验,来提高我们自己游泳馆管理的水平。2020年Faitira在《Salespromotionasacriticalcomponentofasmallbusinessmarketingstrategy》[1]中借助Java语言和eclipse开发工具实现了平台设计和主要功能,提出营销方式的不同会对场馆的经济效益产生重大的影响,场馆应该借助多种信息技术采取丰富多样化的营销手段,拓展营销渠道,从而促进场馆的经济效益。优化了场馆的营销方式,但是没有提到应该基于什么方式来拓展营销渠道,没有根本的解决促进场馆经济效益的问题。虽然Faitira没有很好的解决拓展营销渠道的方式,但是Ditizio针对这个问题进行了研究。2019年Ditizio在《FantasySportsandGamblinginSport:MarketingImplicationsforBrandingandFanEngagement》[2]中基于Web应用系统,开发了游泳馆的管理系统。Ditizio认为,互联网的普及为营销提供了更加广阔的平台。因此,借助与互联网融合来制定营销策略将成为未来游泳馆经营管理获取经济效益的关键。这一观点优化了对营销策略的普及方法。拓展了很多有效的营销渠道方式来解决问题。国外的研究方向主要集中在如何拓展游泳市场方面,以及如何运用各种营销策略来促进游泳馆的经济效益。21.2.2国内研究现状目前我国对于游泳场馆研究主要集中在场馆建设、场馆经营管理现状、场馆经营管理优化策略等,许多用户因为找不到合适自己的游泳场地,久而久之,就对这项运动没有兴趣了,浪费时间和精力也找不到满意的。一个好的游泳馆管理系统可以很好的解决这个问题,而且用户可以通过线上网站预约不同类型的课程,以及不再受线下游泳馆因为地域,天气,是否有教练等因素而困扰。虽然国内对游泳馆管理系统的使用和相关研究起步较晚,发展的速度却很快。2017年王赟在《基于B/S架构的游泳馆预约系统设计》[3]中采用B/S架构设计和开发了一款游泳馆预约系统,该系统为学校师生提供了便捷的服务。这个系统能够轻松地帮助用户了解游泳馆的场次时间和人数情况,并在校园网上实现自主预约。这有效地优化了游泳馆的场次资源利用,提高了使用效率。同时,该系统借助校园网,使用户能够足不出户就能了解游泳馆的场次情况,并根据场次时间安排进行预约。使用起来非常方便快捷,高效灵活。但是没有对用户的钱包,资产等进行管理,对于消费的管理以及信息的查看没有提出很好的解决方案,但是刘博对收费管理这个问题有了相应的分析与研究。2018年刘博在《游泳馆收费管理系统的分析与设计》[4]中运用了VB.NET技术以及SQLServer数据库,设计了一个高校游泳馆收费管理系统以满足将教师、员工、社会人员来游泳馆进行消费进行管理和统计。此观点提高了对用户的分类管理,优化了统计方案,使得管理者很方便的查看用户的信息,方便管理,但是没有提到管理者如何使用,没有解决管理者如何更加方便,快捷地使用系统来进行管理。虽然刘博对管理者的使用问题没有合理的解决方案,但是莫菊秋对这个问题进行了很好的优化。2019年莫菊秋在《深圳游泳馆淡季营销策略优化研究》[5]中借助Java语言和MySQL数据库技术提出游泳馆的营销管理需要建立在信息化管理系统基础之上,建立ERP管理系统。这种观点提高了远程管理的水平并优化了游泳馆的管理流程控制。基本解决了管理者在使用时可能遇到的问题,让管理者能够更加便捷地获取数据信息,从而更好地指导和管理游泳馆的运营。1.3主要研究内容。3第2章关键技术简介2.1JavaJava是一种在Web应用开发中得到广泛使用的脚本语言,经常被用来对用户的相关行为做出反应。它还具有面向对象的设计能力,使设计开发过程更加直观和模块化,并在HTML基础上进行交互Web页面的开发。这种脚本语言的问世,使用户与页面之间的实时、动态交互成为现实,丰富了页面的内容,增强了页面的活力。另外,Java技术也被广泛地运用于该系统,比如对用户输入的数据进行检测,以保证其有效性。Java技术可以在不依赖Web服务程序的基础上在本地客户机上运行。从而有效地解决了因网络速度带来的迟缓问题,使用户能够更加顺畅、快捷地进行访问。一些功能,比如用户的数据输入,可以通过JavaScript这样的客户语言来完成。该系统采用Java客户机进行用户身份认证,确保了系统的安全性和可靠性。2.2SSMSSM是指Spring、SpringMVC和MyBatis三个框架的组合,常用于JavaWeb开发。Spring提供依赖注入、面向切面编程等功能,SpringMVC加速Web应用程序的开发,MyBatis方便Java对象与数据库表之间的映射。SSM组合提高了JavaWeb开发的效率和可靠性,是一种优秀的框架组合。2.3MySQLMySQL是现在很流行的数据库管理系统,该系统在数据处理速度和灵活性方面具有优势。它采用表格形式来存储数据,这使得MySQL变得快速和高效。此外,MySQL还具有免费、低成本、小体积、易于使用和管理等优势,因此在中小型网站的开发中得到广泛应用和支持。通过使用MySQL,网站可以高效地管理大量数据,并且可以快速地进行数据分析和处理。4第3章系统分析3.1可行性分析3.1.1经济可行性此次游泳馆管理系统所用的框架技术完全是开源的,其余的软件使用也都是免费的,在开发方面所消耗的成本可以忽略不计。而购置设备的费用远远少于其带来的社会收益,从经济上分析开发游泳馆管理系统是完全可行的。3.1.2技术可行性对系统进行分析,游泳馆管理系统采用Java语言进行开发,使用Eclipse作为开发工具。数据库方面选择MySQL作为数据存储和管理的工具,多表存储的特点使数据更加规范化,增删改查更容易。相关的开发技术比较成熟并且广泛应用,有相关的案例可以借鉴。综上所述,技术开发上并无太大的难点。3.2需求分析游泳馆管理系统应直接为用户,管理员,教练提供服务,对系统功能进行分析,分析系统需要实现什么,对软件实现和完成工作进行整理与总结。良好的分析将有助于避免出现错误,从而降低时间成本、提高工作效率。3.2.1功能需求分析该游泳馆管理系统将按照角色划分功能,为用户、教练和管理员分别提供对应的操作权限,以满足不同角色的需求,下面将对于系统不同的使用者,结合角色用例图对系统的几个角色进行进一步的分析:(1)为管理员提供的功能包括会员卡管理、钱包管理、用户管理等,管理员用例图如图3.1所示。5游泳课程管理游泳课程管理收藏管理收藏管理课程预约管理评论留言管理课程管理会员卡管理钱包管理教练信息管理用户管理图3.1管理员用例图(2)为用户提供的功能包括收藏管理、课程预约管理、个人信息管理等,用户用例图如图3.2所示。收藏管理收藏管理会员卡管理课程预约管理钱包管理个人信息管理图3.2用户用例图6(3)为教练提供的功能包括课程、个人信息管理等,教练用例图如图3.3所示。课程管理课程管理课程预约管理个人信息管理图3.3教练用例图3.2.2非功能需求分析鉴于本系统现实情况的考虑,其非功能需求包括以下几个方面:(1)可用性:系统需要拥有很好高的可用性,能够保证随时随地可以运行,同时能够应对高并发流量和突发性负载。(2)安全性:系统需要拥有很高的安全性,能够保护用户和管理员的个人隐私和敏感信息。(3)兼容性:系统需要拥有很高的兼容性,可以适配各种操作系统、浏览器和设备,以便用户和管理员随时随地使用系统。综上所述,游泳馆管理系统的非功能需求是多方面的,需要从可靠性、可用性、安全性、和兼容性等方面进行考虑和分析,以保证系统的高效、稳定、安全和可靠运行。3.3系统流程分析3.3.1开发流程为了设计和开发游泳馆管理系统,需要进行详细的需求分析和功能设计。在需求分析阶段,必须仔细了解和分析用户的实际使用需求以及具体情况,以明确系统需要完成的全部功能。在此基础上,进行整个系统的工作流程和功能设计,以确保每个模块都能够满足用户的要求。最终,通过测试来确定系统的性能和稳定性,并解决出现的问题,保证系统能够正常运行。系统的开发流程如图3.3所示。7开始开始总体设计(结构,功能,数据)需求分析详细设计(模块,编码)模块整合与调用测试,拓展,完善结束图3.3系统开发流程图3.3.2登录流程用户、管理员和教练输入信息点击登录,系统将对信息进行规则检验,如果满足要求,则会调用后端接口查询数据库中的用户信息。若验证成功,用户会进入系统首页;否则,系统将提示用户重新填写信息。登录流程图如图3.4所示。8开始开始输入用户名、密码等信息输入用户名、密码等信息选择权限选择权限用户名密码是否为空用户名密码是否为空提示信息不能为空提示信息不能为空 是否用户名密码是否正确提示信息不正确用户名密码是否正确提示信息不正确 否是登录成功登录成功结束结束图3.4登录流程图3.3.3预约课程流程用户首次进入系统,要先提供正确的用户名和密码。登录成功后,才能进行课程预约的操作。预约课程流程图如图3.5所示。9开始开始系统系统登录界面输入用户名密码输入用户名密码否否否否信息是否正确信息错误信息是否正确信息错误是登录成功是是登录成功是查看课程查看课程购买课程购买课程购买失败是否购买成功 否购买失败是否购买成功是预约课程是预约课程否审核是否通过否审核是否通过审核失败审核失败是是课程预约成功课程预约成功结束图3.5预约课程流程图10第4章系统设计4.1系统总体设计该系统在功能需求分析的基础上,采用“高内聚”、“低耦合”的设计原则,将游泳馆管理系统主要分为8个模块,这种模块化的设计方式可以提高系统的可维护性和可扩展性,同时也有助于提高代码的复用率和系统的整体性能。其功能结构图如图4.1所示:游泳馆管理系统游泳馆管理系统用户管理教练信息管理钱包管理会员卡管理课程信息管理课程预约管理收藏管理评论留言管理图4.1游泳馆管理系统功能结构图4.2数据库设计数据库在任何一个系统中都是至关重要的组成部分。一个合理、高效的数据库设计能够提高系统的运行效率和实现各种逻辑功能的能力。因此,在设计数据库时,需要根据系统的实际需求出发,深入了解系统的特点和需求,从而设计出更为完美、高效的数据库。4.2.1概念结构设计概念模型是对现实中的问题进行抽象和描述的过程,其主要目的是为了更好地理解和解决问题。ER图是一种常用的概念模型表示方法,它由实体及其关系构成的图形化表示,通过ER图可以更直观地理解系统的结构和功能,从而更好地进行系统设计和开发。11余额充值实体属性图如图4.2所示。余额充值余额充值是否支付备注充值时间金额姓名账号图4.2余额充值实体属性图(2)用户实体属性图如图4.3所示。用户用户头像手机性别年龄姓名账号图4.3用户实体属性图(3)管理员实体属性图如图4.4所示。管理员管理员头像年龄姓名手机性别角色账号图4.4管理员实体属性图12(4)会员卡实体属性图如图4.5所示。会员卡会员卡是否支付会员卡类型购买时间折扣会员卡号账号图4.5会员卡实体属性图(5)游泳课程实体属性图如图4.6所示。课程课程课程分类课程名称开始时间费用课时发布时间封面上课地点教练姓名图4.6游泳课程实体属性图(6)游泳课程实体属性图如图4.7所示。教龄教龄教练账号教练姓名联系电话头像年龄密码图4.7游泳课程实体属性图13(7)游泳课程实体属性图如图4.8所示。钱包钱包登记时间金额姓名账号图4.8游泳课程实体属性图(8)系统各实体间关系如图4.9所示。使用余额充值使用余额充值钱包 1钱包 n 1充值预约充值预约用户 1 1用户 1 n课程购买会员卡 1 n课程购买会员卡图4.9实体间关系图4.2.2逻辑结构设计根据E-R设计数据库表,其中包括购买课程表、游泳课程评论表、预约课程表、关于我们表等,得出数据库包涵了以下几张数据表来实现了对数据库的存储和使用。(1)购买课程表用于存储购买课程的信息,购买课程表的表结构如表4.1所示。14表4.1购买课程表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPdingdanbianhaovarchar64订单编号kechengmingchengvarchar64课程名称kechengfenleivarchar64课程分类feiyongfloat费用zhekoufloat折扣zongjiafloat总价goumaishijiandatetime购买时间zhanghaovarchar20账号xingmingvarchar10姓名shoujivarchar64手机jiaolianzhanghaovarchar64教练账号jiaolianxingmingvarchar20教练姓名ispayvarchar10是否支付未支付(2)游泳课程评论表用于存储游泳课程评论的信息,游泳课程评论表的表结构如表4.2所示。表4.2游泳课程评论表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPrefidbigint关联表iduseridbigint用户id15(3)token表用于存储用户登录时携带的信息,token表的表结构如表4.3所示。表4.3token表字段名称类型长度字段说明主键默认值idbigint编号主键useridbigint用户idusernamevarchar20用户名tablenamevarchar10表名rolevarchar10角色tokenvarchar20密码addtimetimestamp新增时间CURRENT_TIMESTAMPexpiratedtimetimestamp过期时间CURRENT_TIMESTAMP(4)预约课程表用于存储预约课程的信息,预约课程表的表结构如表4.4所示。表4.4预约课程表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPkechengmingchengvarchar20课程名称kechengfenleivarchar20课程分类yuyueshijiandatetime预约时间yuyueshizhangvarchar20预约时长beizhulongtext64备注xingmingvarchar10姓名jiaolianzhanghaovarchar20教练账号jiaolianxingmingvarchar10教练姓名sfshvarchar10是否审核待审核16zhanghaovarchar20账号(5)关于我们表用于存储关于我们的信息,关于我们表的表结构如表4.5所示。表4.5关于我们表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPtitlevarchar64标题subtitlevarchar20副标题contentlongtext429496729内容picture1longtext429496729图片1picture2longtext429496729图片2picture3longtext429496729图片3(6)联系我们表用于存储联系我们的信息,联系我们表的表结构如表4.6所示。表4.6联系我们表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idadminidbigint管理员idasklongtext429496729提问replylongtext429496729回复isreplyint是否回复17(7)收藏表用于存储课程收藏的信息,收藏表的表结构如表4.7所示。表4.7收藏表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idrefidbigint商品idtablenamevarchar20表名namevarchar20名称picturelongtext429496729图片typevarchar20类型(1:收藏,21:赞,22:踩)1inteltypevarchar20推荐类型remarkvarchar64备注(8)游泳课程表用于存储游泳课程的信息,游泳课程表的表结构如表4.8所示。表4.8游泳课程表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPkechengmingchengvarchar20课程名称kechengfenleivarchar20课程分类kaishishijiandatetime开始时间keshivarchar20课时feiyongfloat费用shangkedidianvarchar20上课地点jiaolianzhanghaovarchar20教练账号18jiaolianxingmingvarchar10教练姓名fabushijiandatetime发布时间kechengneironglongtext429496729课程内容fengmianlongtext429496729封面thumbsupnumint赞0crazilynumint踩0(9)公告信息表用于存储公告的信息,公告信息表的表结构如表4.9所示。表4.9公告信息表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPtitlevarchar20标题picturelongtext429496729图片contentlongtext429496729内容(10)课程分类表用于存储课程的分类信息,课程分类表的表结构如表4.10所示。表4.10课程分类字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPkechengfenleivarchar20课程分类(11)会员卡购买表用于存储会员卡购买的信息,会员卡购买表的表结构如表4.11所示。 19表4.11会员卡购买表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPzhanghaovarchar20账号xingmingvarchar20姓名jinefloat金额zhekoufloat折扣huiyuankahaovarchar20会员卡号huiyuankaleixingvarchar20会员类型goumaishijiandatetime购买时间ispayvarchar20是否支付未支付(12)会员卡表用于存储会员卡的信息,会员卡表的表结构如表4.12所示。表4.12会员卡表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPhuiyuankahaovarchar64会员卡号huiyuankaleixingvarchar20会员卡类型jinefloat金额zhekoufloat折扣fengmianlongtext429496729封面shiyongtiaojianlongtext429496729使用条件youhuishuominglongtext429496729优惠说明chuangjianshijiandatetime创建时间clicktimedatetime点击时间clicknumint点击次数020(13)余额充值表用于存储余额充值的信息,余额充值表的表结构如表4.13所示。表4.13余额充值表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPzhanghaovarchar20账号xingmingvarchar10姓名jinefloat金额chongzhishijiandatetime充值时间beizhuvarchar20备注ispayvarchar10是否支付未支付(14)用户钱包表用于存储用户钱包的信息,用户钱包表的表结构如表4.14所示。表4.14用户钱包表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPzhanghaovarchar20账号xingmingvarchar20姓名jinefloat金额dengjishijiandatetime登记时间crossuseridbigint跨表用户idcrossrefidbigint跨表主键id(15)扣减金额表用于存储扣减金额的信息,扣减金额表的表结构如表4.15所示。21表4.15扣减金额表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间CURRENT_TIMESTAMPzhanghaovarchar20账号xingmingvarchar20姓名jinefloat金额kouchuyuanyinlongtext429496729扣除原因kouchuriqidate扣除日期(16)用户表用于存储用户个人信息的数据库表,用户表的表结构如表4.16所示。表4.16用户表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间zhanghaovarchar20账号mimavarchar20密码xingmingvarchar20姓名nianlingint年龄xingbievarchar10性别shoujivarchar20手机touxianglongtext429496729头像22(17)教练表用于存储教练个人信息的数据库表,教练表的表结构如表4.1所示。 表4.17教练表字段名称类型长度字段说明主键默认值idbigint编号主键addtimetimestamp创建时间jiaolianzhanghaovarchar20教练账号mimavarchar20密码jiaolianxingmingvarchar20教练姓名nianlingint年龄jiaolingint教龄lianxidianuavarchar20联系电话touxianglongtext42949头像23第5章系统实现5.1用户管理用户注册时按照提示输入信息,前端会对信息进行验证,通过后再发送给后端进行验证。验证通过后注册成功。系统注册页面如图5.1所示。图5.1系统注册界面用户在登录页面输入账号密码,验证通过后,则登录成功。登录页面如图5.2所示。图5.2登录界面24登录成功后,系统会进入个人中心页面,用户可以对个人信息进行查看或修改。个人中心页面如图5.3所示。图5.3个人中心界面实现该功能的关键代码如下:publicYonghuViewselectView(Wrapper<YonghuEntity>wrapper){ returnbaseMapper.selectView(wrapper); }publicRregister(@RequestBodyYonghuEntityyonghu){ //ValidatorUtils.validateEntity(yonghu);YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",yonghu.getZhanghao())); if(u!=null){ returnR.error("注册用户已存在"); } LonguId=newDate().getTime(); yonghu.setId(uId);yonghuService.insert(yonghu);returnR.ok();}publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YonghuEntityu=yonghuService.selectOne(new25EntityWrapper<YonghuEntity>().eq("zhanghao",username)); if(u==null||!u.getMima().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(u.getId(),username,"yonghu","用户"); returnR.ok().put("token",token); }管理员点击用户管理可以对用户进行查看和管理。用户管理界面如图5.4所示。图5.4用户管理界面实现该功能的关键代码如下:publicinterfaceYonghuServiceextendsIService<YonghuEntity>{PageUtilsqueryPage(Map<String,Object>params); List<YonghuVO>selectListVO(Wrapper<YonghuEntity>wrapper); YonghuVOselectVO(@Param("ew")Wrapper<YonghuEntity>wrapper); List<YonghuView>selectListView(Wrapper<YonghuEntity>wrapper); YonghuViewselectView(@Param("ew")Wrapper<YonghuEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<YonghuEntity>wrapper);}publicRlist(YonghuEntityyonghu){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu"));returnR.ok().put("data",yonghuService.selectListView(ew));}publicRupdate(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){yonghuService.updateById(yonghu);returnR.ok();}26publicRdelete(@RequestBodyLong[]ids){yonghuService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.2教练信息管理管理员点击教练管理可以对教练进行查看和管理。教练管理界面如图5.5所示。图5.5教练管理界面教练登录成功后,会进入个人中心页面,可以对个人信息查看或修改。教练个人信息界面如图5.6所示。图5.6教练个人信息界面27实现该功能的关键代码如下:publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){JiaolianEntityu=jiaolianService.selectOne(newEntityWrapper<JiaolianEntity>().eq("jiaolianzhanghao",username)); if(u==null||!u.getMima().equals(password)){ returnR.error("账号或密码不正确");}publicinterfaceJiaolianServiceextendsIService<JiaolianEntity>{PageUtilsqueryPage(Map<String,Object>params); List<JiaolianVO>selectListVO(Wrapper<JiaolianEntity>wrapper); JiaolianVOselectVO(@Param("ew")Wrapper<JiaolianEntity>wrapper); List<JiaolianView>selectListView(Wrapper<JiaolianEntity>wrapper); JiaolianViewselectView(@Param("ew")Wrapper<JiaolianEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<JiaolianEntity>wrapper);}publicRlist(JiaolianEntityjiaolian){EntityWrapper<JiaolianEntity>ew=newEntityWrapper<JiaolianEntity>(); ew.allEq(MPUtil.allEQMapPre(jiaolian,"jiaolian"));returnR.ok().put("data",jiaolianService.selectListView(ew));}publicRupdate(@RequestBodyJiaolianEntityjiaolian,HttpServletRequestrequest){jiaolianService.updateById(jiaolian);returnR.ok();}publicRdelete(@RequestBodyLong[]ids){jiaolianService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}}285.3钱包管理管理员点击用户管理,可以选择用户点击创建钱包为其创建钱包。创建钱包界面如图5.7所示。图5.7创建钱包界面钱包创建成功后,用户点击钱包管理可以查看钱包的信息。用户钱包界面如图5.8所示。图5.8用户钱包界面管理员点击钱包管理,可以对钱包进行查看和管理。钱包界面如图5.9所示。图5.9钱包管理界面29实现该功能的关键代码如下:publicinterfaceYonghuqianbaoServiceextendsIService<YonghuqianbaoEntity>{PageUtilsqueryPage(Map<String,Object>params);List<YonghuqianbaoVO>selectListVO(Wrapper<YonghuqianbaoEntity>wrapper);YonghuqianbaoVOselectVO(@Param("ew")Wrapper<YonghuqianbaoEntity>wrapper);List<YonghuqianbaoView>selectListView(Wrapper<YonghuqianbaoEntity>wrapper);YonghuqianbaoViewselectView(@Param("ew")Wrapper<YonghuqianbaoEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<YonghuqianbaoEntity>wrapper);}publicRquery(YonghuqianbaoEntityyonghuqianbao){EntityWrapper<YonghuqianbaoEntity>ew=newEntityWrapper<YonghuqianbaoEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghuqianbao,"yonghuqianbao"));YonghuqianbaoViewyonghuqianbaoView=yonghuqianbaoService.selectView(ew); returnR.ok("查询用户钱包成功").put("data",yonghuqianbaoView);}publicRlist(YonghuqianbaoEntityyonghuqianbao){EntityWrapper<YonghuqianbaoEntity>ew=newEntityWrapper<YonghuqianbaoEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghuqianbao,"yonghuqianbao"));returnR.ok().put("data",yonghuqianbaoService.selectListView(ew));}publicRupdate(@RequestBodyYonghuqianbaoEntityyonghuqianbao,HttpServletRequestrequest){yonghuqianbaoService.updateById(yonghuqianbao);returnR.ok();}publicRdelete(@RequestBodyLong[]ids){yonghuqianbaoService.deleteBatchIds(Arrays.asList(ids));30returnR.ok();}5.4会员卡管理用户可以进入会员卡管理页面,查看不同类型的会员卡信息。此页面可通过点击会员卡管理进入。同时,用户也可以通过输入会员卡号和会员卡类型进行查询,以便更快地找到所需的会员卡信息。会员卡界面如图5.10所示。图5.10会员卡界面管理员点击会员卡购买管理可以对会员卡进行查看和管理。会员卡购买管理界面如图5.11所示。图5.11会员卡购买管理界面实现该功能的关键代码如下:publicinterfaceHuiyuankagoumaiServiceextendsIService<HuiyuankagoumaiEntity>{PageUtilsqueryPage(Map<String,Object>params);List<HuiyuankagoumaiVO>selectListVO(Wrapper<HuiyuankagoumaiEntity>wrapper);HuiyuankagoumaiVOselectVO(@Param("ew")Wrapper<HuiyuankagoumaiEntity>wrapper);31List<HuiyuankagoumaiView>selectListView(Wrapper<HuiyuankagoumaiEntity>wrapper);HuiyuankagoumaiViewselectView(@Param("ew")Wrapper<HuiyuankagoumaiEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<HuiyuankagoumaiEntity>wrapper);}publicRlist(HuiyuankaEntityhuiyuanka){ EntityWrapper<HuiyuankaEntity>ew=newEntityWrapper<HuiyuankaEntity>(); ew.allEq(MPUtil.allEQMapPre(huiyuanka,"huiyuanka"));returnR.ok().put("data",huiyuankaService.selectListView(ew));}publicRupdate(@RequestBodyHuiyuankaEntityhuiyuanka,HttpServletRequestrequest){huiyuankaService.updateById(huiyuanka);returnR.ok();}publicRdelete(@RequestBodyLong[]ids){huiyuankaService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.5课程管理当用户点击课程管理时,可以按照课程名称、课程分类、上课地点等来查看游泳课程。游泳课程界面如图5.12所示。32图5.12游泳课程界面管理员点击游泳课程管理可以对课程进行查看和管理。游泳课程管理界面如图5.13所示。图5.13游泳课程管理界面实现该功能的关键代码如下:publicinterfaceKechengfenleiServiceextendsIService<KechengfenleiEntity>{PageUtilsqueryPage(Map<String,Object>params); List<KechengfenleiVO>selectListVO(Wrapper<KechengfenleiEntity>wrapper);KechengfenleiVOselectVO(@Param("ew")Wrapper<KechengfenleiEntity>wrapper);List<KechengfenleiView>selectListView(Wrapper<KechengfenleiEntity>wrapper);33 KechengfenleiViewselectView(@Param("ew")Wrapper<KechengfenleiEntity>wrapper); PageUtilsqueryPage(Map<String,Object>params,Wrapper<KechengfenleiEntity>wrapper);}publicRlist(YouyongkechengEntityyouyongkecheng){EntityWrapper<YouyongkechengEntity>ew=newEntityWrapper<YouyongkechengEntity>(); ew.allEq(MPUtil.allEQMapPre(youyongkecheng,"youyongkecheng"));returnR.ok().put("data",youyongkechengService.selectListView(ew));}PublicRupdate(@RequestBodyYouyongkechengEntityyouyongkecheng,HttpServletRequestrequest){youyongkechengService.updateById(youyongkecheng);returnR.ok();}publicRdelete(@RequestBodyLong[]ids){youyongkechengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.6课程预约管理用户点击课程购买后,通过点击预约课程对该课程进行预约。课程预约界面如图5.14所示。34图5.14课程预约界面教练点击预约课程管理可以对预约的课程进行查看和管理。课程预约管理界面如图5.15所示。图5.15课程预约管理界面教练点击审核按钮可以进行审核。教练审核界面如图5.16所示。图5.16教练审核界面35实现该功能的关键代码如下:publicinterfaceYuyuekechengServiceextendsIService<YuyuekechengEntity>{PageUtilsqueryPage(Map<String,Object>params);List<YuyuekechengVO>selectListVO(Wrapper<YuyuekechengEntity>wrapper);YuyuekechengVOselectVO(@Param("ew")Wrapper<YuyuekechengEntity>wrapper);List<YuyuekechengView>selectListView(Wrapper<YuyuekechengEntity>wrapper);YuyuekechengViewselectView(@Param("ew")Wrapper<YuyuekechengEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<YuyuekechengEntity>wrapper);}publicYuyuekechengVOselectVO(Wrapper<YuyuekechengEntity>wrapper){ returnbaseMapper.selectVO(wrapper);}publicYuyuekechengViewselectView(Wrapper<YuyuekechengEntity>wrapper){ returnbaseMapper.selectView(wrapper);}publicRlist(YuyuekechengEntityyuyuekecheng){EntityWrapper<YuyuekechengEntity>ew=newEntityWrapper<YuyuekechengEntity>(); ew.allEq(MPUtil.allEQMapPre(yuyuekecheng,"yuyuekecheng"));returnR.ok().put("data",yuyuekechengService.selectListView(ew));}publicRdetail(@PathVariable("id")Longid){YuyuekechengEntityyuyuekecheng=yuyuekechengService.selectById(id);returnR.ok().put("data",yuyuekecheng);}publicRdelete(@RequestBodyLong[]ids){yuyuekechengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}365.7收藏管理用户点击游泳课程查看游泳课程时,可以点击课程详情右上角的点我收藏,对当前课程进行收藏。课程收藏界面如图5.17所示。图5.17课程收藏界面管理员点击收藏管理可以对用户收藏的课程进行查看和管理。收藏管理界面如图5.18所示。图5.18收藏管理界面实现该功能的关键代码如下:publicinterfaceStoreupServiceextendsIService<StoreupEntity>{PageUtilsqueryPage(Map<String,Object>params); List<StoreupVO>selectListVO(Wrapper<StoreupEntity>wrapper); StoreupVOselectVO(@Param("ew")Wrapper<StoreupEntity>wrapper); List<StoreupView>selectListView(Wrapper<StoreupEntity>wrapper); StoreupViewselectView(@Param("ew")Wrapper<StoreupEntity>wrapper); PageUtilsqueryPage(Map<String,Object>params,Wrapper<StoreupEntity>wrapper);37}publicStoreupVOselectVO(Wrapper<StoreupEntity>wrapper){ returnbaseMapper.selectVO(wrapper);}publicStoreupViewselectView(Wrapper<StoreupEntity>wrapper){ returnbaseMapper.selectView(wrapper);}publicRlist(StoreupEntitystoreup){ EntityWrapper<StoreupEntity>ew=newEntityWrapper<StoreupEntity>(); ew.allEq(MPUtil.allEQMapPre(storeup,"storeup"));returnR.ok().put("data",storeupService.selectListView(ew));}publicRupdate(@RequestBodyStoreupEntitystoreup,HttpServletRequestrequest){storeupService.updateById(storeup);returnR.ok();}publicRdelete(@RequestBodyLong[]ids){storeupService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.8评论留言管理当用户点击游泳课程时,可以选择自己喜欢的课程,然后可以在评论区发表自己的评论。评论留言界面如图5.19所示。图5.19评论留言界面38管理员进入游泳课程管理页面后,点击查看评论,在评论页面,可以对评论进行回复,游泳课程界面如图5.20,回复评论界面如图5.21所示。图5.20游泳课程界面图5.21回复评论界面实现该功能的关键代码如下:PublicinterfaceDiscussyouyongkechengServiceextendsIService<DiscussyouyongkechengEntity>{ PageUtilsqueryPage(Map<String,Object>params);List<DiscussyouyongkechengVO>selectListVO(Wrapper<DiscussyouyongkechengEntity>wrapper);DiscussyouyongkechengVOselectVO(@Param("ew")Wrapper<DiscussyouyongkechengEntity>wrapper);List<DiscussyouyongkechengView>selectListView(Wrapper<DiscussyouyongkechengEntity>wrapper);DiscussyouyongkechengViewselectView(@Param("ew")Wrapper<DiscussyouyongkechengEntity>wrapper);39PageUtilsqueryPage(Map<String,Object>params,Wrapper<DiscussyouyongkechengEntity>wrapper);}publicDiscussyouyongkechengVOselectVO(Wrapper<DiscussyouyongkechengEntity>wrapper){ returnbaseMapper.selectVO(wrapper);}publicDiscussyouyongkechengViewselectView(Wrapper<DiscussyouyongkechengEntity>wrapper){ returnbaseMapper.selectView(wrapper);}publicRlist(DiscussyouyongkechengEntitydiscussyouyongkecheng){ EntityWrapper<DiscussyouyongkechengEntity>ew=newEntityWrapper<DiscussyouyongkechengEntity>(); ew.allEq(MPUtil.allEQMapPre(discussyouyongkecheng,"discussyouyongkecheng"));returnR.ok().put("data",discussyouyongkechengService.selectListView(ew));}publicRupdate(@RequestBodyDiscussyouyongkechengEntitydiscussyouyongkecheng,HttpServletRequestrequest){discussyouyongkechengService.updateById(discussyouyongkecheng);returnR.ok();}publicRdelete(@RequestBodyLong[]ids){discussyouyongkechengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}40第6章系统测试6.1测试目的在经过长期的测试与修改下,通过不断地进行测试,一步一步的发现系统中的问题,然后对问题进行一次又一次的修改,使该游泳馆管理系统更加完善,最后争取没有漏洞和Bug,成为一个接近完美无暇的游泳馆管理系统的网站。还要在测试修改的过程中吸取经验:自己为什么会犯这种错误、代码的编写哪个逻辑环节出了错误、又有哪些地方是因为自己的粗心大意造成的等等。使系统本身接近完美以及以后的维护更加快捷方便。对于在线游泳馆管理系统,要对其进行一个整体的测试。测试根据各个模块的功能,以及各功能之间的相互联系,协同关系来进行操作。尤其在用户、管理员两个的数据库这一地方进行多次测试以及调整。通过一次又一次的系统测试,保证在线游泳馆管理系统能够在上线面向开放使用后是一个方面、安全、省心的系统。6.2测试方法黑盒和白盒测试是软件测试中常用的测试方法。黑盒测试主要面对整个功能模块,检查系统在用户使用过程中是否能够正常工作,包括功能的正确性、前后端接口的调用是否正确、输入输出格式的正确性、数据操作的准确性等。通过这种测试方法,能够很好地检验系统的用户体验和功能实现情况。白盒测试则主要关注代码的语句覆盖和条件覆盖等方面,通过对代码语句和逻辑进行检验,能够找到黑盒测试无法覆盖的错误,进一步提高测试的全面性和准确性。通过这种测试方法,可以很好地检查系统的代码质量和逻辑准确性。对于游泳馆管理系统的测试需要结合白盒测试和黑盒测试。白盒测试用来检查代码质量和逻辑准确性,黑盒测试则用于整体功能测试以检查用户使用过程中的实际表现和用户体验。采用这种全面的测试方法,能够及时发现和解决问题,确保系统的质量和稳定性。6.3功能测试6.3.1用户管理41用户输入正确的信息后,点击注册,会看到注册成功的提示,注册成功界面如图6.1所示。图6.1注册成功界面管理员在用户管理可以看到注册成功的用户信息,用户管理界面如图6.2所示。图6.2用户管理界面42管理员可以修改用户的信息。信息修改界面如图6.3所示,修改成功后,可以在页面看到修改后的信息,用户管理界面如图6.4所示。图6.3信息修改界面图6.4用户管理界面6.3.2教练信息管理教练可以通过后台管理的注册教练功能进行注册,教练注册界面如图6.5所示。43图6.5教练注册界面管理员点击教练管理可以查看刚才注册的教练信息,表示注册成功,教练管理界面如图6.6所示。图6.6教练管理界面44管理员点击修改可以对教练的信息进行修改。信息修改界面如图6.7所示,修改成功后,可以在页面看到修改后的信息。教练管理界面如图6.8所示。图6.7信息修改界面图6.8教练管理界面6.3.3课程管理当用户点击游泳课程时,默认展示全部的游泳课程,全部游泳课程界面如图6.9所示。45图6.9全部游泳课程界面管理员在游泳课程管理页面可以修改课程的信息。详情修改界面如图6.10所示,修改成功后,可以在游泳课程管理页面看到修改成功,课程管理界面如图6.11所示。图6.10详情修改界面46图6.11课程管理界面6.3.4课程预约管理用户购买完课程后,可进入预约页面并点击预约课程按钮。在该页面,用户根据提示填写信息。提交后进行预约。课程预约界面如图6.12所示。图6.12课程预约界面47用户提交后在预约课程管理可以查看预约的课程,预约课程管理界面如图6.13所示。图6.13预约课程管理界面教练可在预约课程管理中查看用户预约的课程信息,点击审核进行审核,预约课程管理界面如图6.14所示,教练审核界面如图6.15所示。图6.14预约课程管理界面图6.15教练审核界面审核通过后,可以在预约课程管理看到审核状态为通过,通过后,预约课程管理界面如图6.16所示。图6.16预约课程管理界面486.3.5收藏
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海立达学院《安全管理学》2025-2026学年第一学期期末试卷(A卷)
- 2026年场内机动车辆安全培训课件
- 上海立达学院《Android 移动开发》2025-2026学年第一学期期末试卷(B卷)
- 2026年房地产销售冠军话术实战技巧
- 2026年音乐版权保护对乐器音源采样产业影响洞察
- 2026年初中语文实践活动育人设计
- 2026年输血不良反应的识别与处理预案
- 大连东软信息学院《Android 应用开发课程设计》2025-2026学年第一学期期末试卷(B卷)
- 上海科技大学《安全生产与环境保护》2025-2026学年第一学期期末试卷(B卷)
- 磁共振兼容DSA系统研发策略
- 架空线更换绝缘导线施工技术方案
- 孕中期超声软指标在胎儿染色体异常产前诊断中的价值探究
- 团播运营合同范本
- 2026年国家能源集团招聘考试(会计)模拟试题及答案
- 2025年益阳市教育系统教师招聘考试笔试试题(含答案)
- 煤矿安全培训课件郑玉龙
- 泉室施工方案
- 报联商培训课件
- 民航安保业务知识培训课件
- DB37-2374-2018 锅炉大气污染物排放标准
- 广师大环境学概论课件第4章 自然资源的利用与保护
评论
0/150
提交评论