基于SpringBoot的房屋租赁系统的设计与实现_第1页
基于SpringBoot的房屋租赁系统的设计与实现_第2页
基于SpringBoot的房屋租赁系统的设计与实现_第3页
基于SpringBoot的房屋租赁系统的设计与实现_第4页
基于SpringBoot的房屋租赁系统的设计与实现_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章引言1.1选题背景及意义1.1.1选题背景城市化浪潮与住房需求危机:中国正处于城市化进程的高速发展阶段,城市人口不断增加,对住房资源的需求呈现爆发式增长。然而,高昂的房价使得购房难度急剧提升,推动了租房需求的迅速膨胀。随着互联网技术的飞速进步,它的影响已经深入到我们生活的方方面面,包括我们的生活习惯、消费方式以及交易手段,都经历了革命性的变化。在这一大背景下,互联网平台为房屋租赁行业带来了全新的可能性,使得信息获取更加便捷,交易更为高效。设计一套创新的房屋租赁系统,将互联网技术巧妙融入房地产市场,为用户提供高效、安全的租房服务,已成为推动行业进步的关键一环。市场需求与社会问题的挑战:经市场调研显示,当前房屋租赁市场存在诸多问题,包括信息不对称、租金价格不透明、安全隐患等。这些问题严重影响了用户的租房体验,同时也增加了租房交易过程中的不确定性。因此,设计一个系统来有针对性地解决这些问题,提高市场透明度和安全性,以满足用户需求,不仅具有巨大的社会价值,也在市场中具备显著的推动作用。1.1.2选题意义设计房屋租赁系统平台在当今社会具有重要的社会和经济意义。随着中国城市化的飞速发展,城市人口激增引发了对住房资源的迫切需求。然而,高昂的房价使得购房成本居高不下,租房需求因此急剧上升。在这一情境下,建立一套高效、安全、用户友好的房屋租赁系统成为解决当代城市住房问题的迫切需求。互联网技术的飞速发展为房屋租赁领域带来了创新的机遇。通过设计房屋租赁系统,将先进的互联网技术与房地产市场紧密结合,有助于解决市场中存在的信息不对称、租金不透明、安全隐患等问题。这不仅提升了相关企业和机构在市场中的竞争力,同时也满足了不断增长的租房需求,为用户提供了更为便捷的租房体验。从经济角度看,房屋租赁系统的设计将促进经济增长和社会稳定。一个稳定的房屋租赁市场创造了大量的就业机会,同时也带动了房地产、建筑等相关产业的繁荣。通过解决住房问题,提升居民生活质量,该系统的出现将助力促进社会的和谐与稳固。因此,开发关于房屋租赁的系统平台不仅具有巨大的社会意义,还可以为市场注入新的活力,推动经济的增长,实现社会的和谐发展。1.2国内外发展现状房屋租赁系统在国内外都经历了快速发展,并且受到了广泛关注。在国内,随着城市化进程的加速和人口流动的增加,房屋租赁市场呈现出蓬勃发展的态势。大城市如北京、上海、深圳等的租赁需求持续增长,推动了房屋租赁行业的繁荣。同时,政府出台了一系列支持租赁市场发展的政策,促进了租赁市场的规范化和健康发展。在技术方面,国内房屋租赁系统的开发逐渐向着智能化、数字化方向发展,通过互联网、大数据等技术的应用,提高了租赁服务的效率和质量。在国外,房屋租赁市场也呈现出多样化和国际化的趋势。一些发达国家如美国、英国、澳大利亚等,房屋租赁市场规模庞大,租赁服务的种类丰富,涵盖了公寓、独立房屋、公寓等多种形式。此外,一些新兴国家和地区也开始关注房屋租赁市场的发展,并采取了一些政策和措施促进租赁市场的健康发展。在技术方面,国外房屋租赁系统的发展更加注重用户体验和服务创新,不断引入新的科技手段,提高租赁服务的便捷性和智能化水平。总的来说,国内外房屋租赁系统的发展都呈现出多样化和创新性,不断推动着房屋租赁市场的发展和完善。未来随着科技的不断进步和市场需求的不断变化,房屋租赁系统将会更加智能化、便捷化,为用户提供更优质的租赁体验。1.3论文研究目标和内容设计的房屋租赁平台旨在充分利用互联网技术,为房东和租户提供高效、便捷、安全的房屋租赁服务。通过系统的数字化和智能化设计,实现房屋信息的精准匹配、在线预约以及下单等功能,以提升整个租赁流程的便利性和用户体验,促进房屋租赁市场的健康发展。基于以上目标,该房屋租赁系统包含前台、管理员、用户和房东后台四个主要模块。在用户前台,用户可以访问首页、查看房屋信息、浏览公告资讯、提出意见反馈,并进行后台管理操作。管理员后台提供房屋信息管理、预约看房管理、定金留房管理、租赁订单管理和房屋评价等功能。房东后台则主要包括房屋信息管理、预约看房咨询、定金留房管理和租赁订单管理等功能。用户后台提供预约看房管理、房屋评价管理、定金留房管理和我的收藏等功能。1.4论文结构安排第1章引言在引言部分,我们将探讨选题的来源及其在实践中的关键作用,对国内外同领域的研究进展和现状进行分析。此外,本章节将清晰地界定论文要研究的目的和探讨的主题内容,并概述论文的整体结构。第2章系统需求分析本章将对房屋租赁系统的功能和非功能需求进行深入分析。通过对用户、房东和管理员的需求进行细致剖析,为后续系统设计提供基础。同时,也将讨论系统的非功能性需求,如性能、安全性等方面的考虑。第3章系统设计在论文系统设计部分,将深入阐述整个系统的设计步骤。这包括整体设计理念、系统架构的规划、全面的功能规划,以及各个具体功能模块的设计细节。例如管理员后台功能模块等、房东后台功能模块、前台功能模块、用户后台功能模块等。数据库设计也将在此章节中得到详细讨论,包括E-R模型设计、实体属性设计以及数据库的详细表设计。第4章系统开发与实现在这一章中,将讨论系统的技术选型、开发环境的建立,以及各主要模块的具体实现过程。每个模块的实现将在此得到详细说明,包括各模块的功能和相互关系。第5章测试系统测试是保障系统功能正常运行的关键步骤。在本章节,我们将描述系统功能测试和非功能测试的执行过程,以确保系统在各方面的性能和可靠性。系统功能测试将验证系统是否按照需求规格书中定义的功能进行操作,而非功能性的性能指标则关注系统的性能、安全性等方面的表现。经过这些测试环节,我们能够全面评估系统的质量,并确保其能够满足用户的需求和期望。第6章总结与展望在论文的最后一章,将对整个研究过程进行总结,强调研究的主要贡献和创新点。同时,对未来可能的改进和扩展进行展望,为相关领域的进一步研究提供参考。最后,附上参考文献和致谢以表示对相关研究和贡献者的尊重和感激。第2章系统需求分析2.1系统功能需求分析2.1.1用户需求分析本系统是一款房屋租赁系统,允许用户进行登录和注册。注册并登录后,用户可以在系统前台查看各种房屋信息,阅读公告资讯,并可向管理员提出意见反馈。此外,用户还可以在后台管理系统中轻松管理预约看房、支付定金保留房屋、处理租赁订单、接收消息提醒,以及管理个人收藏,以应对他们的不同需求。具体用例图如图2.1所示。图2.1用户角色用例图2.1.2房主需求分析在系统注册并登录后,房主可以在个人中心更新其登录密码和个人资料。其次也是最主要的是能够对包含房屋信息、预约看房、定金留房等在内的需求功能进行管理操作。具体的相关需求用例图如下图2.2所示。图2.2房主用例图2.1.3管理员需求分析系统管理员注册好账号并登录以后,能够对房主及用户进行管理,包括查询、修改、删除其信息。管理员也能够对用户和房主所能行使的各类操作进行一个审核、修改、删除作用。除此之外管理员还能够对系统进行管理,包括更换轮播图、修改公告资讯、回复意见反馈。如下图2.3所示。图2.3管理员角色用例图2.2系统非功能需求分析2.2.1性能需求响应时间短,系统应该具有快速的响应时间,确保用户在操作系统时能够获得即时的反馈。:系统应该具有快速的响应时间,确保用户在操作系统时能够获得即时的反馈。吞吐量大系统应该具有足够的吞吐量,能够支持大量用户的同时访问,不影响系统的性能。并发性强系统应该具备良好的并发处理能力,能够同时处理多个用户的请求而不影响系统的稳定性和性能。2.2.2安全需求能进行身份认证与授权确保系统能够正确地验证用户的身份,并根据用户的权限进行授权,保障系统的安全性。能防止恶意进攻加强系统的安全防护机制,预防各类恶意攻击,保障系统的稳定运行和用户信息安全。2.3本章小结在本章中,对房屋租赁系统进行了彻底的需求分析。起初,对系统的功能需求进行了细致的整理,接着通过深入的业务流程分析,确定了系统必须具备的各项功能。通过用例图清晰展示了系统中不同参与者的类型,为进一步的设计和开发奠定了基础。利用用例分析的方法,对系统中每个角色的功能需求进行了详尽的阐述,确保系统能够迎合不同用户的具体使用需求。同时,对非功能性需求进行了全方面的考量,尤其重视系统的安全性和用户友好性方面。这为第三章所要进行的设计工作提供了有力的支持,确保系统在设计阶段能够充分考虑到各项需求,提高系统的整体性能和用户体验。

第3章系统设计3.1系统总体设计该系统的框架遵循MVC(Model-View-Controller)设计模式,将其划分为三个主要部分:用户界面层、业务逻辑层和数据存储层。这样的设计思路旨在实现业务的分离,确保每个功能模块的内聚性高,耦合性低。在代码编写过程中,对通用代码和相似逻辑代码进行了封装和优化,以提高代码的可复用性和可维护性,并使代码逻辑更加清晰易懂。表示层主要由网页浏览器组成,用户通过浏览器访问系统的前端网页。利用Java语言在前端网页中实在用户进入系统后,逻辑层负责调用相应的业务功能模块。系统中包括房屋信息、预约信息、订单信息等商业运作模块,这些模块将根据统一的商业逻辑自动应用来实现业务逻辑,并通过Ajax技术与后端服务进行通信,以此实现网页的局部内容实时更新。在数据管理方面,系统使用了MySQL数据库来存储和管理数据。为了确保数据的一致性、精简性和存储的高效率,系统引入了Mybatis-plus持久性架构,通过它实现Java对象与数据库表之间的映射关系。系统架构图如下3.1所示。图3.1系统架构图3.2系统总体功能设计依据第二章的需求评估,系统根据职责分配将用户分为管理员、房主、后台用户和前端用户四大类角色。细分模块如下:3.2.1管理员功能模块管理员功能模块在该系统中扮演着最为重要的角色,他是系统能够正常投入运营使用最不可缺少的关键一环。通过这一模块管理员可以有效控制和协调房主和用户之间的关联和需求,其所具备的功能如下图3.2所示。图3.2管理员功能结构图3.2.2房主功能模块对于房主而言,后台系统的主要职能包括:管理房屋详细信息、处理定金保留房屋、审核看房预约以及跟踪租赁交易订单等操作。示意图如下图3.3所示。图3.3房主功能结构图3.2.3用户后台功能模块在用户后台系统中,核心功能涵盖了:在定金留房管理中进行查看留房详情和租赁下单、在租赁订单管理中查看订单详情以及进行房屋评价等关键操作。如下图3.4所示。图3.4用户后台功能结构图3.2.4前台功能模块用户前台的主要功能包括:主页浏览、房产信息展示、公告与新闻资讯、用户留言反馈以及后台管理系统入口等。相关的功能模块结构图示如下3.5所示。图3.5前台功能结构图3.3数据库设计3.3.1数据库E-R模型设计数据库结构概念设计的目的是定义数据模型,确定数据存储的组织结构和之间的关系,以满足用户需求和系统要求,并为后续的数据库设计和实现提供基础。E-R图是一种广泛应用于数据库概念结构设计的方法,该房屋租赁系统也采用E-R图进行概念结构设计,其E-R图如下3.6所示。图3.6系统数据库E-R模型3.3.2实体属性设计(1)本系统的使用者分为管理员、用户、房主三个角色,其实体属性设计图如下图所示。图3.7使用者实体属性设计图(2)房屋信息属性设计系统中房屋含有的属性为地区、位置、朝向、楼层、名称、类型、面积、设施、状态、视频、租金、房主账号、房主姓名、联系电话。实体属性设计图如图3.所示图3.8房屋信息属性设计图(3)订单信息属性设计订单信息的属性涵盖了房屋名称、房屋类型、房屋图片、面积、租赁月数、订单备注、评价状态、用户名、手机号、租金、订单金额、房主账号、租赁日期、姓名、身份证号、支付状态、审核状态、审核回复。实体属性设计图如图3.所示。图3.9订单信息属性设计图(4)意见反馈属性设计意见反馈的属性主要包括消息状态、是否去回复。其实体属性设计图如图3.所示。图3.10意见反馈属性设计图3.3.3数据库详细表设计(1)数据库表概览本系统数据库包含13个表格来存储数据,详细的关系表结构见表3.1所示。表3.1本系统数据库表概览表名表含义字段数chat意见反馈7dingjinliufang定金留房15fangwuleixing房屋类型3fangwupingjia房屋评价11fangwuxinxi房屋信息20fangzhu房主9news公告资讯6users管理员5xiaoxitixin消息提醒8yonghu用户9yuyuekanfang预约看房13zulindingdan租赁订单20storeup房屋收藏9(2)chat表(意见反馈表)该表格旨在存储用户及管理员间的反馈意见信息。chat表的设计布局详见表3.2所示。表3.2意见反馈表字段数据类型字段名主键/外键字段值约束idbigint(20)反馈编号PNOTNULLaddtimetimestamp添加时间NOTNULLuseridbigint(20)用户idFNOTNULLadminidbigint(20)管理员idFNULLasklongtext疑问NULLreplylongtext回复NULLisreplyint(11)状态NULL(3)dingjinliufang表(定金留房表)用于记录用户关于定金留房的相关信息。dingjinliufang表设计结构如表3.3所示。表3.3dingjinliufang表字段数据类型字段名主键/外键字段值约束idbigint(20)定金留房编号PNOTNULLaddtimetimestamp添加时间NOTNULLfangwumingchengvarchar(200)房屋名称NULLfangwumianjivarchar(200)房屋面积NULLfangwuleixingvarchar(200)房屋类型NULLfangwutupianvarchar(200)房屋图片NULLdingjinjineint(11)定金金额NULLxiadanriqidate下单日期NULLfangzhuzhanghaovarchar(200)房主账号NULLfangwuzujinint(11)房屋租金NULLzulinzhuangtaivarchar(200)租赁状态NULLliuyanbeizhuvarchar(200)留言备注NULLyonghumingvarchar(200)用户名NULLshoujivarchar(200)手机NULLispayvarchar(200)是否支付NULL(4)fangwuleixing表(房屋类型信息表)此表格的功能是存储房屋类型数据。fangwuleixing表的设计布局见表3.4所示。表3.4fangwuleixing表字段数据类型字段名主键/外键字段值约束idbigint(20)房屋类型编号PNOTNULLaddtimetimestamp添加时间NOTNULLfangwuleixingvarchar(255)房屋类型NOTNULL(5)fangwupingjia表(房屋评价信息表)用于记录房屋评价的表。fangwupingjia表设计结构见表3.5所示。表3.5fangwupingjia表字段数据类型字段名主键/外键字段值约束idbigint(20)房屋评价编号PNOTNULLaddtiemtimestamp添加时间NOTNULLfangwumingchengvarchar(200)房屋名称NULLfangwuleixingvarchar(200)房屋类型NULLfangwumianjivarchar(200)房屋面积NULLfangwutupianvarchar(200)房屋图片NULLfangwupingfenvarchar(200)房屋评分NOTNULLfangwupingjialongtext房屋评价NULLfangzhuzhanghaovarchar(200)房主账号NULLpingjiariqidate评价日期NULLyonghumingvarchar(200)用户名NULL(6)fangwuxinxi表(房屋信息表)该表格旨在记录房屋的相关信息。fangwuxinxi表的设计布局详见表3.6所示。表3.6fangwuxinxi表字段数据类型字段名主键/外键字段值约束idbigint(20)房屋信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLfangwumingchengvarchar(200)房屋名称NOTNULLfangwuleixingvarchar(200)房屋类型NOTNULLfangwutupianvarchar(200)房屋图片NULLdiquvarchar(200)房屋所在地区NOTNULLweizhivarchar(200)房屋所在位置NOTNULLchaoxiangvarchar(200)房屋朝向NULLloucengvarchar(200)房屋楼层NULLlouhaovarchar(200)房屋楼号NULLfangwumianjivarchar(200)房屋面积NULLfangwusheshivarchar(200)房屋设施NULLfangwuzhuangtaivarchar(200)房屋状态NOTNULLfangwushipinvarchar(200)房屋视频NULLfangwuzujinint(11)房屋租金NOTNULLfangwujieshaolongtext房屋介绍NULLfangzhuzhanghaovarchar(200)房主账号NULLfangzhuxingmingvarchar(200)房主姓名NULLlianxidianhuavarchar(200)联系电话NULLclicktimedatetime访问时间NULL(7)fangzhu表(房主信息表)此表格的功能是存储房主相关信息数据。fangzhu表的设计布局见表3.7所示。表3.7fangzhu表字段数据类型字段名主键/外键字段值约束idbigint(20)房主信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLfangzhuzhanghaovarchar(200)房主账号NOTNULLmimavarchar(200)密码NOTNULLfangzhuxingmingvarchar(200)房主姓名NULLxingbievarchar(200)性别NULLzhaopianvarchar(200)照片NULLlianxidianhuavarchar(200)联系电话NOTNULLshenfenzhengvarchar(200)身份证NOTNULL(8)news表(公告资讯信息表)此表格用于保存公告和新闻资讯的数据。News表的设计布局在表3.8中详细列出。表3.8news表字段数据类型字段名主键/外键字段值约束idbigint(20)公告资讯信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLtitlevarchar(200)标题NOTNULLintroductionlongtext介绍NULLpicturevarchar(200)图片NOTNULLcontentlongtext内容NOTNULL(9)storeup表(收藏信息表)用于记录待客户收藏信息的表。收藏表设计结构如表3.9所示。表3.9storeup表字段数据类型字段名主键/外键字段值约束idbigint(20)房主信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLuseridbigint(20)用户idFNOTNULLrefidbigint(20)收藏idNULLtablenamevarchar(200)表名NULLnamevarchar(200)收藏名称NOTNULLpicturevarchar(200)收藏图片NOTNULLtypevarchar(200)类型(1:收藏,21:赞,22:踩)NULLinteltypevarchar(200)推荐类型NULL(10)user表(管理员信息表)此表格的功能是存储房主相关信息数据。fangzhu表的设计布局见表3.7所示。表3.10user表字段数据类型字段名主键/外键字段值约束idbigint(20)管理员信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLpasswordvarchar(100)密码NOTNULLrolevarchar(100)角色NULLusernamevarchar(100)用户名NOTNULL(11)xiaoxitixing表(消息提醒信息表)用于记录消息提醒信息的表。xiaoxitixing表设计结构如表3.11所示。表3.11xiaoxitixing表字段数据类型字段名主键/外键字段值约束idbigint(20)消息提醒信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLtongzhibiaotivarchar(200)通知标题NOTNULLtongzhineironglongtext通知内容NULLtongzhiriqidate通知日期NULLyonghumingvarchar(200)用户名NOTNULLxingmingvarchar(200)姓名NULLshoujivarchar(200)手机NULL(12)yonghu表(用户信息表)此表格的功能是存储与用户相关的信息数据。yonghu表的设计布局见表3.7所示。表3.12yonghu表字段数据类型字段名主键/外键字段值约束idbigint(20)用户信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLyonghumingvarchar(200)用户名NOTNULLmimavarchar(200)密码NOTNULLxingmingvarchar(200)姓名NOTNULLxingbievarchar(200)性别NULLtouxiangvarchar(200)头像NULLshoujivarchar(200)手机NULLshenfenzhengvarchar(200)身份证NULL(13)yuyuekanfang表(预约看房信息表)本表旨在存储有关预约看房的数据。yuyuekanfang表的设计在表3.13中进行了详细展示。表3.13yuyuekanfang表字段数据类型字段名主键/外键字段值约束idbigint(20)预约看房信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLfangwumingchengvarchar(200)房屋名称NULLfangwuleixingvarchar(200)房屋类型NULLfangwutupianvarchar(200)房屋图片NULLfangzhuzhanghaovarchar(200)房主账号NULLlianxidianhuavarchar(200)联系电话NULLkanfangshijiandatetime看房时间NULLyuyuebeizhuvarchar(200)预约备注NULLyonghumingvarchar(200)用户名NULLshoujivarchar(200)手机NULLsfshvarchar(200)是否审核NULLshhflongtext审核回复NULL(14)zulindingdan表(租赁订单信息表)用于记录租赁订单信息的表。zulindingdan表设计结构如表3.14所示。表3.14zulindingdan表字段数据类型字段名主键/外键字段值约束idbigint(20)房主信息编号PNOTNULLaddtimetimestamp添加时间NOTNULLfangwumingchengvarchar(200)房屋名称NULLfangwuleixingvarchar(200)房屋类型NULLfangwutupianvarchar(200)房屋图片NULLfangwumianjivarchar(200)房屋面积NULLfangwuzujinint(11)房屋租金NULLNULLzulinyueshuint(11)租赁月数NOTNULLdingdanjineint(11)订单金额NULLdingdanbeizhuvarchar(200)订单备注NULL3.4本章小结本系统先从其整体的架构设计开始入手,确定了使用当下较为流行的MVC结构旨在实现业务的分离,确保每个功能模块的内聚性高,耦合性低。在代码编写过程中,对通用代码和相似逻辑代码进行了封装和优化,以提高代码的可复用性和可维护性,并使代码逻辑更加清晰易懂。明确了系统的架构后,紧接着按照预想的系统角色功能,对他们的功能模块进行分析和设计。完成以上步骤后,识别系统中的各个实体,并绘制它们的属性图,进而设计数据库架构。搜集必要的数据以实现系统的设计工作。第4章系统开发与实现4.1系统技术选型该系统后端开发使用了SpringBoot框架,并与MyBatis-Plus持久化框架相结合,以实现快速开发和简化数据库操作。前端采用了Layui框架,提供了简洁易用的界面组件和样式,以提高开发效率和用户体验。MySQL作为数据库,提供了可靠的数据存储和高效的查询功能。SpringBoot:通过自动化配置和快速启动,简化了Spring应用的开发和部署流程,增强了开发效率。MyBatis-Plus是在MyBatis的基础上构建的,它为MyBatis增加了一系列的附加功能,更多便捷的增删改查操作方法和代码生成功能,减少了开发者的重复劳动。Layui:提供了丰富的界面组件和模块化的前端开发框架,使得前端开发更加简单、快速,并且页面效果美观。MySQL:作为一种轻量级的关系型数据库管理系统,具有稳定性高、性能优良、易于管理等优点,适用于中小型应用场景。4.2开发环境建立操作系统:MicrosoftWin1064位专业版;开发语言:Java使用框架:SpringBoot前端技术:JavaScript、VUE.js(2.X)、css3开发工具:IDEA(2020版)/MyEclipse(10)/Eclipse、VisualStudioCode数据库:MySQL5.7.26数据库管理工具:phpstudy/NavicatJDK版本:Javasdk8Maven:apache-maven3.8.1-bin4.3实现步骤1)搜集和整理房屋租赁系统的详细需求,包括管理员、用户、房东等角色的功能要求,并获取相关房屋租赁信息,例如房屋详情、租约条款等。2)运用网络爬虫技术抓取房屋租赁相关数据,经过清洗和处理后,将数据储存至MySQL数据库中。3)使用SpringBoot框架和Java编程语言,与MyBatis持久层框架相集成,开发后端接口,系统旨在实现对数据库中房屋租赁信息的添加、删除、修改和检索等基本功能,同时保证接口的安全性及运行效率。4)借助Layui框架、HTML、CSS、JavaScript等前端语言,构建用户友好的前端页面,覆盖管理员、租客、房东、前台服务人员等各种角色的操作界面。5)实施前后端的整合工作,并执行单元测试以及集成测试,以此来验证系统的稳定性和可靠性。6)对系统进行性能优化,包括但不限于调整数据库索引、缓存等,以提升系统在高负载情况下的运行效率。7)利用Webpack工具对前端项目进行打包,以优化页面加载速度和减少资源请求次数。4.4主要模块的实现4.4.1用户登录注册页用户登录注册页是进入网站的必经之路。只有完成注册登录,才能正常访问网站。在注册页,各项信息需符合规定:字段长度有限制,年龄必须是整数,手机号必须为11位数字,身份证号必须符合标准的17位格式。具体实例如图4.1所示。图4.1用户登录注册页面核心实现代码:/*登录*/@IgnoreAuth@PostMapping("/login")publicResponseEntity<?>login(@RequestParam("username")Stringusername,@RequestParam("password")Stringpassword,@RequestParam("captcha")Stringcaptcha,HttpServletRequestrequest){YonghuEntityuser=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("yonghuming",username));if(user==null||!user.getMima().equals(password)){returnnewResponseEntity<>("账号或密码不正确",HttpStatus.BAD_REQUEST);}Stringtoken=tokenService.generateToken(user.getId(),username,"yonghu","用户");returnnewResponseEntity<>(Map.of("token",token),HttpStatus.OK);}/***注册*/@IgnoreAuth@PostMapping("/register")publicResponseEntity<?>register(@RequestBodyYonghuEntityyonghu){//注释掉的代码可能是用于实体校验的,如果需要可以保留或根据实际情况修改YonghuEntityexistingUser=yonghuService.findByUsername(yonghu.getYonghuming());if(existingUser!=null){returnResponseEntity.badRequest().body("注册用户已存在");}LonguId=System.currentTimeMillis();yonghu.setId(uId);yonghuService.insert(yonghu);returnResponseEntity.ok().build();}publicYonghuEntityfindByUsername(Stringusername){returnselectOne(newEntityWrapper<YonghuEntity>().eq("yonghuming",username));}4.4.2前台系统功能模块当游客打开系统网址时,最先看到的就是首页界面。在页面的侧边,游客可以看到房屋租赁系统的导航栏,其中包括首页、房屋信息、公告资讯、个人中心、留言反馈、后台管理等选项。这个界面为游客提供了系统的概览以及对各个部分的访问。具体实例如图4.2所示。图4.2前台房屋信息查看页核心实现代码:packagecom.service;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.baomidou.mybatisplus.service.IService;importcom.entity.FangwuxinxiEntity;importcom.entity.view.FangwuxinxiView;importcom.entity.vo.FangwuxinxiVO;importcom.utils.PageUtils;importjava.util.List;importjava.util.Map;importorg.apache.ibatis.annotations.Param;publicinterfaceFangwuxinxiServiceextendsIService<FangwuxinxiEntity>{PageUtilsqueryPage(Map<String,Object>params);List<FangwuxinxiVO>selectListVO(Wrapper<FangwuxinxiEntity>wrapper);FangwuxinxiVOselectVO(@Param("ew")Wrapper<FangwuxinxiEntity>wrapper);List<FangwuxinxiView>selectListView(Wrapper<FangwuxinxiEntity>wrapper);FangwuxinxiViewselectView(@Param("ew")Wrapper<FangwuxinxiEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<FangwuxinxiEntity>wrapper);}图4.3用户个人中心页面部分核心实现代码如下:@RequestMapping({"/logout"})publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}@RequestMapping({"/session"})publicRgetCurrUser(HttpServletRequestrequest){Longid=(Long)request.getSession().getAttribute("userId");YonghuEntityuser=(YonghuEntity)this.yonghuService.selectById(id);returnR.ok().put("data",user);}@IgnoreAuth@RequestMapping({"/resetPass"})publicRresetPass(Stringusername,HttpServletRequestrequest){YonghuEntityuser=(YonghuEntity)this.yonghuService.selectOne((newEntityWrapper()).eq("yonghuming",username));if(user==null){returnR.error("账号不存在");}else{user.setMima("123456");this.yonghuService.updateById(user);returnR.ok("密码已重置为:123456");}}4.4.3房主和管理员注册登录页房主和管理员能登录和注册是房屋租赁系统正常工作的前提,注册时与用户同样会对联系电话和身份证做类型校验,以下是登录和注册页的实例,如图4.4所示。图4.4房主和管理员登录注册页面实现安全校验的核心代码:packagecom.service;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.baomidou.mybatisplus.service.IService;importcom.entity.TokenEntity;importcom.utils.PageUtils;importjava.util.List;importjava.util.Map;publicinterfaceTokenServiceextendsIService<TokenEntity>{PageUtilsqueryPage(Map<String,Object>params);List<TokenEntity>selectListView(Wrapper<TokenEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<TokenEntity>wrapper);StringgenerateToken(Longuserid,Stringusername,StringtableName,Stringrole);TokenEntitygetTokenEntity(Stringtoken);}4.4.4管理员后台在系统的管理员后台,权限是最高的,涵盖了管理房主和用户的能力。此外,管理员还有权处理房屋信息、用户预约申请以及租赁订单等。以下是管理员后台的全览图以及一些功能的详细示例。管理员后台全览图如图4.5所示,界面的左侧是管理员的各类管理功能,中间部分则是欢迎界面及系统名称。图4.5管理员后台全览图有关的核心代码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width,initial-scale=1"><linkrel="icon"href="./favicon.ico"><title>房屋租赁系统</title><linkhref="./css/app.84efa56e.css"rel="stylesheet"><linkhref="./css/chunk-vendors.a72b0961.css"rel="stylesheet"></head><body><noscript><strong>We'resorrybutmas-creator-admindoesn'tworkproperlywithoutJavaScriptenabled.Pleaseenableittocontinue.</strong></noscript><divid="app"></div><scriptsrc="./js/chunk-vendors.ed17b216.js"></script><scriptsrc="./js/app.53d47487.js"></script></body></html>房主管理房主管理页能够对房主信息进行查询、添加、修改和删除。示例图如下图4.6所示。图4.6房主管理页面示例图有关的核心代码:@RestController@RequestMapping({"/fangwuxinxi"})publicclassFangwuxinxiController{@AutowiredprivateFangwuxinxiServicefangwuxinxiService;@AutowiredprivateStoreupServicestoreupService;//查询房主信息的分页方法@RequestMapping({"/page"})publicRpage(@RequestParamMap<String,Object>params,FangwuxinxiEntityfangwuxinxi,HttpServletRequestrequest){//根据登录用户的角色进行查询条件的判断//...//调用服务层查询房主信息,并返回分页结果PageUtilspage=this.fangwuxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,fangwuxinxi),params),params));returnR.ok().put("data",page);}//添加房主信息的方法@RequestMapping({"/save"})publicRsave(@RequestBodyFangwuxinxiEntityfangwuxinxi,HttpServletRequestrequest){//设置房主信息的唯一标识fangwuxinxi.setId((newDate()).getTime()+(newDouble(Math.floor(Math.random()*1000.0))).longValue());//调用服务层保存房主信息this.fangwuxinxiService.insert(fangwuxinxi);returnR.ok();}//更新房主信息的方法@RequestMapping({"/update"})publicRupdate(@RequestBodyFangwuxinxiEntityfangwuxinxi,HttpServletRequestrequest){//调用服务层更新房主信息this.fangwuxinxiService.updateById(fangwuxinxi);returnR.ok();}//删除房主信息的方法@RequestMapping({"/delete"})publicRdelete(@RequestBodyLong[]ids){//调用服务层删除房主信息this.fangwuxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}}意见反馈管理管理员可以对用户提出的反馈意见进行查看和回复。相关示例图如图4.7所示。图4.7意见反馈管理示例图部分核心代码:@RestController@RequestMapping({"/chat"})publicclassChatController{@AutowiredprivateChatServicechatService;@RequestMapping({"/page"})publicRpage(@RequestParamMap<String,Object>params,ChatEntitychat,HttpServletRequestrequest){//根据用户角色确定查询条件if(!request.getSession().getAttribute("role").toString().equals("管理员")){chat.setUserid((Long)request.getSession().getAttribute("userId"));}//查询意见反馈并返回分页结果EntityWrapper<ChatEntity>ew=newEntityWrapper();PageUtilspage=this.chatService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,chat),params),params));returnR.ok().put("data",page);}@RequestMapping({"/save"})publicRsave(@RequestBodyChatEntitychat,HttpServletRequestrequest){//保存意见反馈,并根据情况更新回复状态和管理员IDchat.setId((newDate()).getTime()+(newDouble(Math.floor(Math.random()*1000.0))).longValue());if(StringUtils.isNotBlank(chat.getAsk())){this.chatService.updateForSet("isreply=0",(newEntityWrapper()).eq("userid",request.getSession().getAttribute("userId")));chat.setUserid((Long)request.getSession().getAttribute("userId"));chat.setIsreply(1);}if(StringUtils.isNotBlank(chat.getReply())){this.chatService.updateForSet("isreply=0",(newEntityWrapper()).eq("userid",chat.getUserid()));chat.setAdminid((Long)request.getSession().getAttribute("userId"));}this.chatService.insert(chat);returnR.ok();}}4.5本章小结该房屋租赁系统基于SpringBoot框架开发,提供了用户注册与登录、管理员注册与登录、房屋信息浏览、房主信息管理以及用户个人资料等模块。用户能够轻松注册账户并查看房源,而管理员则能够有效地管理用户和房主资料。系统的模块化设计优化了用户和管理员的操作体验,增强了系统的实用性和管理效能。

第5章系统测试5.1系统功能测试软件测试的基本方法包括白盒测试和黑盒测试。白盒测试亦称作结构测试或开放盒测试。在白盒测试中,测试人员对软件内部的结构和逻辑进行检查,以验证其是否按照设计规范和预期功能运行。白盒测试的目标是评估软件的内部逻辑,包括代码覆盖率、路径覆盖、条件覆盖等方面。另一种测试方法,黑盒测试的核心目标是确认软件的功能是否满足预定的规格要求,而不涉及检查其内部的具体实现。在黑盒测试过程中,测试人员不需掌握软件的内部构造或编码,他们把软件当作一个无法透视的黑色盒子,仅通过提供输入数据并检查所得到的输出结果来评估软件的功能表现。来评估软件是否按照预期进行操作。黑盒测试的目标是确保软件在用户角度下的正确性,以及其与系统的交互和整合是否正常。根据本系统的设计特点和需求选择了以黑盒测试作为检测该研究系统各项功能和性能的主要手段。5.1.1登录功能测试基于管理员、房主与用户三个角色对该房屋租赁系统的登录功能进行测试,测试的结果如表5.1所示。表5.1登录功能表序号测试项测试操作预期结果实际结果1无不输入账号信息登录失败登录失败2输入系统中各角色不存在的账号信息随机输入账号和密码登录失败登录失败3账号和密码不能对应打乱各角色的账号密码输入系统登录失败登录失败4在系统中输入各角色正确的账号和密码使用各角色正确的账号密码修改成功成功5修改管理员密码使用管理员登录修改管理员密码在输入原密码后输入两次新密码修改成功成功5.1.2注册测试基于房主和用户两个角色对房屋租赁系统的注册功能进行测试,测试的结果如图5.2所示。表5.2注册测试表序号测试项测试操作预期结果实际结果1用户注册按照规范和要求正确填写注册信息注册成功成功2房主注册按照规范和要求正确填写注册信息注册成功成功3用户注册不按照规范和要求正确填写注册信息注册失败成功4房主注册不按照规范和要求正确填写注册信息注册失败成功5.1.3房屋信息管理测试基于房主对房屋信息管理中的新增功能以及管理员对房屋信息管理中的删除、修改和查看详情功能进行测试,测试的结果如下表5.3所示。表5.3房屋信息管理测试表序号测试工程测试内容测试结果功能实现情况1房主新增房屋信息在房屋管理页面,点击新增按钮,输入房屋名称、房屋类型等信息,点击提交按钮新增实现实现2管理员房屋信息管理修改房屋信息修改成功实现3管理员房屋信息管理删除房屋信息删除成功实现4管理员房屋信息管理查看房屋信息详情查看成功实现5.1.4预约看房管理测试基于房主对预约看房管理中的详情查看和审核功能以及管理员对预约看房管理中的修改、删除和查看详情功能进行测试,测试结果如表5.4所示。表5.4预约看房管理测试表序号测试工程测试内容测试结果功能实现情况1房主预约看房管理在预约看房管理页面,点击详情按钮查看成功实现2房主预约看房管理在预约看房管理页面,点击审核按钮可修改审核状态实现3管理员预约看房管理修改预约看房信息修改成功实现4管理员预约看房管理删除预约看房信息删除成功实现5管理员预约看房管理查看预约看房信息详情查看成功实现5.1.5定金留房管理测试针对用户对定金留房中的租赁下单功能以及管理员对定金留房管理中的修改、删除和查看详情功能进行测试,测试结果如表5.5所示。表5.5定金留房管理测试表序号测试工程测试内容测试结果功能实现情况1用户定金留房管理在定金留房管理页面,点击租赁下单按钮下单成功实现2管理员定金留房房管理修改定金留房信息修改成功实现3管理员定金留房房管理删除定金留房信息删除成功实现4管理员定金留房房管理查看定金留房信息详情查看成功实现5.1.6租赁订单管理测试针对用户租赁订单管理中的房屋评价功能以房主对租赁订单管理中的审核以及查看订单详情功能进行测试,测试结果如表5.6所示。表5.6租赁订单管理测试表序号测试工程测试内容测试结果功能实现情况1用户租赁订单管理在租赁订单管理页面,点击房屋评价按钮评价提交成功实现2房主租赁订单管理在租赁订单管理页面,点击审核按钮审核状态修改成功实现3房主租赁订单管理在租赁订单管理页面,点击详情按钮订单详情查看成功实现5.2系统非功能测试非功能性测试是用来评估系统的性能、安全性、可靠性和可用性等方面的测试。对于本房屋租赁系统,主要进行了关于性能和安全性的测试。在性能测试领域,进行了承载力的评估,逐渐提升了同时在线的用户数量,并监测了系统的响应时间和吞吐量。结果表明,在不同负载下,系统都能够稳定地处理用户请求,响应时间在可接受范围内。通过压力测试,验证了系统在极限负载下的表现,并且系统在高负载下也能够保持稳定性,没有出现严重的性能问题。除此之外还实施了性能监控,使用监控工具对系统的关键性能指标进行了实时监测,确保系统在运行过程中能够保持良好的性能状态。有关安全性测试方面,在身份认证与授权方面,确保系统能够正确验证用户的身份,并限制未经授权的访问,保障了系统的安全性。开发中也对系统的数据加密机制进行了评估,确保系统能够有效地保护敏感数据在传输和存储过程中的安全性。通过验证,系统的防火墙配置已成功通过测试,有效地阻挡了未授权的网络接入,从而增强了系统的安全防护能力。5.3本章小结通过对房屋租赁系统中各角色注册、登录以及信息管理等多种功能场景的测试,尽管系统功能不算复杂,但基本满足了用户的基本需求,能够有效管理房屋信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论