【开源】SpringBoot框架开发房屋出售出租系统

news/2024/7/10 19:54:28 标签: spring boot, 开源, 后端, javascript, java, spring, java-ee

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 房屋销售模块
    • 2.2 房屋出租模块
    • 2.3 预定意向模块
    • 2.4 交易订单模块
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询房屋求租单
    • 4.2 查询卖家的房屋求购单
    • 4.3 出租意向预定
    • 4.4 出租单支付
    • 4.5 查询买家房屋销售交易单
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的房屋出售出租系统包含了房屋销售模块、房屋出租模块、预定意向模块、交易订单模块、图表分析模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,房屋出售出租系统基于角色的访问控制,给管理员、买家和卖家角色使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

房屋出售出租系统包含了房屋销售模块、房屋出租模块、预定意向模块、交易订单模块、图表分析模块,接下来进行详细介绍。

2.1 房屋销售模块

房屋销售模块允许用户将待出售或出租的房源信息录入系统,包括房屋的基本信息(如面积、户型、楼层等)、地理位置、价格等。房屋销售模块提供用户按照自定义的条件,如区域、价格、面积等要求,快速搜索并筛选符合条件的房源。房屋销售模块为每个房源提供详细信息的展示页面,包括房屋照片、户型图、附属设施等,以便用户全面了解房源情况。对用户提交的看房预约、购买或租赁订单进行管理和跟踪,包括订单状态的更新、支付信息的记录等。房屋销售模块的目的是帮助用户快速、高效地管理和操作房屋销售和出租的流程,提供便捷的搜索和交流方式,为房地产行业的相关角色提供优质的服务和体验。

2.2 房屋出租模块

房屋出租模块允许用户将待出租的房源信息录入系统,包括房屋的基本信息(如面积、户型、楼层等)、地理位置、租金等。房屋出租模块提供用户按照自定义的条件,如区域、租金、面积等要求,快速搜索并筛选符合条件的房源。房屋出租模块为每个房源提供详细信息的展示页面,包括房屋照片、户型图、附属设施等,以便用户全面了解房源情况。房屋出租模块的目的是帮助用户快速、高效地管理和操作房屋出租的流程,提供便捷的搜索和交流方式,为房地产行业的相关角色提供优质的服务和体验。

2.3 预定意向模块

预定意向模块允许用户填写个人信息和意向房源的相关要求,如面积、价格、地理位置等,以便系统能够准确匹配和提供符合要求的房源。系统将用户的预定意向记录并进行管理,包括意向房源的信息、提交时间、处理状态等。用户可以随时查看自己的预定记录,并进行相应的操作。预定意向模块的目的是为潜在买家或租户提供便捷的预定房源的方式,并为房地产中介或开发商提供高效的管理和跟进工具,以提升用户体验和提高业务效率。

2.4 交易订单模块

交易订单模块允许用户创建和管理交易订单,包括购买、出租或退租等各种类型的订单。用户可以填写相关信息,目的是提供一个高效和便捷的方式管理房屋销售和出租的交易订单,确保交易的顺利进行,并提供相关方所需的信息和支持。这样可以提高房地产行业的交易效率和用户满意度。


三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询房屋求租单

java">@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询房屋求租单")
public Result<IPage<CustomerLease>> getByPage(@ModelAttribute CustomerLease customerLease ,@ModelAttribute PageVo page){
    QueryWrapper<CustomerLease> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(customerLease.getUserRemark())) {
        qw.like("user_remark",customerLease.getUserRemark());
    }
    IPage<CustomerLease> data = iCustomerLeaseService.page(PageUtil.initMpPage(page),qw);
    for (CustomerLease lease : data.getRecords()) {
        HouseLease houseLease = iHouseLeaseService.getById(lease.getHouseId());
        lease = HouseVoChangeUtils.fillCustomerLeaseByHouseLease(lease,houseLease);
        User user = iUserService.getById(lease.getUserId());
        lease = HouseVoChangeUtils.fillCustomerLeaseByUser(lease,user);
    }
    return new ResultUtil<IPage<CustomerLease>>().setData(data);
}

4.2 查询卖家的房屋求购单

java">@RequestMapping(value = "/getBySellerPage", method = RequestMethod.GET)
@ApiOperation(value = "查询卖家的房屋求购单")
public Result<IPage<CustomerSell>> getBySellerPage(@ModelAttribute CustomerSell customerSell ,@ModelAttribute PageVo page){
    QueryWrapper<CustomerSell> qw = new QueryWrapper<>();
    qw.eq("seller_id",securityUtil.getCurrUser().getId());
    if(!ZwzNullUtils.isNull(customerSell.getUserRemark())) {
        qw.like("user_remark",customerSell.getUserRemark());
    }
    IPage<CustomerSell> data = iCustomerSellService.page(PageUtil.initMpPage(page),qw);
    for (CustomerSell sell : data.getRecords()) {
        HouseSell houseSell = iHouseSellService.getById(sell.getHouseId());
        sell = HouseVoChangeUtils.fillCustomerSellByHouseSell(sell,houseSell);
        User user = iUserService.getById(sell.getUserId());
        sell = HouseVoChangeUtils.fillCustomerSellByUser(sell,user);
    }
    return new ResultUtil<IPage<CustomerSell>>().setData(data);
}

4.3 出租意向预定

java">@RequestMapping(value = "/frontLease", method = RequestMethod.POST)
@ApiOperation(value = "出租意向预定")
public Result<Object> frontLease(@RequestParam String id,@RequestParam float money,@RequestParam String remark){
    HouseLease houseLease = iHouseLeaseService.getById(id);
    if(houseLease == null) {
        return ResultUtil.error("房屋出租单不存在");
    }
    User currUser = securityUtil.getCurrUser();
    CustomerLease lease = new CustomerLease();
    lease.setSellerId(houseLease.getSellerId());
    lease.setHouseId(houseLease.getId());
    lease.setUserId(currUser.getId());
    lease.setStatus(0);
    lease.setUserMoney(BigDecimal.valueOf(money));
    lease.setUserRemark(remark);
    iCustomerLeaseService.saveOrUpdate(lease);
    return ResultUtil.success();
}

4.4 出租单支付

java">@RequestMapping(value = "/pay", method = RequestMethod.POST)
@ApiOperation(value = "支付")
public Result<Object> delByIds(@RequestParam String id) {
    HouseLeaseOrder order = iHouseLeaseOrderService.getById(id);
    if(order == null) {
        return ResultUtil.error("出租单不存在");
    }
    order.setStatus(1);
    iHouseLeaseOrderService.saveOrUpdate(order);
    return ResultUtil.success();
}

4.5 查询买家房屋销售交易单

java">@RequestMapping(value = "/getByBuyPage", method = RequestMethod.GET)
@ApiOperation(value = "查询买家房屋销售交易单")
public Result<IPage<HouseSellOrder>> getByBuyPage(@ModelAttribute HouseSellOrder houseSellOrder ,@ModelAttribute PageVo page){
    QueryWrapper<HouseSellOrder> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(houseSellOrder.getAddress())) {
        qw.like("address",houseSellOrder.getAddress());
    }
    if(!ZwzNullUtils.isNull(houseSellOrder.getHouseOwner())) {
        qw.like("house_owner",houseSellOrder.getHouseOwner());
    }
    qw.eq("user_id",securityUtil.getCurrUser().getId());
    IPage<HouseSellOrder> data = iHouseSellOrderService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<HouseSellOrder>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述


http://www.niftyadmin.cn/n/5432862.html

相关文章

openCV实现拖拽虚拟方块

一、项目效果&#xff1a; 二、核心流程&#xff1a; openCV读取视频流、在每一帧图片上画一个矩形。使用mediapipe获取手指关键点坐标。根据手指坐标位置和矩形的坐标位置&#xff0c;判断手指点是否在矩形上&#xff0c;如果在则矩形跟随手指移动。 三、代码流程&#xff1…

纽约时报起诉OpenAI和微软将决定未来LLM的发展

《纽约时报》诉OpenAI和微软案对未来LLM发展的重大影响 案件背景 《纽约时报》(NYT)近期对OpenAI和微软提起诉讼&#xff0c;指控OpenAI未经授权使用其受版权保护的内容来训练其AI模型&#xff0c;包括ChatGPT。NYT声称&#xff0c;OpenAI使用了数百万篇其文章&#xff0c;这…

宝塔 安装对外服务Tomcat和JDK

一、安装Tomcat\JDK 切记1&#xff1a;如果选择下载节点失败&#xff0c;请到软件商城安装 。 切记2&#xff1a;提醒安装Nginx或Apache &#xff0c;先点安装&#xff0c;进入再打叉关闭。因为Tomcat服务足够为我们搭建JavaWeb网站服务了。 切记3&#xff1a;Nginx占用80端口…

C---流

最大流 最大流即为最大可行流&#xff0c;最大流的流量是所有可行流中最大的。 实现最大流算法&#xff0c;通常可以使用Ford-Fulkerson算法或它的改进版本Edmonds-Karp算法。这些算法基于图论中的网络流理论&#xff0c;用于在带权有向图中找到从一个顶点到另一个顶点的最大…

【好玩的经典游戏】Docker环境下部署经典贪吃蛇小游戏

【好玩的经典游戏】Docker环境下部署经典贪吃蛇小游戏 前言一、相关介绍1.1 httpd介绍1.2 贪吃蛇小游戏介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查系统版本3.2 检查Docker服务状态四、下载httpd镜像五、创建httpd容器5.1 新建目录5.2 创建…

Docker配置Nginx、tomcat、elasticsearch

配置nginx 需要先pull下来 #启动nginx -d 表示后台运行 -p 表示暴露端口&#xff0c;将80暴露为3344 [rootiZf8zhsqf64x47n1tpdy6oZ home]# docker run -d -p:3344:80 nginx 5dd62cea7681975d37d1a9867bc9776de0206519f624b461346ac83025656642 [rootiZf8zhsqf64x47n1tpdy6oZ…

ARM和AMD介绍

一、介绍 ARM 和 AMD 都是计算机领域中的知名公司&#xff0c;它们在不同方面具有重要的影响和地位。 ARM&#xff08;Advanced RISC Machine&#xff09;&#xff1a;ARM 公司是一家总部位于英国的公司&#xff0c;专注于设计低功耗、高性能的处理器架构。ARM 架构以其精简指…

CSS3DRenderer, CSS3DSprite API 使用案例demo

CSS3DRenderer, CSS3DSprite API 使用案例demo <!DOCTYPE html> <html><head><title>three.js css3d - sprites</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, user-scalabl…