【计算机毕设】房屋租赁系统02647

摘要

  房屋租赁市场长期存在着信息不对称、线下流程繁杂、多方协作效率低下的问题。创建一个包含租客、房东和管理员三个角色的在线租赁平台有其现实意义。本系统解决的主要问题有房源信息标准化发布和检索、租房申请和合同签署的线上化流转、账单、投诉、申诉等事务的分角色闭环处理。

  本系统使用Spring Boot框架和MySQL数据库做后端服务,用Vue创建前端界面。核心技术方面,Spring Boot用于构建RESTful API,MySQL管理城市、区县、房源、合同及账单等数据,Vue实现响应式用户界面。系统分为房源推荐和查询模块、租房申请和合同签订模块、账单管理模块、投诉和申诉处理模块、公告管理模块。

  系统运行之后实现房源信息集中展示和按需检索,完成租房申请到合同签署的线上闭环。普通用户浏览房源、申请房源、签订合同、查看账单;房东用户发布房源、申请审核、签订合同、查看账单、申诉;管理员进行城市区县信息设置、全流程监管、系统公告发布。该系统可以使得租赁业务中各个角色根据权限一起办理,从而提高租赁交易的可追溯性以及管理速度。

  本文对系统进行了详细的分析、设计、实现和测试,主要论述了系统的分析与设计。

关键词房屋租赁,Spring Boot,Vue,MySQL,角色权限

ABSTRACT

  Housing Rental Market long time with info. Asymmetry, troublesome Offline process and Poor Multi-party Collaboration Efficiency Setting up a online rental system including tenants, landlords and managers is very meaningful in practice. The main problem that this system can solve is the standardization of renting out information and its easy access, online rental application process and signing contract procedure, online handling affairs like bill collection, complaint, appeal related to specific roles.

  It is composed of a back end using the spring boot frame work and mysql databases. The front end was created with vue. Core Technology: Spring boot makes restful api, mysql manages the city's data, district's data, house's data, contract's data, bill's data and vue make the page respond. The system mainly includes: the property recommendation and query, rental application and signing contract, billing management, complaint and appeal processing, announcements, etc.

  After using the system, one will see a centralized display of rental info and be able to retrieve it as demanded and close an online rental transaction from application to contract. Normal people finish property looking for, application submitting, contract signing, and bill seeing. Landlord users carry out property publication, application approval, contract and bill management, as well as appeal submission. Administrator is in charge of configuring the city and district information, entire process supervision and announcement release. Also, it lets multi-roles of collaboration over rent transactions based on the permissions. So, this will improve tractable part and manageable side as well about rent transactions.

KeywordsHousing Rental,Spring Boot,Vue,MySQL,Role Permission

目录

[1 绪论](#1 绪论)
[1.1 研究背景](#1.1 研究背景)
[1.2 研究目的与意义](#1.2 研究目的与意义)
[1.3 国内外研究现状与发展趋势](#1.3 国内外研究现状与发展趋势)
[1.3.1 国内研究现状](#1.3.1 国内研究现状)
[1.3.2 国外研究现状](#1.3.2 国外研究现状)
[1.4 研究的主要内容](#1.4 研究的主要内容)
[2 系统开发环境及技术简介](#2 系统开发环境及技术简介)
[2.1 SpringBoot框架](#2.1 SpringBoot框架)
[2.2 Vue框架](#2.2 Vue框架)
[2.3 MySQL数据库](#2.3 MySQL数据库)
[2.4 MyBatis框架](#2.4 MyBatis框架)
[3 系统可行性及需求分析](#3 系统可行性及需求分析)
[3.1 系统可行性分析](#3.1 系统可行性分析)
[3.1.1 技术可行性分析](#3.1.1 技术可行性分析)
[3.1.2 操作可行性分析](#3.1.2 操作可行性分析)
[3.1.3 经济可行性分析](#3.1.3 经济可行性分析)
[3.1.4 政策可行性分析](#3.1.4 政策可行性分析)
[3.2 功能性需求分析](#3.2 功能性需求分析)
[3.2.1 用户功能需求](#3.2.1 用户功能需求)
[3.2.2 房东功能需求](#3.2.2 房东功能需求)
[3.2.3 管理员功能需求](#3.2.3 管理员功能需求)
[3.3 非功能性需求分析](#3.3 非功能性需求分析)
[3.3.1 性能需求](#3.3.1 性能需求)
[3.3.2 可用性需求](#3.3.2 可用性需求)
[3.3.3 可靠性需求](#3.3.3 可靠性需求)
[3.3.4 安全性需求](#3.3.4 安全性需求)
[3.3.5 可维护性和扩展性需求](#3.3.5 可维护性和扩展性需求)
[4 系统设计](#4 系统设计)
[4.1 系统功能结构设计](#4.1 系统功能结构设计)
[4.2 系统功能流程设计](#4.2 系统功能流程设计)
[4.2.1 用户登录模块](#4.2.1 用户登录模块)
[4.2.2 房源信息模块](#4.2.2 房源信息模块)
[4.2.3 租房申请模块](#4.2.3 租房申请模块)
[4.2.4 合同签署模块](#4.2.4 合同签署模块)
[4.2.5 投诉处理模块](#4.2.5 投诉处理模块)
[4.2.6 账单管理模块](#4.2.6 账单管理模块)
[4.3 数据库设计](#4.3 数据库设计)
[4.3.1 数据库功能简介](#4.3.1 数据库功能简介)
[4.3.2 数据库概要结构设计](#4.3.2 数据库概要结构设计)
[4.3.3 数据库逻辑结构设计](#4.3.3 数据库逻辑结构设计)
[5 系统功能实现](#5 系统功能实现)
[5.1 普通用户功能实现](#5.1 普通用户功能实现)
[5.1.1 登录注册功能实现](#5.1.1 登录注册功能实现)
[5.1.2 房源信息推荐查询功能实现](#5.1.2 房源信息推荐查询功能实现)
[5.1.3 租房申请查询功能实现](#5.1.3 租房申请查询功能实现)
[5.1.4 租房合同签署功能实现](#5.1.4 租房合同签署功能实现)
[5.1.5 合同签署功能实现](#5.1.5 合同签署功能实现)
[5.1.6 账单信息管理功能实现](#5.1.6 账单信息管理功能实现)
[5.1.7 投诉管理功能实现](#5.1.7 投诉管理功能实现)
[5.2 房东用户功能实现](#5.2 房东用户功能实现)
[5.2.1 房源信息管理功能实现](#5.2.1 房源信息管理功能实现)
[5.2.2 租房申请查询功能实现](#5.2.2 租房申请查询功能实现)
[5.2.3 租房合同管理功能实现](#5.2.3 租房合同管理功能实现)
[5.2.4 账单信息管理功能实现](#5.2.4 账单信息管理功能实现)
[5.2.5 投诉信息查询功能实现](#5.2.5 投诉信息查询功能实现)
[5.2.6 申诉信息管理功能实现](#5.2.6 申诉信息管理功能实现)
[5.3 管理员功能实现](#5.3 管理员功能实现)
[5.3.1 城市信息管理功能实现](#5.3.1 城市信息管理功能实现)
[5.3.2 区县信息管理功能实现](#5.3.2 区县信息管理功能实现)
[5.3.3 房源信息管理功能实现](#5.3.3 房源信息管理功能实现)
[5.3.4 租房申请管理功能实现](#5.3.4 租房申请管理功能实现)
[5.3.5 租房合同管理功能实现](#5.3.5 租房合同管理功能实现)
[5.3.6 合同签署管理功能实现](#5.3.6 合同签署管理功能实现)
[5.3.7 账单信息管理功能实现](#5.3.7 账单信息管理功能实现)
[5.3.8 投诉信息管理功能实现](#5.3.8 投诉信息管理功能实现)
[5.3.9 申诉信息管理功能实现](#5.3.9 申诉信息管理功能实现)
[5.3.10 系统管理功能实现](#5.3.10 系统管理功能实现)
[5.3.11 最新公告管理功能实现](#5.3.11 最新公告管理功能实现)
[6 系统测试](#6 系统测试)
[6.1 软件测试的目的及意义](#6.1 软件测试的目的及意义)
[6.2 用户功能测试](#6.2 用户功能测试)
[6.2.1 房源信息推荐查询功能测试](#6.2.1 房源信息推荐查询功能测试)
[6.2.2 租房申请查询功能测试](#6.2.2 租房申请查询功能测试)
[6.2.3 合同签署功能测试](#6.2.3 合同签署功能测试)
[6.2.4 账单信息管理功能测试](#6.2.4 账单信息管理功能测试)
[6.2.5 投诉管理功能测试](#6.2.5 投诉管理功能测试)
[6.3 房东功能测试](#6.3 房东功能测试)
[6.3.1 房源信息管理功能测试](#6.3.1 房源信息管理功能测试)
[6.3.2 租房申请查询功能测试](#6.3.2 租房申请查询功能测试)
[6.3.3 账单信息管理功能测试](#6.3.3 账单信息管理功能测试)
[6.3.4 投诉信息查询功能测试](#6.3.4 投诉信息查询功能测试)
[6.3.5 申诉信息管理功能测试](#6.3.5 申诉信息管理功能测试)
[6.4 管理员功能测试](#6.4 管理员功能测试)
[6.4.1 城市信息管理功能测试](#6.4.1 城市信息管理功能测试)
[6.4.2 区县信息管理功能测试](#6.4.2 区县信息管理功能测试)
[6.4.3 房源信息管理功能测试](#6.4.3 房源信息管理功能测试)
[6.4.4 租房申请管理功能测试](#6.4.4 租房申请管理功能测试)
[6.4.5 租房合同管理功能测试](#6.4.5 租房合同管理功能测试)
[6.4.6 投诉信息管理功能测试](#6.4.6 投诉信息管理功能测试)
[6.4.7 申诉信息管理功能测试](#6.4.7 申诉信息管理功能测试)
[6.4.8 最新公告管理功能测试](#6.4.8 最新公告管理功能测试)
[6.5 测试结论](#6.5 测试结论)
[总 结](#总 结)
[参 考 文 献](#参 考 文 献)
[致 谢](#致 谢)

1 绪论

1.1 研究背景

  传统的房屋租赁管理一直依靠线下中介门店、纸质合同和人工台账,租客需要花大量的时间去实地看房,房东只能通过张贴广告或者委托中介来招租,信息的传递范围小、更新慢。造成房源信息真实性无法得到确认,一房多租或者虚假房源时有发生,租客和房东之间缺少直接有效的沟通渠道。合同的签订以及账单的结算都是依靠面对面或者邮寄的方式来进行的,处理的时间较长,容易产生纠纷。伴随着移动互联网以及电子商务技术的发展,各个行业都开始向线上化服务平台转变1。房屋租赁领域也有部分信息聚合网站,但是大多数平台只具备信息展示的功能,并不能对租房申请、合同签订、账单管理以及投诉处理等完整的交易过程进行支持。另外,不同的用户角色之间没有进行有效的隔离和权限控制,房东不能方便地管理自己的房源,租客不能及时了解申请进度,管理员对整个租赁市场的运行情况也无从知晓2。因此,设计并实现一个包含租客、房东和管理员三个角色的综合租赁管理系统成了目前急需解决的实际问题。

1.2 研究目的与意义

  本系统研究目的就是创建一个基于Spring Boot和Vue框架的房屋租赁综合管理平台,包含普通用户、房东用户、管理员三个角色的所有业务需求。相比于传统的线下、人工方式,本系统把房源发布、租房申请、合同签订、账单管理、投诉和申诉处理等环节放入到线上闭环流程里,进而大大提升了交易效率和数据准确度。系统利用统一的数据库设计以及角色权限管理来实现房源信息、租赁申请、合同文件、账单记录等各类数据的集中存储,并根据需要对用户进行访问控制。对于信息管理来说,管理员可以对房源的状态以及交易记录进行实时的监控,从而提高决策的速度和监管的范围。从行业角度来讲,本系统促使房屋租赁服务由零散、非规范的模式向透明、可追溯的在线协作方式转变,缩减交易双方的信任成本和沟通难度。实际使用中可以改善城市租房市场信息不对称状况,提高租赁服务质量和规范程度,有明显的工程实践价值和社会效益。

1.3 国内外研究现状与发展趋势

1.3.1 国内研究现状

  国内房屋租赁信息化建设由原来的单个信息展示发展到现在的综合业务管理。早期的租赁平台主要集中在房源信息的汇集以及基本的搜索上,技术实现大多使用静态页面和简单的数据库组合。近五年来由于Web开发框架的成熟以及前端交互技术的更新,租赁系统开始将申请审批、合同管理、账单结算等业务流程进行整合。部分研究开始使用推荐算法、数据挖掘技术来解决信息过载、供需匹配等问题。就整体而言,国内租赁管理系统由原来的只是起到信息中介的作用,向业务流程平台转变,功能也越来越大,但是系统之间数据孤立、角色权限设计粗糙、投诉和申诉等事务处理机制的缺失依然是普遍存在的问题。

  闫萌于2026年对房屋租赁市场长期发展进行分析3。该研究认为租赁市场越来越大,传统的管理模式不能满足增长的需求。该判断给本系统定位赋予了市场依据,有益于明晰系统创建的社会必要性。吴宏伟等2025年利用Spring Boot架构创建了一个智能匹配算法的房屋租赁系统4。该系统使用Spring Boot作为后端框架,用算法来提高房源推荐的效果。本系统参照其架构选型经验,并且增加租房申请和合同签署模块。杜娟、程良于2025年设计并实现了一个房屋租赁推荐系统5。该研究主要针对信息过滤和个性化展示进行,本系统在此基础上又增加了房东端房源自主管理的功能。王昊于2025年就房屋租赁价格决策技术及服务平台设计与实现进行了研究6。本平台突出价格因素对于租赁决定的影响,而本系统是从流程完整度的角度出发,主要针对合同签订和账单管理这些交易闭环进行处理。闫银娟于2022年用SSM框架开发出房屋租赁系统7。本文用传统的SSM架构实现了基本的功能,将本系统升级为基于Spring Boot的Vue前端技术进行改进。刘文卓在2022年利用区块链技术设计出房屋租赁系统8。该研究用区块链保证合同的不可篡改,本系统侧重于轻量化实现,没有使用区块链等高成本的技术方案,更适合中小城市的快速部署。王馨在2021年用数据挖掘技术设计了房屋租赁管理系统9。本研究利用数据挖掘分析用户的使用行为,本系统从角色权限管理的角度出发,突出管理员对于投诉和申诉信息的全局监管能力。

  就目前的研究现状而言,国内有关房屋租赁系统的文献主要从系统架构、推荐算法、区块链存证、数据挖掘等几个方面展开论述,具有一定的代表性。但是大多数系统没有对租客、房东、管理员三个角色的协同业务流程进行完整的覆盖,在租房申请和合同签署的线上闭环管理、账单信息和投诉申诉的事务联动等方面存在明显的不足。本系统针对以上不足,将房源信息推荐查询、租房合同签署、账单信息管理、投诉和申诉处理、最新公告管理等模块结合起来,创建出一个功能齐全、权限分明的综合租赁平台。

1.3.2 国外研究现状

  国外房屋租赁信息化研究开始得比较早,技术路线是多样的。欧美国家租赁市场法律体系比较完善,合同规范性、信用评价和租户权益保障等各方面的设计都比较系统。近三到五年的国内学者把推荐算法、区块链、数据驱动决策等引入租赁市场,其主要的研究方向也由原来的发布信息平台转为智能匹配和流程自动化。部分研究结果已经得到了实际区域的检验,澳大利亚、埃塞俄比亚等国根据本国的租赁市场监管需要开发出了专门的合规性评价系统。国外有关用户隐私保护和数据安全的研究也较多,给本系统的设计提供了一些思路。

  Bay Property Management Group Survey在2026年发布市场调查报告,揭示了成本上涨对租赁市场的重塑作用10。该调查重视租金波动和账单透明化,给本系统账单信息管理模块提供需求依据。Rahman A M等人于2026年从监管与现实落差的角度出发,对澳大利亚维多利亚州租赁住房标准的空间不平等问题进行了分析11。该研究体现出投诉、申诉机制对于租赁管理的重要性,直接为本系统投诉管理、申诉信息管理模块的设计提供依据。Şenyüzlüler F和Baykasoglu A于2026年提出了一种基于网络的数据驱动推荐系统,使用层次模糊公理设计的方法来完成房源推荐12。该方法给本系统房源信息推荐查询模块提供了一种算法思路,可以提高推荐的准确性。Obse G Z在2025年设计了埃塞俄比亚亚的斯亚贝巴在线房屋租赁管理系统13。该系统包含房源发布、申请处理两个主要功能,验证了Web租赁系统发展地区可行性的研究。在此基础上又添加了合同签署、账单管理等功能,从而扩大业务流程的覆盖范围。Qingshui X et al.在2021年提出了基于区块链技术的房屋租赁系统14。该系统用区块链来保证交易的透明性,而本系统使用传统的关系型数据库和角色权限控制,可以在保证数据安全的前提下降低部署成本和维护门槛。

  对照国外的研究成果可知,目前的成果在推荐算法优化、区块链存证、租赁标准合规性评价等方面具有较高的水平,功能深入、数据利用率高,远远好于国内大多数类似系统。但是部分方案依靠复杂的科技栈或者高昂的成本基础设施,不能在中低线城市推广使用。本系统吸收国外研究在流程闭环、角色协同方面的先进思想,结合中国的房屋租赁市场实际情况,用Spring Boot和Vue主流技术栈来搭建一个轻量级的平台。系统重点加强合同签署管理、账单信息管理、投诉与申诉处理三者之间的联动,把国外先进的理念本土化。

1.4 研究的主要内容

  本文主要任务就是设计并实现一个基于Spring Boot和Vue框架的房屋租赁综合管理系统,可以满足普通用户、房东用户、管理员这三个角色的所有业务需求。系统要解决传统租赁模式信息不透明、流程碎片化、多方协作效率低等主要问题。具体研究内容有如下六个方面。

  第一,创建多角色权限管理系统。系统要区分普通用户、房东用户和管理员这三个角色,每一个角色都有自己的功能视图和操作权限。普通用户完成注册登录之后可以浏览房源、提交租房申请、签订合同、查看账单和提出投诉。房东用户在普通用户的基础上,又增加了房源发布和管理、申请审批、合同管理、账单生成和申诉提交的权限。管理员可以对城市和区县信息进行配置,对所有的业务流程进行监管,发布公告,对系统进行管理。角色权限设计用到的是基于角色的访问控制模型,从而达到数据隔离以及操作安全的目的。

  第二,对房源信息进行全过程的管理。房源从发布、审核、上架、租用、下架的全过程都应被系统所支持。房东用户提交房源信息之后,管理员对房源信息的合规性进行审核,审核通过的房源才能被纳入到推荐和查询的列表中。系统对房源的出租状况及以前的租赁情况予以记载,为之后签订合同、核算账单提供数据支撑。

  第三,创建租房申请和合同签署的线上闭环流程。普通用户浏览房源之后可以发起租房申请,房东用户收到申请之后做出批准或者拒绝的决定。申请获批之后系统自动生成电子合同,租客和房东双方在线签署确认。合同签署状态和合同文件存放在数据库中,可以供以后查询和纠纷追溯使用。

  第四,创建账单信息管理同投诉申诉相联系的机制。合同签订之后,系统按照合同约定的租金和支付周期来产生周期性账单。租客在线查看账单并完成支付确认,房东用户可以查看账单回款情况。租客在遇到房屋或者服务问题的时候可以发起投诉,管理员进行处理。房东对于投诉结果有异议的可以提出申诉,管理员再次审核后作出最终裁定。

  第五部分为房源信息推荐查询、公告管理功能。系统依据租客以往的浏览记录以及申请喜好给出个性化的房源推荐清单,并且可以按照城市、区县、价格区间这些方面展开多层面的检索查询工作。管理员使用最新公告管理模块发布系统通知、政策变更或者平台规则的更新,公告内容对所有的登录用户可见。

  第六,用Spring Boot和MySQL技术栈完成后端开发,用Vue框架创建前端界面。后端使用分层架构设计,分为控制器层、服务层和数据访问层,使业务逻辑清楚,代码易于维护。MySQL数据库存储用户表、角色表、房源表、合同表、账单表、投诉表、申诉表和公告表等主要的数据表。前端采用Vue的组件化开发方式来创建响应式的界面,可以满足不同的终端设备访问的需求。

2 系统开发环境及技术简介

2.1 SpringBoot框架

  SpringBoot框架基于Spring生态构建,其设计目标在于简化传统Spring应用初始配置15。该框架通过约定优于配置理念自动完成大量基础设置。启动时内置了Tomcat、Jetty等Servlet容器,开发者不需要手动部署WAR文件。普通用户登录注册时,SpringBoot用注解的方式定义了控制器,接收前端传来的用户名和密码。服务层组件会对账户是否存在进行校验,并且将加密后的密码字段进行对比,校验逻辑使用依赖注入的方式组装到控制器中。系统运行时,SpringBoot的自动配置机制会依照类路径中包含的依赖jar包来决定加载哪些配置类。控制器接收到请求参数之后,会调用业务层的组件来从数据库中获取房源数据,并且根据用户的点击记录来计算出推荐列表。数据访问层使用Spring Data JPA或者MyBatis框架来完成对关系型数据库的增删改查操作,持久化组件被SpringBoot统一管理生命周期。框架内部使用模块化设计,核心容器来管理Bean实例以及它们之间的依赖关系。事务管理模块用注解的方式进行声明式地控制数据库操作的提交和回滚边界,对租房申请、合同签署等多表操作进行一致性保证。对于请求响应机制,框架把HTTP请求映射到具体的控制器方法上,方法的返回值会自动转换成JSON格式的响应体。异常处理机制用全局控制器来通知捕捉运行时的异常,并且返回统一格式的错误信息。

2.2 Vue框架

  Vue框架采用渐进式的JavaScript架构,主要的库只处理视图层的渲染16。该框架使用响应式数据绑定的方式,当数据模型发生改变的时候,视图层就会自动地更新相应的DOM节点。普通用户房源浏览界面用Vue的声明式模板语法把房源列表数据渲染成表格或者卡片的形式。框架内部使用虚拟DOM技术来减少对真实DOM的直接操作所造成的性能开销,当数据发生变化的时候,虚拟DOM会计算出最小差异补丁,并且把它们批量地应用到实际的页面上。当用户执行租房申请操作的时候,Vue组件内定义的方法就会收集表单字段值,并用Axios库发起异步请求。请求发给后端接口之后,框架按照响应的状态码来改变界面的提示信息。组件化设计就是把界面分成可以被重复使用的独立部分,每一个组件都有自己的模板样式和交互逻辑。在房东用户房源管理模块中,房源发布表单和申请审批列表分别封装成独立的组件,组件之间用props传递父级数据,用自定义事件和父组件通信。框架具有路由管理的功能,页面的切换是由前端路由控制而不是向服务器重新请求HTML文件。当用户发起路由跳转的时候,框架只会下载目标组件的代码,从而缩减了首屏加载所牵涉到的资源传输规模。管理员合同监管界面的路由守卫会先检查当前用户所处角色的权限,只有当用户的权限满足要求的时候才会允许其访问该页面。双向数据绑定可以简化表单输入控件与数据模型同步代码编写的工作量。

2.3 MySQL数据库

  MySQL数据库是关系型数据库管理系统,用表格的形式来组织数据17。数据存储结构由行和列组成,表格之间用主键和外键来建立联系。查询执行器解析结构化查询语言后生成执行计划,存储引擎按照执行计划从磁盘或者缓冲区读取数据页。系统运行时,用户账户表中存有用户名和加密过的密码字段,房源信息表里存放着房屋编号所在的城市以及租房的价格等信息。普通用户提交租房申请的时候,事务机制保证申请表和房源状态表的数据更新操作一起完成或者一起回滚。数据库内部使用B+树索引结构加快查询操作,对房源信息表的城市字段、价格字段进行索引之后,条件查询可以快速找到目标数据行。对于账单信息管理及投诉处理模块,关联查询会联接多张表来取得全部业务数据,连接算法选择嵌套循环连接或者哈希连接,依照数据量的多少以及索引是否存在而定。日志系统保存事务操作的重做日志和回滚日志,在发生故障时用重做日志把已经提交的事务的修改再应用到数据文件上。并发控制机制用多版本并发控制来保证读写操作不会互相阻塞,读取操作获取数据快照,写入操作施加行级锁。在执行合同签署、账单产生等重要业务的时候,数据库依靠ACID特性来达成操作的原子性隔离性持久性以及一致性。查询优化器对查询语句中的条件以及表结构特征进行分析,从中选出预估代价最低的执行路径来执行。

2.4 MyBatis框架

  MyBatis框架属于持久层框架,通过映射机制将Java对象与数据库表记录进行转换18。框架内部使用XML或者注解的方式进行配置,开发者编写映射文件来描述实体类属性和表字段之间的对应关系。核心组件包括SqlSessionFactoryBuilder用于解析配置并构建SqlSessionFactory对象,SqlSessionFactory负责创建SqlSession实例,SqlSession提供执行SQL命令的接口方法。在房屋租赁系统中,房源信息表的查询操作用映射文件中的select元素来定义,执行时框架会把结果集转换成HousingInformation实体对象集合。当房东用户提交房源发布请求的时候,控制器层接收到参数之后创建实体实例,服务层调用数据访问接口进行插入。框架在执行SQL语句之前会解析出映射文件中动态SQL标签、条件判断等逻辑,这些逻辑由标签来决定SQL语句最终拼接的形式。参数绑定机制用预编译语句来防止SQL注入攻击,传入的用户输入值通过类型处理器转换成数据库支持的格式。一级缓存只在SqlSession生命周期内起作用,重复查询相同的语句就会从缓存中获取结果。二级缓存跨SqlSession共享数据,适合于租房申请和合同签署等经常被读取的业务场景。关联映射功能可以实现一对多和多对一的关系配置,房源实体可以加载其关联的房东用户信息。执行更新操作时接口方法返回受影响的记录行数,调用方根据返回值判断业务操作是否成功完成。

3 系统可行性及需求分析

3.1 系统可行性分析

3.1.1 技术可行性分析

  系统整体用浏览器和服务器架构,前端使用Vue框架创建用户界面,后端用Spring Boot框架实现业务逻辑。MySQL数据库保存用户、房源、合同、账单等主要数据表。Spring Boot框架在Java Web开发中被广泛使用,它的依赖注入、自动配置等特性使项目搭建变得更加简单。Vue框架有组件化开发能力和响应式数据绑定,适合做多角色交互的管理界面。MySQL支持事务处理和索引优化,可以满足租赁业务中合同签署、账单生成等重要操作的数据一致性要求。开发人员已经完成了对Spring Boot和Vue基础的学习,并且具有了基本的数据库设计能力。系统预计的用户数量、并发请求量都在单机部署范围内,用标准的字段校验、参数过滤来防止SQL注入、跨站脚本攻击。因此该系统技术上是可行的。

3.1.2 操作可行性分析

  系统界面布局符合主流Web应用设计规范,普通用户进入系统之后通过导航栏直接访问房源浏览和推荐入口。租房申请集中在房源详情页,用户点击申请按钮后输入起租日期和租期就可提交。合同签署环节包含合同预览和电子签名确认两个连续的步骤,操作流程清楚。房东用户使用独立的管理面板发布房源和申请审批,房源发布表单采用分步骤填写的方式减轻操作负担。原来的线下流程中口头询问和纸质单据被线上表单所代替,这种改变需要用户适应基本的Web表单填写习惯。系统上线之初配合简短的操作指南进行过渡,之后的维护通过后台公告模块发布更新说明。因此系统在操作上是可行的。

3.1.3 经济可行性分析

  项目投入主要集中在开发阶段的人力成本上,即前端界面搭建、后端业务逻辑实现、数据库的设计和测试调试。硬件环境使用的是已有的个人计算机设备,不需要购买专用服务器。软件层面采用Spring Boot、Vue、MySQL等开源技术栈,未引入商业授权费用。系统部署之后可以运行在基础服务器环境中,运维开销只用做数据备份和异常排查。应用价值主要表现在租赁交易效率的提高和纠纷处理成本的降低两个方面,长期运行可以减少中介费用支出和房屋空置损失。投入和预期收益之间存在合理的比例关系。因此该系统经济上是可行的。

3.1.4 政策可行性分析

  系统设计及应用符合网络安全法有关个人信息保护的规定,用户注册信息、合同文件、账单记录等数据只用于租赁业务流程。系统不会采集、租用与业务无关的个人敏感信息,数据传输为加密通道防止被窃取。投诉和申诉模块的设计保证了租客和房东双方的表达权、申诉权,管理员是中立的第三方来处理纠纷。系统投入使用之后可以减少线下交易中口头承诺的风险,合同电子化存档方便日后查阅。电子合同的法律效力问题用记录签署时间、签署人身份信息和操作日志来保证签字行为可以追溯。以上措施使得系统符合目前的法律法规。因此,在政策上是可行的。

3.2 功能性需求分析

3.2.1 用户功能需求

  用户在系统中完成账号注册与登录操作。系统依据用户历史浏览记录与房源偏好推送个性化推荐列表。用户按城市、区县、价格区间等条件检索房源信息。用户提交租房申请后进入申请查询界面,实时跟踪申请处理状态。申请获得批准后用户在线签署租赁合同,合同签署状态实时更新。系统生成周期性账单,用户在线查看账单明细并确认支付。用户对房屋质量或房东服务问题发起投诉,投诉信息提交后等待管理员介入处理。用户用例图如图3.1所示。

   图3.1用户用例图

3.2.2 房东功能需求

  房东在用户功能基础上获得房源管理权限。房东发布房源信息,提交后系统流转至管理员完成合规性审核。房东查看租客提交的租房申请列表,对每一条申请做出批准或拒绝处理。合同签署完成后房东管理合同档案,查看已签署合同的完整列表。房东查看名下房源的账单回款状态,系统依据合同约定生成周期性账单供租客确认。房东查询针对自有房源的投诉信息,对投诉处理结果持有异议时提交申诉申请。房东用例图如图3.2所示。

   图3.2房东用例图

3.2.3 管理员功能需求

  管理员对城市、区县信息进行设置维护,保证房源地址数据的规范性和准确性。管理员对房东提交的房源信息进行审核,审核通过后房源就进入了可租状态并对外展示。管理员查看全平台租房申请记录,对异常申请做干预处理或者强制关闭。管理员对所有的租赁合同进行管理,对合同的签署情况和电子档案存档情况进行监督。管理员收到用户的投诉信息后作出处理决定,处理结果告知投诉发起人。管理员对房东提出的申诉信息进行二次审核,给出无法继续申诉的最终裁决结果。管理员发布系统最新公告,公告内容对所有的登录用户都可见。管理员对用户的账户进行管理,对系统中的角色进行分配。管理员的用例图如下图3.3所示。

   图3.3管理员用例图

3.3 非功能性需求分析

3.3.1 性能需求

  系统页面加载时间控制在三秒以内,房源列表查询响应不超过两秒。合同签署与账单支付等关键操作需要在一秒内完成数据提交与状态更新。系统支持三十个用户同时在线访问,数据库连接池配置满足并发请求处理需求。检索操作通过索引优化避免全表扫描,房源推荐模块采用缓存机制减少重复计算开销。

3.3.2 可用性需求

  系统界面采用统一的布局风格与配色方案,导航菜单结构清晰且层级不超过三级。表单输入项提供实时校验提示,错误信息以明确文字形式展示在对应输入框下方。合同签署环节采用分步骤引导设计,每个步骤完成后自动进入下一步骤。系统在不同分辨率设备上保持界面显示正常,核心操作流程支持主流浏览器访问。

3.3.3 可靠性需求

  系统核心业务模块需要保证七成二十四小时稳定运行,合同签署与账单记录等关键数据不得丢失。数据库定期执行备份操作,备份周期设定为每日一次。用户提交租房申请后系统返回明确的状态码与提示信息,网络异常情况下申请记录不会重复提交。投诉与申述处理结果需要记录完整操作日志,便于事后追溯与责任认定。

3.3.4 安全性需求

  用户密码采用加密存储方式,数据库不保存明文密码。数据传输过程采用超文本传输安全协议加密,防止中间人窃听。不同角色用户访问数据时执行严格的权限校验,房东用户无法查看其他房东的房源信息,普通用户无法访问管理员功能接口。投诉与申诉模块记录操作人身份与操作时间,所有关键操作纳入审计日志。

3.3.5 可维护性和扩展性需求

  后端代码采用分层架构设计,控制器层、服务层与数据访问层职责明确。核心业务逻辑封装于服务层,新增功能时不影响现有模块运行。数据库表结构设计预留扩展字段,未来支持更多房源属性或账单类型。系统配置信息集中存放于配置文件中,环境变更时无需修改业务代码。

4 系统设计

4.1 系统功能结构设计

  系统以房屋租赁业务为基础,建立普通用户模块、房东用户模块和管理员模块这三个主要的功能模块。普通用户完成注册登录之后可以进行房源浏览、租房申请提交、合同签署和账单查看的操作,并且拥有投诉发起的权利。房东用户在普通用户的基点上增加房源发布、管理的功能,给予申请审批、合同档案、账单回款追踪、申诉提交的权利。管理员对城市、区县信息进行配置,对房源的合规性进行审核,对全平台的申请和合同进行监管,对投诉和申诉进行裁决,对公告发布以及系统基础配置进行管理。该系统的功能结构如图4.1所示。

   图4.1系统功能结构图

4.2 系统功能流程设计

4.2.1 用户登录模块

  用户进入系统后输入用户名与密码信息。系统接收请求后校验账户存在性及密码正确性。校验通过后系统依据用户角色类型跳转至相应工作界面。校验失败则返回错误提示并保留当前页面。用户登录流程如图4.2所示。

  

图4.2用户登录流程图

4.2.2 房源信息模块

  用户浏览房源列表页面后选择特定房源进入详情页。系统展示房屋编号、房屋类型、所在城市、租房价格、房屋配套等完整信息。用户点击申请按钮后系统校验当前房源状态。可租状态允许进入申请表单页面。已出租状态返回不可申请提示。房源信息浏览流程如图4.3所示。

  

图4.3房源信息流程图

4.2.4 合同签署模块

  申请获批后系统依据房源信息与申请参数自动生成合同草案。系统向租客与房东双方推送签署待办通知。租客登录系统查看合同内容,确认无误后执行电子签署操作。房东随后登录系统完成另一方签署确认。双方全部签署完毕后系统更新合同状态为已生效。合同签署流程如图4.5所示。

  

图4.5合同签署流程图

4.2.5 投诉处理模块

  租客在租期内遇到房屋或服务问题时进入投诉管理模块填写投诉内容。投诉信息提交后系统通知管理员介入处理。管理员查看投诉详情后做出处理裁定,结果反馈至租客与房东双方。房东对投诉结果持有异议时进入申诉管理模块提交申诉申请。管理员对申诉进行二次审核并给出最终裁决。投诉处理流程如图4.6所示。

  

图4.6投诉处理流程图

4.3 数据库设计

4.3.1 数据库功能简介

  数据库设计采用关系型模型,通过表格结构组织房屋租赁业务涉及的全部数据。规范化原则将用户信息、房源数据、合同档案、账单记录分解为多个关联表,消除冗余存储与更新异常风险。系统通过外键关联实现用户与房源、申请与合同、合同与账单之间的逻辑连接。事务机制保证合同签署与账单生成等关键操作的原子性与一致性。

4.3.3 数据库逻辑结构设计

  城市信息表主要是用来存储系统支持的城市基础数据。主要包括城市信息id、城市名称、所在区域等字段。如表4.1所示。

表4.1城市信息表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 city_information_id int - 是 是 城市信息id
2 city_name varchar 64 否 否 城市名称
3 area varchar 64 否 否 所在区域

  区县信息表主要是用来存储城市下属的区县基础数据。主要包括区县信息id、区县名称、所在城市等字段。如表4.2所示。

表4.2区县信息表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 district_information_id int - 是 是 区县信息id
2 name_of_districtcounty varchar 64 否 否 区县名称
3 city_of_resuser_idence varchar 64 否 否 所在城市

  房屋类型表主要是用来定义房屋的具体分类。主要包括房屋类型id、房屋类型等字段。如表4.3所示。

表4.3房屋类型表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 type_of_house_id int - 是 是 房屋类型id
2 type_of_house varchar 64 否 否 房屋类型

  用户账户表主要是用来存储所有登录用户的账户凭证。主要包括用户id、用户名、密码、用户组等字段。如表4.4所示。

表4.4用户账户表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 user_id int - 是 是 用户id
2 username varchar 16 是 否 用户名
3 password varchar 64 是 否 密码
4 user_group varchar 32 否 否 用户组

  普通用户表主要是用来存储租客角色的扩展信息。主要包括普通用户id、用户id、用户姓名、用户手机等字段。如表4.5所示。

表4.5普通用户表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 regular_user_id int - 是 是 普通用户id
2 user_id int - 是 否 用户id
3 user_name varchar 64 否 否 用户姓名
4 users_mobile_phone varchar 16 否 否 用户手机

  房东用户表主要是用来存储房东角色的扩展信息。主要包括房东用户id、用户id、房东姓名、房东手机等字段。如表4.6所示。

表4.6房东用户表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 landlord_user_id int - 是 是 房东用户id
2 user_id int - 是 否 用户id
3 name_of_landlord varchar 64 否 否 房东姓名
4 landlords_mobile_phone varchar 16 否 否 房东手机

  房源信息表主要是用来存储房东发布的出租房屋详细数据。主要包括房源信息id、房屋编号、房屋类型、租房价格、房源状态等字段。如表4.7所示。

表4.7房源信息表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 housing_information_id int - 是 是 房源信息id
2 house_no varchar 64 否 否 房屋编号
3 type_of_house varchar 64 否 否 房屋类型
4 renting_price double - 否 否 租房价格

  租房申请表主要是用来存储租客提交的租赁申请记录。主要包括租房申请id、房屋编号、租房用户、房东用户等字段。如表4.8所示。

表4.8租房申请表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 renting_application_id int - 是 是 租房申请id
2 house_no varchar 64 否 否 房屋编号
3 renting_users int - 否 否 租房用户
4 landlord_user int - 否 否 房东用户

  租房合同表主要是用来存储签署完毕的租赁合同档案。主要包括租房合同id、合同标题、租房用户、房东用户、签署日期等字段。如表4.9所示。

表4.9租房合同表

序号 字段名 类型 长度 是否非空 是否主键 备注
1 lease_agreement_id int - 是 是 租房合同id
2 contract_title varchar 64 否 否 合同标题
3 renting_users int - 否 否 租房用户
4 signature_date date - 否 否 签署日期

 5 系统功能实现

5.1 普通用户功能实现

5.1.1 登录注册功能实现

  用户提交用户名与密码后,UserController中的login方法执行登录校验。该方法接收请求参数,调用服务层查询用户是否存在,校验密码正确性。校验通过后生成唯一标识token,存入Redis并设置两小时有效期。登录注册界面如图5.1所示。

   图5.1登录注册界面

  核心代码实现如下:

复制代码
@PostMapping("login")

public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

String username = data.get("username");

String password = data.get("password");

password = RsaUtils.decryptByPrivateKey(password);

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

User byUsername = (User) resultList.get(0);

5.1.2 房源信息推荐查询功能实现

  HousingInformationController中的get_hits_list方法实现协同过滤推荐。该方法查询当前用户点击记录,提取点击量最高的房源类型。采用余弦相似度计算其他类型与该类型的相似程度,按相似度降序返回推荐房源列表。房源信息推荐查询界面如图5.2所示。

   图5.2房源信息推荐查询界面

  核心代码实现如下:

@RequestMapping("/get_hits_list")

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

Map<String,String> paramMap = service.readQuery(request);

String hitsSource = "SELECT COUNT( hits_id ) AS hits_count, source_id FROM hits WHERE source_table = 'housing_information' AND user_id = "+paramMap.get("user_id")+" GROUP BY source_id";

List<Map<String,Object>> hitsSourceList = service.selectMapBaseList(hitsSource);

double max = 0.0;

5.2.2 租房申请查询功能实现

  用户在房源详情页提交申请后,RentingApplicationController中的add方法接收请求参数。该方法将房屋编号、租房价格、租房用户及房东用户封装为实体对象,调用addEntity执行数据入库。用户通过get_list方法查看申请处理进度。租房申请查询界面如图5.3所示。

   图5.3租房申请查询界面

  核心代码实现如下:

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

Map<String,Object> paramMap = service.readBody(request.getReader());

RentingApplication renting_application = new RentingApplication();

复制代码
renting_application.setHouse_no(paramMap.get("house_no")==null?null:String.valueOf(paramMap.get("house_no")));

renting_application.setRenting_users(paramMap.get("renting_users")==null?null:Integer.valueOf(String.valueOf(paramMap.get("renting_users"))));

this.addEntity(renting_application);

5.1.4 租房合同签署功能实现

  申请获批后LeaseAgreementController中的add方法自动生成合同草案。该方法接收合同标题、合同内容、租房用户及房东用户等参数,构建租房合同实体后完成数据持久化。双方签署后合同状态更新为已生效。租房合同签署界面如图5.4所示。

   图5.4租房合同签署界面

  核心代码实现如下:

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

Map<String,Object> paramMap = service.readBody(request.getReader());

LeaseAgreement lease_agreement = new LeaseAgreement();

复制代码
lease_agreement.setContract_title(paramMap.get("contract_title")==null?null:String.valueOf(paramMap.get("contract_title")));

lease_agreement.setRenting_users(paramMap.get("renting_users")==null?null:Integer.valueOf(String.valueOf(paramMap.get("renting_users"))));

this.addEntity(lease_agreement);

5.1.5 合同签署功能实现

  合同生成后系统向租客与房东推送签署待办。ContractSigningController中的add方法记录每次签署操作,更新签署次数字段。双方全部签署完毕后系统通过set方法修改合同状态为已生效。合同签署界面如图5.5所示。

   图5.5合同签署界面

  核心代码实现如下:

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

Map<String,Object> paramMap = service.readBody(request.getReader());

ContractSigning contract_signing = new ContractSigning();

复制代码
contract_signing.setContract_title(paramMap.get("contract_title")==null?null:String.valueOf(paramMap.get("contract_title")));

contract_signing.setNumber_of_signs(paramMap.get("number_of_signs")==null?null:String.valueOf(paramMap.get("number_of_signs")));

this.addEntity(contract_signing);

5.3.7 账单信息管理功能实现

  合同生效后系统自动生成账单记录,BillingInformationController中的add方法接收账单名称、租房价格及租客信息。支付状态默认为未支付,用户执行支付后update_pay_state方法更新状态为已支付。账单信息管理界面如图5.6所示。

   图5.6账单信息管理界面

  核心代码实现如下:

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

Map<String,Object> paramMap = service.readBody(request.getReader());

BillingInformation billing_information = new BillingInformation();

复制代码
billing_information.setBill_name(paramMap.get("bill_name")==null?null:String.valueOf(paramMap.get("bill_name")));

billing_information.setRenting_users(paramMap.get("renting_users")==null?null:Integer.valueOf(String.valueOf(paramMap.get("renting_users"))));

this.addEntity(billing_information);

5.3 管理员功能实现

5.3.1 城市信息管理功能实现

  管理员通过CityInformationController中的add方法添加城市数据,接收城市名称及所在区域参数。get_list方法返回城市列表支持查看,set方法修改城市备注信息,del方法删除冗余城市记录。城市信息管理界面如图5.14所示。

   图5.14城市信息管理界面

  核心代码实现如下:

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

Map<String,Object> paramMap = service.readBody(request.getReader());

CityInformation city_information = new CityInformation();

city_information.setCity_name(paramMap.get("city_name")==null?null:String.valueOf(paramMap.get("city_name")));

this.addEntity(city_information);

5.3.2 区县信息管理功能实现

  管理员通过DistrictInformationController中的add方法配置区县数据,接收区县名称及所在城市参数。系统支持区县信息的增删改查操作,管理员可修改区县备注说明,删除错误录入的区县记录。区县信息管理界面如图5.15所示。

   图5.15区县信息管理界面

  核心代码实现如下:

@PostMapping("/add")

@Transactional

public Map<String, Object> add(HttpServletRequest request) throws IOException {

Map<String,Object> paramMap = service.readBody(request.getReader());

DistrictInformation district_information = new DistrictInformation();

district_information.setName_of_districtcounty(paramMap.get("name_of_districtcounty")==null?null:String.valueOf(paramMap.get("name_of_districtcounty")));

this.addEntity(district_information);

5.3.3 房源信息管理功能实现

  管理员通过HousingInformationController中的get_list方法查看待审核房源列表。管理员查看房源详情后调用set方法修改房源状态,可选择设为已通过或未通过。审核通过的房源进入可租状态。房源信息管理界面如图5.16所示。

   图5.16房源信息管理界面

  核心代码实现如下:

@PostMapping("/set")

@Transactional

public Map<String, Object> set(HttpServletRequest request) throws IOException {

Map<String,String> queryMap = service.readQuery(request);

Map<String,Object> paramMap = service.readBody(request.getReader());

HousingInformation housing_information = new HousingInformation();

housing_information.setHousing_status(paramMap.get("housing_status")==null?null:String.valueOf(paramMap.get("housing_status")));

this.setEntity(queryMap,new HashMap<>(),housing_information);

5.3.4 租房申请管理功能实现

  管理员通过RentingApplicationController中的get_list方法查看全平台申请记录。对于异常申请,管理员调用set方法修改申请状态为强制关闭或驳回。系统记录管理员操作日志,保证申请处理过程可追溯。租房申请管理界面如图5.17所示。

   图5.17租房申请管理界面

  核心代码实现如下:

@PostMapping("/set")

@Transactional

public Map<String, Object> set(HttpServletRequest request) throws IOException {

Map<String,String> queryMap = service.readQuery(request);

Map<String,Object> paramMap = service.readBody(request.getReader());

RentingApplication renting_application = new RentingApplication();

this.setEntity(queryMap,new HashMap<>(),renting_application);

6 系统测试

6.1 软件测试的目的及意义

  系统测试的主要目的就是检验房屋租赁综合管理平台是否符合设计要求19。测试工作包含普通用户、房东用户、管理员这三种角色所有的功能模块,即房源信息推荐查询、租房申请和合同签订、账单信息管理、投诉和申诉处理等主要业务流程。测试过程的目的就是发现系统中存在的逻辑错误、数据一致性问题和权限控制缺陷。模拟真实的用户操作场景来检验系统在正确的输入情况下能否得到期望的结果,在异常的输入情况下能否给出合理的提示。测试结果用来评价系统功能是否完整、操作是否顺畅、数据是否安全,给系统正式上线部署提供质量保证20。

6.2 用户功能测试

6.2.1 房源信息推荐查询功能测试

  该模块测试验证系统根据用户历史行为生成个性化推荐列表的业务逻辑。测试关注推荐算法能否依据用户点击记录提取偏好类型,并按相似度返回排序后的房源数据。

表6.1房源信息推荐查询测试用例表

测试内容 测试步骤 预期结果 实际结果
用户点击偏好推荐 用户登录后访问推荐模块 返回与历史点击类型相似的房源列表 符合预期
无历史记录推荐 新用户首次访问推荐模块 返回全平台热门房源列表 符合预期

6.3.2 租房申请查询功能测试

  该模块测试验证租客提交租房申请后信息正确存储与状态流转的业务完整性。测试关注申请提交成功后申请记录进入待审批状态,用户端能够正确查看申请处理进度。

表6.2租房申请查询测试用例表

测试内容 测试步骤 预期结果 实际结果
正常提交申请 租客选择可租房源后提交申请 生成申请记录且状态为待审批 符合预期
申请状态查询 用户进入申请查询页面 正确显示当前申请处理进度 符合预期

6.2.3 合同签署功能测试

  该模块测试验证租客与房东双方完成电子签署后合同状态正确更新的业务逻辑。测试关注双方签署完毕后合同状态从待签署变更为已生效,合同文件可正常查看。

表6.3合同签署测试用例表

测试内容 测试步骤 预期结果 实际结果
双方完整签署 租客签署后房东完成签署 合同状态更新为已生效 符合预期
单方签署未完成 仅租客完成签署操作 合同状态保持待签署 符合预期

6.3.3 账单信息管理功能测试

  该模块测试验证合同生效后系统自动生成账单以及租客支付后状态更新的业务逻辑。测试关注账单生成周期是否正确,支付完成后账单状态从未支付变更为已支付。

表6.4账单信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
账单自动生成 合同生效后进入计费周期 系统生成对应周期账单 符合预期
账单支付确认 租客执行支付操作 账单状态更新为已支付 符合预期

6.2.5 投诉管理功能测试

  该模块测试验证租客提交投诉后信息流转至管理员处理并反馈结果的业务闭环。测试关注投诉提交后审核状态为未审核,管理员处理后状态更新为已通过或未通过。

表6.5投诉管理测试用例表

测试内容 测试步骤 预期结果 实际结果
投诉提交流转 租客填写投诉内容后提交 投诉记录入库且状态未审核 符合预期
管理员处理反馈 管理员查看投诉后作出裁定 投诉状态更新且双方收到反馈 符合预期

6.3 房东功能测试

6.4.3 房源信息管理功能测试

  该模块测试验证房东发布房源后需经管理员审核方可上架的业务规则。测试关注房源提交后状态为待审核,管理员审核通过后房源变为可租状态。

表6.6房源信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
房源发布审核 房东提交房源信息 房源状态为待审核 符合预期
管理员审核通过 管理员批准房源发布 房源状态更新为可租 符合预期

6.3.2 租房申请查询功能测试

  该模块测试验证房东查看租客提交申请列表的正确性。测试关注房东端能够正确接收并显示租客提交的申请记录,申请信息完整准确。

表6.7租房申请查询测试用例表

测试内容 测试步骤 预期结果 实际结果
申请列表查看 房东进入申请查询页面 显示所有待处理申请记录 符合预期
申请详情查看 房东选择单条申请查看 正确显示房源与租客信息 符合预期

6.3.3 账单信息管理功能测试

  该模块测试验证房东查看名下房源账单回款状态的业务功能。测试关注系统根据当前登录房东身份筛选账单记录,返回正确的账单明细与支付状态。

表6.8账单信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
账单列表查看 房东进入账单管理页面 显示名下房源所有账单记录 符合预期
支付状态跟踪 租客完成支付后查看 账单状态显示为已支付 符合预期

6.3.4 投诉信息查询功能测试

  该模块测试验证房东查看针对自有房源投诉记录的业务逻辑。测试关注投诉列表正确展示投诉内容与处理状态,房东可查阅投诉详情。

表6.9投诉信息查询测试用例表

测试内容 测试步骤 预期结果 实际结果
投诉列表查看 房东进入投诉查询页面 显示自有房源相关投诉 符合预期
投诉详情查阅 房东选择投诉记录查看 正确显示投诉内容与处理状态 符合预期

6.4.7 申诉信息管理功能测试

  该模块测试验证房东对投诉结果持有异议时提交申诉后管理员二次审核的业务逻辑。测试关注申诉提交后审核状态为未审核,管理员作出最终裁决后状态更新。

表6.10申诉信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
申诉提交流转 房东填写申诉内容后提交 申诉记录入库且状态未审核 符合预期
管理员二次裁决 管理员审查申诉后作出裁定 申诉状态更新且房东收到结果 符合预期

6.4 管理员功能测试

6.4.1 城市信息管理功能测试

  该模块测试验证管理员对城市数据进行增删改查操作的业务功能。测试关注城市信息添加、修改、删除及查询操作的正确性与数据一致性。

表6.11城市信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
城市信息添加 管理员填写城市名称与区域 城市记录成功入库 符合预期
城市信息删除 管理员删除冗余城市记录 城市数据从列表中移除 符合预期

6.4.2 区县信息管理功能测试

  该模块测试验证管理员配置城市下属区县数据的业务功能。测试关注区县信息与城市之间的关联关系是否正确,区县数据的维护操作是否完整。

表6.12区县信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
区县信息添加 管理员选择城市后添加区县 区县记录正确关联所属城市 符合预期
区县信息修改 管理员修改区县备注信息 数据更新后正确保存 符合预期

6.4.3 房源信息管理功能测试

  该模块测试验证管理员审核房东提交房源的业务规则。测试关注房源审核流程的正确性,审核通过后房源状态更新为可租,审核未通过时状态保持不可租。

表6.13房源信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
房源审核通过 管理员审核房源并设为已通过 房源状态更新为可租 符合预期
房源审核驳回 管理员审核房源并设为未通过 房源状态保持不可租 符合预期

6.4.4 租房申请管理功能测试

  该模块测试验证管理员查看全平台申请记录并对异常申请进行干预的业务功能。测试关注申请列表的正确展示以及管理员修改申请状态的操作有效性。

表6.14租房申请管理测试用例表

测试内容 测试步骤 预期结果 实际结果
申请列表查看 管理员进入申请管理页面 显示全平台所有申请记录 符合预期
异常申请干预 管理员强制关闭异常申请 申请状态变更为已关闭 符合预期

6.4.5 租房合同管理功能测试

  该模块测试验证管理员监督全平台合同签署进度的业务功能。测试关注合同列表展示所有合同记录,管理员可查看合同详情并对缺失签署文件的合同进行干预。

表6.15租房合同管理测试用例表

测试内容 测试步骤 预期结果 实际结果
合同列表查看 管理员进入合同管理页面 显示全平台所有合同记录 符合预期
合同详情查看 管理员选择合同查看详情 正确显示合同内容与签署状态 符合预期

6.4.6 投诉信息管理功能测试

  该模块测试验证管理员接收投诉信息并作出处理裁定的业务闭环。测试关注投诉列表正确展示,管理员处理后状态更新且结果反馈至投诉双方。

表6.16投诉信息管理测试用例表

测试内容 测试步骤 预期结果 实际结果
投诉列表查看 管理员进入投诉管理页面 显示全平台所有投诉记录 符合预期
投诉处理裁定 管理员查看后作出处理决定 投诉状态更新且双方收到反馈 符合预期

6.5 测试结论

  系统完成了所有的测试用例的测试工作。房源信息推荐查询功能对于用户存在历史记录和不存在历史记录的情况,都会给出预期的推荐列表。租房申请功能对于可租房源和已出租房屋的判定逻辑正确,申请状态流转符合设计。合同签署完毕之后状态变为已生效,单方面签署的时候为待签署状态。账单信息管理功能在合同生效之后自动产生账单,支付完成之后状态正确改变。投诉管理功能可以形成完整的投诉提交到管理员处理反馈的过程。房源信息管理功能对发布审核和上架状态进行准确的控制,即房源信息发布后是否需要审核以及审核通过后是否可以上架。申诉信息管理功能是对申诉申请和二次裁决的二次审查。城市信息、区县信息和公告管理等基础配置功能都可以实现增删改查的操作。所有的测试项实际结果和预期结果一致。

总结

  房屋租赁市场存在着信息不透明、交易流程繁杂、多方协作效率低下的实际问题。传统的线下模式依靠中介门店和纸质合同来核实房源的真实性,租房申请到合同签订的时间太长。本系统用Spring Boot和Vue技术栈来创建房屋租赁综合管理平台,实现普通用户、房东用户、管理员三个角色的功能。系统完成房源信息发布和搜索、租房申请审批、电子合同签订、账单周期计算、投诉和申诉处理等主要业务流程闭环的创建,实现预期的设计目标。

  系统开发过程是按照需求分析、系统设计、编码实现、系统测试四个阶段进行的。采用浏览器-服务器架构,前端使用Vue框架实现响应式界面,后端用Spring Boot实现业务逻辑,MySQL数据库用来存储用户、房源、合同、账单等重要数据表。普通用户进行房源浏览、租房申请、合同签订、投诉提交等操作。房东用户对房源发布与管理、申请审批、合同档案管理、账单回款跟踪和申诉提交进行操作。管理员对城市区县信息进行设置,审核房源的合规性,对全平台申请和合同进行监管,对投诉和申诉进行裁决,对公告进行发布。经过功能测试、流程验证之后,各个模块的运行情况达到预期的效果。

  目前系统还存在一些不足。房源推荐功能是用协同过滤算法来实现,没有使用更多的用户偏好方面的因素。支付模块只模拟支付状态的改变,没有连接真实的第三方支付接口。合同的签署使用电子签名的方式进行,没有与权威的电子认证服务机构对接。系统在单机环境里并没有进行大规模并发访问性能优化的问题。

  未来的发展方向有接入真实的支付接口进行租金的在线结算,集成地图服务来改善房源的位置展示和检索。推荐算法可以加入用户的画像以及房源的属性等多方面特征来提高匹配度。合同签署可以对接合法的电子认证服务来提高法律效力。系统功能完整性、操作便捷性使它在城市租房市场上有推广的价值,可以减少租客和房东之间信息不对称的程度,提高租赁交易的可追溯性以及管理效率。

参考文献

1 欧阳天健. 房屋租赁税的制度解读与优化路径J. 检察风云, 2026, 28(5): 19-21.

2 鲍呈辉. 房屋租赁合同签订后未实际经营仍需担责N. 青海法治报, 2026-02-25(7).

3 闫萌. 房屋租赁市场的长远发展趋势J. 中国乡镇企业会计, 2026, 35(1): 246-248.

4 吴宏伟, 孙诗语, 刘艳. Spring Boot架构下智能匹配算法的房屋租赁系统开发J. 佳木斯大学学报(自然科学版), 2025, 43(11): 11-14.

5 杜娟, 程良. 房屋租赁推荐系统的设计与实现J. 电脑知识与技术, 2025, 21(17): 36-39.

6 王昊. 房屋租赁价格决策技术及服务平台设计与实现D. 哈尔滨: 哈尔滨工业大学, 2025.

7 闫银娟. 基于SSM的房屋租赁系统的设计与实现J. 电脑知识与技术, 2022, 18(33): 38-41.

8 刘文卓. 基于区块链的房屋租赁系统的设计与实现D. 武汉: 华中科技大学, 2022.

9 王馨. 基于数据挖掘的房屋租赁管理系统设计与实现D. 哈尔滨: 哈尔滨理工大学, 2021.

10 Bay Property Management Group Survey Reveals Rising Costs Are Reshaping Rental Housing MarketJ. M2 Presswire, 2026, 45(6): 1-4.

11 Rahman A M, Pham A, Ranapanada I, et al. From regulation to reality: socio-spatial inequality of rental housing standards compliance in Victoria, AustraliaJ. Cities, 2026, 173: 106950-106950.

12 Şenyüzlüler F, Baykasoglu A. Development of web based data-driven recommendation system for house rental via hierarchical fuzzy axiomatic designJ. Kybernetes, 2026, 55(2): 1156-1182.

13 Obse G Z. Addis Ababa online home rental management system, EthiopiaJ. Journal of Electrical Systems and Information Technology, 2025, 12(1): 29-29.

14 Qingshui X, Zongyang H, Haifeng M, et al. Housing rental system based on blockchain technologyJ. Journal of Physics: Conference Series, 2021, 1948(1): 1-8.

15 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计J.工业控制计算机,2023,36(3):51-53.

16 谢振华.基于Vue.js与Spring Boot的教务管理系统设计J.电脑与信息技术,2024,32(4):95-97.

17 赵停停.基于MySQL数据库技术的Web动态网页设计研究J.信息与电脑(理论版),2023,35(17):174-176.

18 李兴华,马云涛,王月清.SSM(Spring+Spring MVC+MyBatis)开发实战M.北京:人民邮电出版社,2023:371.

19 吕云翔.实用软件工程M.北京:人民邮电出版社,2024:310.

20 吕云翔.软件工程M.北京:人民邮电出版社,2024:317.

致谢

  时光荏苒,大学四年学习生涯即将画上句号。回首这段求学经历,从最初选题的迷茫到最终系统完成与论文定稿,每一步成长都离不开师长们的悉心指导。特别感谢我的校内指导老师,在选题方向、系统架构设计、论文逻辑梳理及最终定稿的全过程中给予我耐心而专业的指导。老师治学严谨的态度深深感染了我,每一次交流都让我对学术研究有了更深的理解。同时感谢企业导师在技术实践方面提供的宝贵建议,帮助我将理论知识与工程落地有效结合。

  毕业设计的完成是一次宝贵的综合训练。从需求分析到系统设计,从编码实现到测试验证,整个过程遇到了诸多理论难点与技术瓶颈。在反复查阅资料与调试代码的过程中,我逐步克服了这些困难,最终完成了房屋租赁系统的开发与论文撰写。大学四年构建了完整的专业知识体系,这段经历让我对未来的职业发展充满信心。

  感谢计算机学院的各位老师,课堂上悉心传授的专业知识为本次毕设奠定了坚实基础。感谢辅导员老师在生活与就业方面的关怀与帮助。感谢同窗好友与实验室伙伴们,在平日学习中的相互鼓励与深夜调试中的技术探讨,让这段求学之路充满温暖。

  最后感谢父母多年来的养育之恩。他们默默付出,始终是我最坚强的后盾。在未来的工作中,我将以踏实的态度回馈社会,不负家人与师长的期望。

点赞+收藏+关注 → 私信领取本源代码、数据库

相关推荐
在世修行2 小时前
智学文枢:数据归谁管、变了怎么通知
python·桌面应用·状态管理·signal·store·pyside
时间的情敌2 小时前
Electron 设置-webkit-app-region: drag;实现拖拽后, 无法响应鼠标划过事件及点击事件的解决方式
前端·vue.js
VX_bysjlw9852 小时前
基于协同过滤的美食推荐系统的设计与实现32221-计算机毕设原创(免费领源码+带部署教程)
java·spring boot·redis·mysql·tomcat·maven·mybatis
Misnice2 小时前
Python 的数据类型
java·windows·python
FITA阿泽要努力2 小时前
Sub Agent:上下文管理的艺术
人工智能·python·agent
全栈弄潮儿3 小时前
Python实战第10期:异常处理
后端·python·编程语言