From 97ea5e39da53fc6c36e3059857802022d89828f6 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 21 一月 2025 16:53:44 +0800
Subject: [PATCH] 房屋

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java    |   56 ++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/query/TUserHistoryQuery.java        |   14 ++
 ruoyi-system/src/main/resources/mapper/system/THouseMapper.xml                  |   34 ++++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/THouseMapper.java            |   11 ++
 ruoyi-system/src/main/java/com/ruoyi/system/query/THouseQuery.java              |   21 ++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java |   55 ++++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/vo/HouseVO.java                     |   48 +++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java |   21 ++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/THouseService.java          |    7 +
 ruoyi-system/src/main/java/com/ruoyi/system/dto/THouseDTO.java                  |   11 ++
 ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java                   |    6 +
 11 files changed, 277 insertions(+), 7 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index 602f5d8..cedc2c6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -1,9 +1,21 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.dto.THouseDTO;
+import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.query.THouseQuery;
+import com.ruoyi.system.query.TUserHistoryQuery;
+import com.ruoyi.system.service.TContractService;
+import com.ruoyi.system.service.THouseService;
+import com.ruoyi.system.vo.HouseVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -16,6 +28,41 @@
 @RestController
 @RequestMapping("/t-contract")
 public class TContractController {
-
+    @Autowired
+    private TContractService contractService;
+//    @Log(title = "房屋基础信息管理-新增房屋", businessType = BusinessType.INSERT)
+//    @ApiOperation(value = "新增房屋")
+//    @PostMapping(value = "/addHouse")
+//    public AjaxResult<Boolean> addHouse(@Validated @RequestBody THouseDTO dto) {
+//        return AjaxResult.success(contractService.save(dto));
+//    }
+//    @Log(title = "房屋基础信息管理-编辑房屋", businessType = BusinessType.UPDATE)
+//    @ApiOperation(value = "编辑房屋")
+//    @PostMapping(value = "/updateHouse")
+//    public AjaxResult<Boolean> updateHouse(@Validated @RequestBody THouseDTO dto) {
+//        return AjaxResult.success(contractService.updateById(dto));
+//    }
+//    @Log(title = "房屋基础信息管理-查询房屋信息", businessType = BusinessType.DELETE)
+//    @ApiOperation(value = "查询房屋信息")
+//    @GetMapping(value = "/getHouseById")
+//    public AjaxResult<THouse> getHouseById(@RequestParam Long id) {
+//        return AjaxResult.success(contractService.getById(id));
+//    }
+//    @Log(title = "房屋基础信息管理-删除房屋", businessType = BusinessType.DELETE)
+//    @ApiOperation(value = "删除房屋")
+//    @DeleteMapping(value = "/deleteHouseById")
+//    public AjaxResult<Boolean> deleteHouseById(@RequestParam Long id) {
+//        return AjaxResult.success(contractService.removeById(id));
+//    }
+//    @ApiOperation(value = "获取房屋分页列表")
+//    @PostMapping(value = "/houseList")
+//    public AjaxResult<PageInfo<THouse>> houseList(@RequestBody THouseQuery query) {
+//        return AjaxResult.success(contractService.houseList(query));
+//    }
+//    @ApiOperation(value = "历史租户列表")
+//    @PostMapping(value = "/userHistoryList")
+//    public AjaxResult<PageInfo<HouseVO>> userHistoryList(@RequestBody TUserHistoryQuery query) {
+//        return AjaxResult.success(contractService.userHistoryList(query));
+//    }
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java
index 5e7abda..aaab61a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/THouseController.java
@@ -1,9 +1,23 @@
 package com.ruoyi.web.controller.api;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.dto.THouseDTO;
+import com.ruoyi.system.dto.TTenantDTO;
+import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.model.TTenant;
+import com.ruoyi.system.query.THouseQuery;
+import com.ruoyi.system.query.TTenantQuery;
+import com.ruoyi.system.query.TUserHistoryQuery;
+import com.ruoyi.system.service.THouseService;
+import com.ruoyi.system.vo.HouseVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -16,6 +30,42 @@
 @RestController
 @RequestMapping("/t-house")
 public class THouseController {
+    @Autowired
+    private THouseService tHouseService;
+    @Log(title = "房屋基础信息管理-新增房屋", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "新增房屋")
+    @PostMapping(value = "/addHouse")
+    public AjaxResult<Boolean> addHouse(@Validated @RequestBody THouseDTO dto) {
+        return AjaxResult.success(tHouseService.save(dto));
+    }
+    @Log(title = "房屋基础信息管理-编辑房屋", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "编辑房屋")
+    @PostMapping(value = "/updateHouse")
+    public AjaxResult<Boolean> updateHouse(@Validated @RequestBody THouseDTO dto) {
+        return AjaxResult.success(tHouseService.updateById(dto));
+    }
+    @Log(title = "房屋基础信息管理-查询房屋信息", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "查询房屋信息")
+    @GetMapping(value = "/getHouseById")
+    public AjaxResult<THouse> getHouseById(@RequestParam Long id) {
+        return AjaxResult.success(tHouseService.getById(id));
+    }
+    @Log(title = "房屋基础信息管理-删除房屋", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除房屋")
+    @DeleteMapping(value = "/deleteHouseById")
+    public AjaxResult<Boolean> deleteHouseById(@RequestParam Long id) {
+        return AjaxResult.success(tHouseService.removeById(id));
+    }
+    @ApiOperation(value = "获取房屋分页列表")
+    @PostMapping(value = "/houseList")
+    public AjaxResult<PageInfo<THouse>> houseList(@RequestBody THouseQuery query) {
+        return AjaxResult.success(tHouseService.houseList(query));
+    }
+    @ApiOperation(value = "历史租户列表")
+    @PostMapping(value = "/userHistoryList")
+    public AjaxResult<PageInfo<HouseVO>> userHistoryList(@RequestBody TUserHistoryQuery query) {
+        return AjaxResult.success(tHouseService.userHistoryList(query));
+    }
 
 }
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/THouseDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/THouseDTO.java
new file mode 100644
index 0000000..5baf22f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/THouseDTO.java
@@ -0,0 +1,11 @@
+package com.ruoyi.system.dto;
+
+import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.model.TTenant;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "房屋DTO")
+public class THouseDTO extends THouse {
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/THouseMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/THouseMapper.java
index 5e2183a..1cafeac 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/THouseMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/THouseMapper.java
@@ -1,7 +1,14 @@
 package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.query.THouseQuery;
+import com.ruoyi.system.query.TUserHistoryQuery;
+import com.ruoyi.system.vo.HouseVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +20,8 @@
  */
 public interface THouseMapper extends BaseMapper<THouse> {
 
+    List<THouse> houseList(@Param("req") THouseQuery query, @Param("pageInfo") PageInfo<THouse> pageInfo);
+
+    List<HouseVO> userHistoryList(@Param("req")TUserHistoryQuery query, @Param("pageInfo")PageInfo<HouseVO> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java
index 45652ce..ba521cd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/THouse.java
@@ -81,5 +81,11 @@
     @ApiModelProperty(value = "租赁状态 1=待出租 2=已出租 3=维修中")
     @TableField("lease_status")
     private Integer leaseStatus;
+    @ApiModelProperty(value = "楼栋")
+    @TableField("building")
+    private String building;
+    @ApiModelProperty(value = "房号")
+    @TableField("room_number")
+    private String roomNumber;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/THouseQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/THouseQuery.java
new file mode 100644
index 0000000..74fe8b7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/THouseQuery.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "房屋分页列表查询Query")
+public class THouseQuery extends BasePage {
+
+    @ApiModelProperty(value = "房间名称")
+    private String houseName;
+
+    @ApiModelProperty(value = "产权人")
+    private String propertyRightPerson;
+
+    @ApiModelProperty(value = "租赁状态 1=待出租 2=已出租 3=维修中")
+    private Integer leaseStatus;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TUserHistoryQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TUserHistoryQuery.java
new file mode 100644
index 0000000..cdc4fee
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TUserHistoryQuery.java
@@ -0,0 +1,14 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "历史租户分页列表查询Query")
+public class TUserHistoryQuery extends BasePage {
+
+    @ApiModelProperty(value = "房屋id")
+    private String id;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/THouseService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/THouseService.java
index 6ed9a10..c68346c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/THouseService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/THouseService.java
@@ -1,7 +1,11 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.query.THouseQuery;
+import com.ruoyi.system.query.TUserHistoryQuery;
+import com.ruoyi.system.vo.HouseVO;
 
 /**
  * <p>
@@ -13,4 +17,7 @@
  */
 public interface THouseService extends IService<THouse> {
 
+    PageInfo<THouse> houseList(THouseQuery query);
+
+    PageInfo<HouseVO> userHistoryList(TUserHistoryQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java
index 7604dcf..594e1e1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/THouseServiceImpl.java
@@ -1,10 +1,16 @@
 package com.ruoyi.system.service.impl;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.mapper.THouseMapper;
 import com.ruoyi.system.model.THouse;
+import com.ruoyi.system.query.THouseQuery;
+import com.ruoyi.system.query.TUserHistoryQuery;
 import com.ruoyi.system.service.THouseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.vo.HouseVO;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +23,19 @@
 @Service
 public class THouseServiceImpl extends ServiceImpl<THouseMapper, THouse> implements THouseService {
 
+    @Override
+    public PageInfo<THouse> houseList(THouseQuery query) {
+        PageInfo<THouse> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<THouse> list = this.baseMapper.houseList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    @Override
+    public PageInfo<HouseVO> userHistoryList(TUserHistoryQuery query) {
+        PageInfo<HouseVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<HouseVO> list = this.baseMapper.userHistoryList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/HouseVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/HouseVO.java
new file mode 100644
index 0000000..722a6de
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/HouseVO.java
@@ -0,0 +1,48 @@
+package com.ruoyi.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@ApiModel(value = "历史租户列表VO")
+public class HouseVO  {
+
+
+    @ApiModelProperty(value = "房屋id")
+    private String houseId;
+
+    @ApiModelProperty(value = "租户姓名")
+    private String residentName;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "属性")
+    private String businessAttributes;
+    @ApiModelProperty(value = "类型")
+    private String productType;
+    @ApiModelProperty(value = "入住日期")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private LocalDateTime startTime;
+    @ApiModelProperty(value = "楼栋")
+    private String building;
+    @ApiModelProperty(value = "房号")
+    private String roomNumber;
+    @ApiModelProperty(value = "建筑面积")
+    private String houseArea;
+    @ApiModelProperty(value = "登录账号")
+    private String loginAccount;
+    @ApiModelProperty(value = "证件号码")
+    private String idCard;
+    @ApiModelProperty(value = "银行转账专号")
+    private String bankNumber;
+    @ApiModelProperty(value = "通讯地址")
+    private String mailAddress;
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/THouseMapper.xml b/ruoyi-system/src/main/resources/mapper/system/THouseMapper.xml
index c8549b3..43cf3d6 100644
--- a/ruoyi-system/src/main/resources/mapper/system/THouseMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/THouseMapper.xml
@@ -28,5 +28,39 @@
     <sql id="Base_Column_List">
         id, house_picture, house_name, house_address, house_area, house_type, business_attributes, product_type, property_right_person, property_right_number, property_right_start_time, property_right_duration, lease_status, create_time, update_time, create_by, update_by, disabled
     </sql>
+    <select id="houseList" resultType="com.ruoyi.system.model.THouse">
+        select t1.* from
+            t_house t1
+        <where>
+            <if test="req.houseName != null and req.houseName != ''">
+                and t1.house_name like concat('%', #{req.houseName}, '%')
+            </if>
+            <if test="req.propertyRightPerson != null and req.propertyRightPerson != ''">
+                and t1.property_right_person like concat('%', #{req.propertyRightPerson}, '%')
+            </if>
+            <if test="req.leaseStatus != null">
+                and t1.lease_status = #{req.leaseStatus}
+            </if>
+        </where>
+    </select>
+    <select id="userHistoryList" resultType="com.ruoyi.system.vo.HouseVO">
+        select
+            t2.resident_name as residentName,
+            t2.phone as phone,
+            t3.business_attributes as businessAttributes,
+            t3.product_type as productType,
+            t1.start_time as startTime,
+            t3.building as building,
+            t3.room_number as roomNumber,
+            t3.house_area as houseArea,
+            t2.phone as loginAccount,
+            t2.id_card as idCard,
+            t2.bank_number as bankNumber,
+            t2.mail_address as mailAddress,
+        from t_contract t1
+        left join t_tenant t2 on t1.tenant_id = t2.id
+        LEFT JOIN t_house t3 on t3.id = t1.house_id
+        where t1.house_id = #{req.id}
+    </select>
 
 </mapper>

--
Gitblit v1.7.1