网站内容建设需要注意哪些问题,越南网站建设,wordpress邮件发送类,网页设计作业效果图基于SpringBoot的房屋租赁管理系统的设计与实现
1 绪论
1.1 课题来源
随着社会的不断发展以及大家生活水平的提高#xff0c;越来越多的年轻人选择在大城市发展。在大城市发展就意味着要在外面有一处安身的地方。在租房的过程中#xff0c;大家也面临着各种各样的问题越来越多的年轻人选择在大城市发展。在大城市发展就意味着要在外面有一处安身的地方。在租房的过程中大家也面临着各种各样的问题比如需要费时费力去现场看房价格不透明等等就对于年轻人们来说这是一个十分令人头疼的问题。而对于即将要毕业在外工作的我来说也面临着租房的问题。所以想尽自己所学写一个房屋租赁管理系统。实现租房自由化。
1.2 开发背景和目的
随着科技的不断发展与进步人们的办公工具由之前的纸质笔记本都已经改变成了计算机数字化时代移动设备打破了地域的限制和提供了大量的办公工具它的使用能大幅度解决我们很多工作上的难题大大提高我们的办公效率和管理效率。例如每个高校都有着自己的官网以进行校园的管理。只有有效的管理方法才能满足社会的发展需求人们的生活需求[1]。面对房源信息层出不穷的冲击利用现有的技术实现房屋租赁管理系统来提高房屋租赁管理的效率不仅是大势所趋更是一个有效的方法。 本系统致力把繁琐复杂的房屋租赁变得简单快捷解决房屋租赁中遇到的各种问题解决传统方式处理房屋租赁效率不高浪费人力物力且人工的因素导致的信息丢失不可靠问题为房屋租赁提供简单可靠的服务。
1.3 本课题的研究方法及设计思路
在实现此房屋租赁管理系统之前使用问卷调查的方法对身边的人进行租房等一系列问题的调查。通过调查和分析得知大多数人觉得线上租房还是不可靠且麻烦并且就算是已经占据人们生活的安居客软件并没有完全的实现先线上租房也要在线下进行签约支付。所以利用现学的技术开发出一款适合年轻人租房的软件是必须趋势。 在实现此房屋租赁管理系统设计了三层不同的权限的使用者由高到低分别是管理员、房东中介用户。房屋租赁管理系统设计了以下几个模块分别是房屋管理模块订单模块合同管理模块收支记录模块新闻公告模块用户管理模块角色管理模块这几大模块。不同权限对应着不同的操作在此系统中完整的实现租房的整个流程。具体研究内容如下 第一章是绪论这里首先介绍了房屋租赁管理系统确定这个课题的来源、开发的背景、研究的目的、国内外研究现状及本课题的研究方法。 第二章是可行性分析从经济、技术、运行、操作四方面进行了相应的描述。 第三章是系统的总体设计从系统的非功能性和功能性需求两方面入手紧接着介绍了系统数据流图系统数据流程图、系统功能流程图等内容。 第四章是系统的数据库设计从概念设计、逻辑设计、以及结构设计三个角度对本系统数据库进行了详细的设计。 第五章是系统的设计与实现先概述了下系统构建所需的硬件条件再详细的介绍了系统各个模块的功能的设计与实现从用户接口及方法和界面实现两方面展开叙述。 第六章是系统的运行与测试在完成编码后要对系统的功能对应需求进行验证从系统的测试环境测试过程两方面进行用黑盒测试和性能测试方法对系统进行测试。
2系统的总体设计
2.1 系统非功能性需求
为了充分体现出在线租房带来的便捷与高效此系统的设计需注意如下几点 1高效性。高效性中主要在用户体验感方面用户在访问的过程中不会出现卡顿的现象这适合在设计方面需要整体考虑房屋租赁的整体流程和数据库的访问次数问题要考虑到数据冗余的设计达到数据库的高效运行反应到前台用户访问起来快速而高效。 2安全性。此系统是房屋租赁管理设计到的用户信息比较重要例如姓名身份证号电话号码房屋地址等这些数据都是不能泄露的情况因此设计系统必须要有安全性和稳定性那就可以从两个方面来考虑一是硬件设备的选择开发系统必须是有很强的容错性。二是系统数据库的设计利用MySql数据库来进行设计使系统的体系结构更灵活此外考虑到是房屋租赁管理系统信息量大数据的管理要考虑到存储和备份。 3实用性。开发之初通过对背景以及国内外现状进行了调查使用的人群也比较广泛在设计的过程中要考虑到会不会操作的问题既要满足准确性和安全性也要满足操作的简单界面大方功能齐全这些方面来进行设计。
2.2 系统功能性需求分析
2.2.1 基本信息描述
在此房屋租赁管理系统中能够使用本系统的有三类人分别是管理员房东中介用户。管理员具有最高权限管理着房东中介和用户的所有操作管理员管理着各种信息例如房源信息公告信息等。房东中介对房屋信息进行着管理用户在此系统中进行租房预定房屋并且可以打电话进行详细咨询线上合同的签订以及支付租金等功能。此房屋租赁管理系统致力于满足用户的各种需求以及解决房源累积的问题使得屋尽所用[6]。
2.2.2 房屋租赁流程描述
在此房屋租赁管理系统中在租房之前房主(中介)要录入房屋的基本信息方便用户浏览选房。用户登录系统后系统显示整租、合租类型的房屋用户根据自己的需求(房屋朝向面积租金位置选择)选择自己想要的房子看中哪个房子后可点击进去进行房屋信息的详细查看用户可以与房东(中介)进行电话联系用户看中房子可进行线上预订预订成功后用户进行线上合同签订并进行支付租金。房东(中介)在后台浏览房屋信息若是用户预订的房间暂时不能出租可以提交退租申请管理员会进行审核后做出处理。房东在后台可以看到房屋信息列表订单的明细等。在房屋线上租定好后管理员查询合同并且查看订单保证线上租赁的准确无误。至此一套完整的线上租房流程已经结束。整个租房过程全程线上进行保证着租房的高效性与安全性[7]。
2.3 系统功能框架图
具有不同的权限的用户就拥有不一样的可操作功能。在此房屋租赁管理系统里面有三种权限拥有者分别是管理员房东(中介)用户。此功能框架图是根据房屋租赁的各大模块来划分的。功能框架图如下所示 功能描述如下 1管理员权限 ①房屋管理模块:对房屋信息进行录入修改删除查询的操作 ②订单管理模块:对订单记录进行查询和对退租房屋审核的操作 ③合同管理模块:对合同信息进行查看和打印纸质版合同的操作 ④租房类型管理模块:对租房类型进行增加修改删除查询的操作 ⑤用户管理模块:对房东(中介)用户的基本信息进行管理:录入等对自己信息的修改保存修改登录密码的操作 ⑥收支记录模块:对收支记录进行查询操作 ⑦新闻公告模块:对新闻公告进行添加修改删除查询的操作 ⑧角色管理:进行角色的相对应的操作例如增加、删除等 ⑨权限管理:不同的人具有不同的权限来进行操作 2房东(中介)权限 ①房屋管理模块:对房屋信息进行录入、删、改、查的操作 ②订单管理模块:对订单记录进行查询和对退租房屋申请的操作 ③合同管理模块:对合同信息进行查看和打印纸质版合同的操作 ④新闻公告模块:对新闻公告进行浏览 ⑤收支管理模块:对收支记录进行查看 ⑥个人信息模块:对个人信息的管理基本信息的录入、改等操作 3用户权限 ①房屋管理模块:对房屋信息进行浏览预订的操作 ②订单管理模块:通过租赁功能生成订单或者修改(不想租退租)删除查询的操作 ③合同管理模块:对合同信息进行签订预览和打印纸质合同 ④新闻公告模块:对新闻公告进行浏览 ⑤收支管理模块:对收支进行录入修改查看的操作 ⑥个人信息模块:对个人信息的管理基本信息的录入、改等操作
2.4 系统数据流图
2.4.1 房屋租赁管理系统顶层数据流图
1管理员具有最高权限实时更新房源信息。 2房东中介登录系统在此系统内房东中介对房屋信息信息修改、删除、查询房屋简介及房屋状态查询浏览的操作。 3用户进行注册登录在此系统内进行租房。
2.4.2 房屋租赁管理系统零层数据流图
零层数据流图里面体现出来的是租房的整个流程及数据的变化。零层数据流图如下所示
2.4.3 房屋租赁管理系统一层数据流图
房东(中介)对房屋信息的更新修改的一层数据流图如下所示
2.5 系统功能流程图
2.5.1 总体功能流程图
该系统首先是使用者根据自己的权限进入该系统对于不同的角色登录后有着不同的使用权限。用户使用时候先进行登录选择相应的角色系统通过验证会返回不同的功能菜单保证了系统数据的安全性。
2.5.2 特有功能
1登录管理程序验证使用者身份信息的入口只用通过了验证才能对里面的功能进行操作。 2查询房屋信息的功能房屋位置、价格、面积、朝向这每个要素都可以作为查询点来查询自己想要的房子。 3修改密码用于用户修改登录密码等。 4管理员房东用户可以下载合同保留纸质版合同。 5管理员在管理房东和用户基本信息时可以采用批量上传的方式。 6查询房东的信息时可以通过房东编号等数据项查询信息且每一数据项都可以作为查询点。 7在用户对房子进行预定后房东因个别原因不想出租时可以提交退租申请管理员在接收到退租申请后可以进行审核。
2.6 数据字典
数据字典是对数据库中数据的描述在建立之初有一个大概的描述后期可进行不断的充实和完善。数据字典同时也是数据库设计的重要基准。后期使用中如果对数据库条目的使用不清楚时可以通过数据字典查询详细的信息比如数据项的详细描述类型等信息。这些可以减少数据之间的不兼容现象。如下表所示为此线上房屋租赁管理系统的数据字典。现从数据项数据流数据处理数据存储分类具体编写
3 系统的数据库设计
3.1 数据库概念设计
概念设计是整个数据库设计的关键是对此房屋租赁管理系统的使用者的需求进行分析概念设计是对第三章系统总体设计中需求分析部分收集到的数据进行归纳整理确定实体、以及实体的属性和实体之间的联系形成局部E-R图和全局E-R图[8]。
3.1.2 整体E-R图 3.2 数据库逻辑设计
3.2.1 关系模型的转换
1房屋房屋编号房东编号房子描述信息房子状态房子描述摘要缩略图标题创建时间更新时间创建人更新人房间号轮播图卧室数卫生间数面积月租金额日租金额押金 2城市城市编号城市名创建者创建时间修改者修改时间 3类型类型编号类型名类型种类创建者创建时间修改者修改时间 4用户用户编号用户名用户密码状态创建者创建时间修改者修改时间电话电子邮件 5订单订单编号用户编号入住日期正常退租日期状态创建时间更新时间创建人更新人退租日期退租价格押金日租金租住天数总租金退租状态 6收支记录收支编号房屋编号创建时间更新时间创建人更新人金额类型描述内容 7角色角色编号,描述等级创建时间变更时间创建人更新者 8权限权限编号名字位置创建时间变更时间创建人更新者 9公告公告编号,创建时间变更时间创建人更新者,标题内容摘要
3.2.2 关系模型的规范
1房屋房屋编号房东编号房子描述信息房子状态房子描述摘要缩略图标题创建时间更新时间创建人更新人房间号轮播图卧室数卫生间数面积月租金额日租金额押金 函数依赖集房屋编号—房东编号房东编号—房屋编号房屋编号房东编号—(房子描述摘要缩略图标题创建时间更新时间创建人更新人房间号轮播图卧室数卫生间数面积月租金额日租金额押金(房屋编号房间号)—(房子描述摘要缩略图标题创建时间变更时间创建人更新者房间号轮播图卧室数卫生间数面积月租金额日租金额押金至此它已经没有部分函数依赖和传递函数依赖达到3NF标准属于关系模式属于3NF。不用再进行模式分解。
3.3 数据库结构设计
通过对该系统的研究将系统数据分为一下几个表category表city表finance_record表notice表permission表post表role表t_order表user表等几个表各表的具体设计结构如下 1房屋类型category表此表是用来记录房屋类型的必要信息它的设计结构如表3-1所示
4 系统的设计与实现
4.1 系统开发环境
此房屋租赁管理系统的架构是B/S架构下面是详细的介绍了在线房屋租赁管理系统的软硬件环境和开发环境。 操作系统windows10 CPU:Inteli5 内存16G 浏览器Internet Explorer、Google Chrome等 集成开发环境IntelliJ IDEA Java开发工具集jdk 1.8 关系型数据库 MYSQL 5.6 非关系型数据库ElasticSearch 5 Web应用服务器 Apache Tomcat8
4.2 系统各功能模块设计与实现
4.2.1 用户接口及方法设计
分类业务逻辑接口 public interface CategoryService extends BaseServiceCategory, Long { 查询所有分类目录,带count和根据level封装name List findByUserId(Long userId); 获得某个分类的所有房屋数 Integer countPostByCateId(Long cateId); 根据用户ID删除 Integer deleteByUserId(Long userId); 将分类ID列表转成分类 List cateIdsToCateList(List cateIds, Long userId); } 城市逻辑接口 public interface CityService extends BaseServiceCity, Long { } 收支记录业务逻辑接口 public interface FinanceRecordService extends BaseServiceFinanceRecord, Long { 根据用户ID获得预定列表 Page findByUserId(String startDate, String endDate, Long userId, Page page); 根据时间范围查询总金额 Integer getTotalMoneySum(String startDate, String endDate); } 邮件发送业务逻辑接口 public interface MailService { 发送邮件 void sendMail(String to, String title, String content) throws MessagingException; } 公告通知逻辑接口 public interface NoticeService extends BaseServiceNotice, Long { } 订单业务逻辑接口 public interface OrderService extends BaseServiceOrder, Long { 查询总金额 Integer getTotalPriceSum(Order condition); 根据条件查询 Page findAll(Order condition, Page page); 查询有效订单 Order findByPostId(Long postId); } 权限逻辑接口 public interface PermissionService extends BaseServicePermission, Long { 根据角色Id获得权限列表 List listPermissionsByRoleId(Long roleId); 获得某个用户的权限URL列表 Set findPermissionUrlsByUserId(Long userId); 获得某个用户的用户ID和资源类型 List findPermissionTreeByUserIdAndResourceType(Long userId, String resourceType); 根据角色ID获得权限列表 List findPermissionByRoleId(Long roleId); 获得所有权限带有等级 List findPermissionListWithLevel(); 统计子节点数量 Integer countChildPermission(Long id); 根据URL获得权限 Permission findByUrl(String url); } 房屋/页面业务逻辑接口 public interface PostService extends BaseServicePost, Long { 根据条件获得列表 Page findPostByCondition(Post condition, Page page); 根据租客userId查询 Page findByRentUserId(Long userId, Page page) 获得最新房屋 List getLatestPost(Long cityId, int limit); 根据状态统计 Integer countByStatus(Integer postStatus); 获得合租房屋 List getUnionRentPost(Post post); } 权限和角色的业务逻辑接口 public interface RolePermissionRefService { 删除某个角色的所有关联 void deleteRefByRoleId(Long roleId); 添加角色和权限关联 void saveByRolePermissionRef(RolePermissionRef rolePermissionRef); 批量添加 void batchSaveByRolePermissionRef(List rolePermissionRefs); } 角色逻辑接口 public interface RoleService extends BaseServiceRole, Long { 删除某个用户的所有关联 void deleteByUserId(Long userId); 根据编号查询单个权限 Role findByRoleId(Long roleId); 根据编号查询单个权限 Role findByRoleName(String roleName); 根据用户Id获得角色 Role findByUserId(Long userId); 统计这个角色的用户数 Integer countUserByRoleId(Long roleId); 查询某个用户最大的角色等级 Integer findMaxLevelByUserId(Long userId); 查询小于等于该等级的角色 List findByLessThanLevel(Integer level); 获得用户注册默认角色 Role findDefaultRole(); 获得用户注册默认角色 Role getMaxRoleByUserId(Long userId); } 用户和角色的逻辑接口 public interface UserRoleRefService extends BaseServiceUserRoleRef, Long { 根据用户Id删除 void deleteByUserId(Long userId); } 用户业务逻辑接口 public interface UserService extends BaseServiceUser, Long { 根据账号获得用户 User findByUserName(String userName); 根据身份证号码查找用户 User findByIdCard(String idCard); 更新密码 void updatePassword(Long userId, String password); 分页获取所有用户 Page findByRoleAndCondition(String roleName, User condition, Page page); }
4.2.2 界面实现
1用户界面 用户界面功能的实现是根据系统的功能性需求和功能流程图数据库逻辑设计来实现的。这里选取用户功能中租房这一模块来做详细的说明。用户租房界面如图4.1所示 选中后的房源信息界面如图4.2所示 用户在登录之后会进入房源信息列表界面房源信息是从后台数据库中取出来的。在房源信息列表中用户搜索自己喜欢的户型进行查看。在选中后的房源信息界面利用数据库中房屋表的轮播图字段来实现房源图片的详细查看。在点击立即租房的确定按钮时后台数据库中的t_order表中也会生成一条相应的记录完成部分租房。 在选定好房子之后用户可见的页面经过a标签跳转到合同页面正规的房租租赁都要有合同来支撑。用户对合同认同之后点击我已阅读并同意上述合同按钮跳转到模拟支付的页面点击按钮表示支付成功。合同和支付界面如图4.34.4所示: 进入后台管理模块t_order表中也就多出一条租房记录是通过后台数据库传到显示页的。在订单管理这块用户可以查看电子合同并打印纸质合同或者是提出退租申请。在这里的订单状态中若用户签订了合同订单状态中会显示合同生效若是退租通过会显示已退租。订单中具体显示着入住时间退租时间总押金用户姓名房东姓名房屋具体地址这些内容。订单页面如图4.5所示: 2管理员页面 管理员界面功能的实现是根据系统的功能性需求和功能流程图数据库逻辑式设计来实现的这里选取管理员添加房屋这一模块来做详细说明添加房屋界面如图4.6所示 房屋发布界面如图4.7所示 管理员登录系统之后进入管理员可以操控的后台管理欢迎界面菜单栏显示着管理员可操作的功能。点击房屋管理按钮显示所有的房屋的信息包括出租的和未出租的可以进行筛选。点击发布新的房屋进入添加房屋信息界面在添加时后台数据库的数据同时也发生改变。添加房屋后管理员房东(中介)用户都可以在前台看到新的房屋信息。 管理员界面功能的实现是根据系统的功能性需求和功能流程图数据库逻辑设计来实现的这里再选取管理员管理用户这一模块来做详细说明用户管理界面如图4.8所示 在这一模块中有个最大的特点是管理员可以批量删除用户的信息同时删除几个用户的信息是可以成功的。 3房东(中介)页面 房东(中介)界面功能的实现是根据系统的功能性需求和功能流程图数据库逻辑设计来实现的这里再选取房东(中介)管理订单收支明细和个人信息这三个模块来做详细说明。房东(中介)管理订单界面如图4.9所示 在这个模块中用户申请提前退租时房东(中介)对订单的操作中有退租审核通过或者拒绝的功能同时在用户对房子预订之后房东(中介)的房子暂时出租不了的情况下可以提交退租申请给管理员管理员同意申请订单会被取消。房东(中介)管理收支明细界面如图4.10所示 在这个模块中每个房东(中介)拥有自己的收支明细表在这个表里面有收支类型明细支出还是收入备注里面包含订单ID房屋总金额押金。房东(中介)管理个人信息界面如图4.11所示 在这个模块中房东可以对自己的基本信息(头像账号姓名身份证号手机号电子邮箱个人描述)进行修改保存同时可以修改自己的密码。
5结论
总览全文本论文做了如下工作: 1详细说明了我国现有的租房行业的萧条也简要分析了国内与国外线上租房实现租房自由化的各种现状以及房租租赁管理系统的可行性分析。 2对系统进行了总体设计的详细描述。确定系统中出现的角色以及该角色的可以使用的功能进行设计。 3详细阐述了此房屋租赁管理系统的系统设计和实现系统设计中从基本功能、功能框架图数据流图、功能流程图这几个方面详细介绍每个方面的介绍中都是图文结合的形式方便理解。在数据库的设计中从概念设计逻辑设计结构设计多角度详细展开了叙述层层解剖深度对数据库进行详细的设计。 4对系统的开发环境进行了一定的说明除此之外对系统的各个功能进行了完整的分析和实现从接口设计到界面实现。 5最后对系统的功能进行了测试证明了实现功能的可用性和完整性并得到结论此房屋租赁管理系统满足需求分析中所提到的要求。 至此完成了基于Springboot的房屋租赁管理系统的实现经测试表明该系统能够满足需求分析中提出的需求。但限于自身能力的不足。系统仍有一些不好的地方改进的地方如下 1数据库相应表中为租房用户的用户名和头像等属性预留了存储位置但由于受限于时间系统目前还不具有社交功能后续的开发会加入租房用户与房东中介的在线聊天功能。 2本系统虽然收集了租房用户的房源搜索记录但目前还没有算法对这些数据进行利用和分析在后续的工作中会加入数据挖掘、机器学习等方面的算法对接到系统中来。 3房源居住的反馈机制还不够完善租房用户只能举报虚假的房源信息而不能发表居住后的真实体验。后续的开发工作会给租房用户提供房源评论功能这样能给其他租客提供参考意见。 4商家吸引用户最直接的手段就是打折促销房屋出租也同样可以借鉴。在后续的系统运营上会加入房租打折、优惠券等功能。