浏览代码

邻居查找

tangbin 1 年之前
父节点
当前提交
374ce6c3fd

+ 7 - 7
yezhu-api/src/main/java/com/kioor/room/controller/ApiHousingEstateController.java

@@ -19,7 +19,7 @@ import com.kioor.common.validator.group.AddGroup;
 import com.kioor.common.validator.group.DefaultGroup;
 import com.kioor.common.validator.group.UpdateGroup;
 import com.kioor.room.dto.HousingEstateDTO;
-import com.kioor.room.dto.HousingEstateInitDTO;
+import com.kioor.room.dto.BuildingInitDTO;
 import com.kioor.room.service.HousingEstateService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -112,18 +112,18 @@ public class ApiHousingEstateController {
     @Login
     @PostMapping("housingEstateInit")
     @Operation(summary = "根据设置信息初始化小区房号")
-    public Result housingEstateInit(@RequestBody List<HousingEstateInitDTO> housingEstateInitDTOList, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+    public Result housingEstateInit(@RequestBody List<BuildingInitDTO> buildingInitDTOList, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
         //效验数据
-        ValidatorUtils.validateEntity(housingEstateInitDTOList, AddGroup.class, DefaultGroup.class);
+        ValidatorUtils.validateEntity(buildingInitDTOList, AddGroup.class, DefaultGroup.class);
 
         //先清空房号
-        if(housingEstateInitDTOList.size() > 0){
-            housingEstateInitDTOList.forEach(housingEstateInitDTO -> {
-                housingEstateService.cleanAll(housingEstateInitDTO.getHousingEstateId());
+        if(buildingInitDTOList.size() > 0){
+            buildingInitDTOList.forEach(buildingInitDTO -> {
+                housingEstateService.cleanAll(buildingInitDTO.getHousingEstateId());
             });
         }
 
-        housingEstateService.housingEstateInit(housingEstateInitDTOList);
+        housingEstateService.buildingInit(buildingInitDTOList);
 
         return new Result();
     }

+ 0 - 3
yezhu-api/src/main/java/com/kioor/room/controller/ApiUserHousingEstateController.java

@@ -60,9 +60,6 @@ public class ApiUserHousingEstateController {
         if(roomDTO!=null){
             userHousingEstateEntity.setUserId(userId);
             userHousingEstateEntity.setHousingEstateId(roomDTO.getHousingEstateId());
-            userHousingEstateEntity.setBuildingId(roomDTO.getBuildingId());
-            userHousingEstateEntity.setUnitId(roomDTO.getUnitId());
-            userHousingEstateEntity.setFloorId(roomDTO.getFloorId());
             userHousingEstateEntity.setRoomId(roomDTO.getId());
             userHousingEstateEntity.setRemark(roomDTO.getRemark());
             userHousingEstateService.insert(userHousingEstateEntity);

+ 16 - 3
yezhu-api/src/main/java/com/kioor/room/dao/RoomDao.java

@@ -11,6 +11,7 @@ package com.kioor.room.dao;
 import com.kioor.common.dao.BaseDao;
 import com.kioor.room.dto.RoomDTO;
 import com.kioor.room.entity.RoomEntity;
+import com.kioor.user.entity.UserEntity;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -30,25 +31,37 @@ public interface RoomDao extends BaseDao<RoomEntity> {
      * @param userId
      * @return
      */
-    List<RoomEntity> floorList(Long userId);
+    List<RoomDTO> floorList(Long userId);
 
     /**
      * 我楼上的邻居
      * @param userId
      * @return
      */
-    RoomEntity roomUp(Long userId);
+    RoomDTO roomUp(Long userId);
 
     /**
      * 我楼下的邻居
      * @param userId
      * @return
      */
-    RoomEntity roomDown(Long userId);
+    RoomDTO roomDown(Long userId);
     /**
      * 根据id查询房屋信息
      * @param id
      * @return
      */
     RoomDTO findRoomById(Long id);
+    /**
+     * 根据用户id查询房屋信息
+     * @param userId
+     * @return
+     */
+    RoomDTO findRoomByUserId(Long userId);
+    /**
+     * 根据房屋信息查询用户信息
+     * @param roomId
+     * @return
+     */
+    List<UserEntity> findUserByRoomId(Long roomId);
 }

+ 3 - 3
yezhu-api/src/main/java/com/kioor/room/dto/HousingEstateInitDTO.java → yezhu-api/src/main/java/com/kioor/room/dto/BuildingInitDTO.java

@@ -16,13 +16,13 @@ import java.util.List;
 
 
 /**
- * 小区初始化信息
+ * 初始化小区内楼栋等信息
  *
  * @author Mark sunlightcs@gmail.com
  */
 @Data
-@Schema(description = "小区初始化信息")
-public class HousingEstateInitDTO {
+@Schema(description = "初始化小区内楼栋等信息")
+public class BuildingInitDTO {
 
     @Schema(description = "小区id")
     private Long housingEstateId;

+ 4 - 24
yezhu-api/src/main/java/com/kioor/room/dto/RoomDetailDTO.java

@@ -9,11 +9,11 @@
 
 package com.kioor.room.dto;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
+import com.kioor.user.dto.UserResponseDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -45,29 +45,9 @@ public class RoomDetailDTO {
     @Schema(description = "备注")
     private String remark;
 
-    @Schema(description = "用户名")
-    private String username;
-
-    @Schema(description = "手机号")
-    private String mobile;
-
-    @Schema(description = "等级")
-    private int level;
-
-    @Schema(description = "签名")
-    private String remarks;
-
-    @Schema(description = "是否是自己")
+    @Schema(description = "是否是自己的房子")
     private int selfFlag;
 
-    @Schema(description = "是否对邻居展示")
-    private int openFlag;
-
-    @Schema(description = "是否禁言")
-    private int prohibitionFlag;
-
-    @Schema(description = "禁言结束时间")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 格式化日期时间
-    private Date prohibitionEndTime;
+    List<UserResponseDTO> userList;
 
 }

+ 11 - 1
yezhu-api/src/main/java/com/kioor/room/entity/RoomEntity.java

@@ -31,6 +31,14 @@ public class RoomEntity implements Serializable {
      * 小区
      */
     private Long housingEstateId;
+    /**
+     * 楼栋
+     */
+    private Long buildingId;
+    /**
+     * 单元
+     */
+    private Long unitId;
     /**
      * 楼层
      */
@@ -47,9 +55,11 @@ public class RoomEntity implements Serializable {
     public RoomEntity() {
     }
 
-    public RoomEntity(Long id, Long housingEstateId, Long floorId, Integer roomNum, String remark) {
+    public RoomEntity(Long id, Long housingEstateId, Long buildingId, Long unitId, Long floorId, Integer roomNum, String remark) {
         this.id = id;
         this.housingEstateId = housingEstateId;
+        this.buildingId = buildingId;
+        this.unitId = unitId;
         this.floorId = floorId;
         this.roomNum = roomNum;
         this.remark = remark;

+ 0 - 13
yezhu-api/src/main/java/com/kioor/room/entity/UserHousingEstateEntity.java

@@ -13,7 +13,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * 用户和房号关系表
@@ -36,18 +35,6 @@ public class UserHousingEstateEntity implements Serializable {
      * 小区
      */
     private Long housingEstateId;
-    /**
-     * 楼栋
-     */
-    private Long buildingId;
-    /**
-     * 单元
-     */
-    private Long unitId;
-    /**
-     * 楼层
-     */
-    private Long floorId;
     /**
      * 房间
      */

+ 3 - 3
yezhu-api/src/main/java/com/kioor/room/service/HousingEstateService.java

@@ -11,7 +11,7 @@ package com.kioor.room.service;
 import com.kioor.common.page.PageData;
 import com.kioor.common.service.BaseService;
 import com.kioor.room.dto.HousingEstateDTO;
-import com.kioor.room.dto.HousingEstateInitDTO;
+import com.kioor.room.dto.BuildingInitDTO;
 import com.kioor.room.entity.HousingEstateEntity;
 
 import java.util.List;
@@ -33,9 +33,9 @@ public interface HousingEstateService extends BaseService<HousingEstateEntity> {
 
     /**
      * 初始化小区信息
-     * @param housingEstateInitDTOList
+     * @param buildingInitDTOList
      */
-    void housingEstateInit(List<HousingEstateInitDTO> housingEstateInitDTOList);
+    void buildingInit(List<BuildingInitDTO> buildingInitDTOList);
 
     /**
      * 清空小区房号

+ 15 - 0
yezhu-api/src/main/java/com/kioor/room/service/RoomService.java

@@ -12,6 +12,7 @@ import com.kioor.common.service.BaseService;
 import com.kioor.room.dto.RoomDTO;
 import com.kioor.room.dto.RoomDetailDTO;
 import com.kioor.room.entity.RoomEntity;
+import com.kioor.user.entity.UserEntity;
 
 import java.util.List;
 import java.util.Map;
@@ -57,4 +58,18 @@ public interface RoomService extends BaseService<RoomEntity> {
      * @return
      */
     RoomDTO findRoomById(Long id);
+
+    /**
+     * 根据用户id查询房屋信息
+     * @param userId
+     * @return
+     */
+    RoomDTO findRoomByUserId(Long userId);
+
+    /**
+     * 根据房屋信息查询用户信息
+     * @param roomId
+     * @return
+     */
+    List<UserEntity> findUserByRoomId(Long roomId);
 }

+ 16 - 7
yezhu-api/src/main/java/com/kioor/room/service/impl/HousingEstateServiceImpl.java

@@ -19,7 +19,7 @@ import com.kioor.common.service.impl.BaseServiceImpl;
 import com.kioor.common.utils.ConvertUtils;
 import com.kioor.room.dao.HousingEstateDao;
 import com.kioor.room.dto.HousingEstateDTO;
-import com.kioor.room.dto.HousingEstateInitDTO;
+import com.kioor.room.dto.BuildingInitDTO;
 import com.kioor.room.dto.UnitInfoDTO;
 import com.kioor.room.entity.*;
 import com.kioor.room.service.*;
@@ -45,6 +45,8 @@ public class HousingEstateServiceImpl extends BaseServiceImpl<HousingEstateDao,
 
     private final RoomService roomService;
 
+    private final UserHousingEstateService userHousingEstateService;
+
     private static final int BATCH_SIZE = 100; // 批量处理大小,根据实际情况调整
 
     /**
@@ -128,37 +130,43 @@ public class HousingEstateServiceImpl extends BaseServiceImpl<HousingEstateDao,
     }
 
     /**
-     * 初始化小区信息
-     * @param housingEstateInitDTOList
+     * 初始化小区信息
+     * @param buildingInitDTOList 楼栋列表
      */
     @Override
-    public void housingEstateInit(List<HousingEstateInitDTO> housingEstateInitDTOList) {
+    public void buildingInit(List<BuildingInitDTO> buildingInitDTOList) {
         Map<Long, BuildingEntity> buildingsMap = new HashMap<>();
         Map<Long, UnitEntity> unitsMap = new HashMap<>();
         List<FloorEntity> floorsList = new ArrayList<>();
         List<RoomEntity> roomsList = new ArrayList<>();
 
-        for (HousingEstateInitDTO estateInit : housingEstateInitDTOList) {
+        //遍历楼栋
+        for (BuildingInitDTO estateInit : buildingInitDTOList) {
             Long housingEstateId = estateInit.getHousingEstateId();
             String buildingNum = estateInit.getBuildingNum();
+            //创建楼栋
             Long buildingId = IdWorker.getId();
             BuildingEntity buildingEntity = buildingsMap.computeIfAbsent(buildingId,
                     k -> new BuildingEntity(buildingId,housingEstateId, buildingNum));
 
+            //遍历楼栋下的单元
             for (UnitInfoDTO unitInfo : estateInit.getUnitInfo()) {
                 String unitNum = unitInfo.getUnitNum();
                 int floorCount = unitInfo.getFloorCount();
                 int apartmentPerFloor = unitInfo.getApartmentPerFloor();
+                //创建单元
                 Long unitId = IdWorker.getId();
                 UnitEntity unitEntity = unitsMap.computeIfAbsent(unitId,
                         k -> new UnitEntity(IdWorker.getId(),housingEstateId, buildingEntity.getId(), unitNum));
 
+                //遍历楼层
                 for (int floor = 1; floor <= floorCount; floor++) {
+                    //创建楼层
                     FloorEntity floorEntity = new FloorEntity(IdWorker.getId(),housingEstateId, unitEntity.getId(), floor);
                     floorsList.add(floorEntity);
-
+                    //遍历该楼层每一户
                     for (int apartment = 1; apartment <= apartmentPerFloor; apartment++) {
-                        RoomEntity roomEntity = new RoomEntity(IdWorker.getId(),housingEstateId, floorEntity.getId(), apartment, buildingNum + "-" + unitNum + "-" + floor + String.format("%02d", apartment));
+                        RoomEntity roomEntity = new RoomEntity(IdWorker.getId(),housingEstateId, buildingId, unitId, floorEntity.getId(), apartment, buildingNum + "-" + unitNum + "-" + floor + String.format("%02d", apartment));
                         roomsList.add(roomEntity);
 
                         // 检查是否需要批量保存房间
@@ -199,6 +207,7 @@ public class HousingEstateServiceImpl extends BaseServiceImpl<HousingEstateDao,
         floorService.delete(new LambdaQueryWrapper<FloorEntity>().eq(FloorEntity::getHousingEstateId, housingEstateId));
         unitService.delete(new LambdaQueryWrapper<UnitEntity>().eq(UnitEntity::getHousingEstateId, housingEstateId));
         buildingService.delete(new LambdaQueryWrapper<BuildingEntity>().eq(BuildingEntity::getHousingEstateId, housingEstateId));
+        userHousingEstateService.delete(new LambdaQueryWrapper<UserHousingEstateEntity>().eq(UserHousingEstateEntity::getHousingEstateId, housingEstateId));
     }
 
 }

+ 89 - 9
yezhu-api/src/main/java/com/kioor/room/service/impl/RoomServiceImpl.java

@@ -15,16 +15,23 @@ import com.kioor.room.dto.RoomDTO;
 import com.kioor.room.dto.RoomDetailDTO;
 import com.kioor.room.entity.RoomEntity;
 import com.kioor.room.service.RoomService;
+import com.kioor.user.dto.UserResponseDTO;
+import com.kioor.user.entity.UserEntity;
+import com.kioor.user.service.UserService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 @Service
 @AllArgsConstructor
 public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implements RoomService {
 
+    private final UserService userService;
+
     @Override
     public List<RoomDTO> list(Map<String, Object> params) {
 
@@ -45,15 +52,64 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
      */
     @Override
     public List<RoomDetailDTO> floorList(Long userId) {
+        //查询用户
+        UserEntity loginUser = userService.selectById(userId);
         //查询
-        List<RoomEntity> list = baseDao.floorList(userId);
+        List<RoomDTO> list = baseDao.floorList(userId);
 
         //list复制到dto
         List<RoomDetailDTO> listDto = ConvertUtils.sourceToTarget(list, RoomDetailDTO.class);
 
+        //RoomDetailDTO中设置剩余的值
+        listDto.forEach(item -> {
+            getRoomDetailDTO(item,loginUser);
+        });
+
         return listDto;
     }
 
+    /**
+     * 获取房屋的其他信息
+     * @param roomDetailDTO
+     * @param loginUser
+     */
+    private void getRoomDetailDTO(RoomDetailDTO roomDetailDTO, UserEntity loginUser) {
+        RoomDTO myRoom = findRoomByUserId(loginUser.getId());
+        if(myRoom!=null && Objects.equals(myRoom.getId(), roomDetailDTO.getId()))
+        {
+            roomDetailDTO.setSelfFlag(1);
+        }else {
+            roomDetailDTO.setSelfFlag(0);
+        }
+        //通过roomId查询userList
+        List<UserEntity> userList = findUserByRoomId(roomDetailDTO.getId());
+        List<UserResponseDTO> userResponseDTOList = new ArrayList<>();
+        userList.forEach(item -> {
+            UserResponseDTO userResponseDTO = ConvertUtils.sourceToTarget(item, UserResponseDTO.class);
+            if(userResponseDTO.getOpenFlag() != 1){
+                userResponseDTO.setUsername(maskPhoneNumber(userResponseDTO.getUsername()));
+                userResponseDTO.setMobile(maskPhoneNumber(userResponseDTO.getMobile()));
+            }
+            userResponseDTOList.add(userResponseDTO);
+        });
+        roomDetailDTO.setUserList(userResponseDTOList);
+    }
+
+    private static String maskPhoneNumber(String phoneNumber) {
+        if (phoneNumber == null) {
+            return null;
+        }
+        //如果不是手机号,只显示第一位
+        if (phoneNumber.length() < 11) {
+            String asterisks = new String(new char[phoneNumber.length() - 1]).replace('\0', '*');
+            return phoneNumber.charAt(0) + asterisks;
+        }
+        //如果是手机号就隐藏中间4位
+        String firstPart = phoneNumber.substring(0, 3);
+        String middlePart = "****";
+        String lastPart = phoneNumber.substring(7);
+        return firstPart + middlePart + lastPart;
+    }
     /**
      * 我楼上的邻居
      *
@@ -62,13 +118,15 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
      */
     @Override
     public RoomDetailDTO roomUp(Long userId) {
+        //查询用户
+        UserEntity loginUser = userService.selectById(userId);
         //查询
-        RoomEntity entity = baseDao.roomUp(userId);
+        RoomDTO roomDTO = baseDao.roomUp(userId);
 
         //list复制到dto
-        RoomDetailDTO dto = ConvertUtils.sourceToTarget(entity, RoomDetailDTO.class);
-
-        return dto;
+        RoomDetailDTO roomDetailDTO = ConvertUtils.sourceToTarget(roomDTO, RoomDetailDTO.class);
+        getRoomDetailDTO(roomDetailDTO,loginUser);
+        return roomDetailDTO;
     }
 
     /**
@@ -79,13 +137,15 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
      */
     @Override
     public RoomDetailDTO roomDown(Long userId) {
+        //查询用户
+        UserEntity loginUser = userService.selectById(userId);
         //查询
-        RoomEntity entity = baseDao.roomDown(userId);
+        RoomDTO roomDTO =  baseDao.roomDown(userId);
 
         //list复制到dto
-        RoomDetailDTO dto = ConvertUtils.sourceToTarget(entity, RoomDetailDTO.class);
-
-        return dto;
+        RoomDetailDTO roomDetailDTO = ConvertUtils.sourceToTarget(roomDTO, RoomDetailDTO.class);
+        getRoomDetailDTO(roomDetailDTO,loginUser);
+        return roomDetailDTO;
     }
 
 
@@ -120,4 +180,24 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
         return baseDao.findRoomById(id);
     }
 
+    /**
+     * 根据userId查询房屋信息
+     * @param userId
+     * @return
+     */
+    @Override
+    public RoomDTO findRoomByUserId(Long userId) {
+        return baseDao.findRoomByUserId(userId);
+    }
+
+    /**
+     * 根据房屋信息查询用户信息
+     * @param roomId
+     * @return
+     */
+    @Override
+    public List<UserEntity> findUserByRoomId(Long roomId) {
+        return baseDao.findUserByRoomId(roomId);
+    }
+
 }

+ 2 - 2
yezhu-api/src/main/java/com/kioor/user/controller/ApiUserController.java

@@ -12,7 +12,7 @@ package com.kioor.user.controller;
 import com.kioor.annotation.Login;
 import com.kioor.common.utils.Result;
 import com.kioor.common.validator.ValidatorUtils;
-import com.kioor.user.dto.UserDTO;
+import com.kioor.user.dto.UserRequestDTO;
 import com.kioor.user.entity.UserEntity;
 import com.kioor.user.service.UserService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -38,7 +38,7 @@ public class ApiUserController {
     @Login
     @PutMapping
     @Operation(summary = "修改用户信息")
-    public Result<Map<String, Object>> update(@RequestBody UserDTO dto,@Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+    public Result<Map<String, Object>> update(@RequestBody UserRequestDTO dto, @Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
         //表单校验
         ValidatorUtils.validateEntity(dto);
 

+ 1 - 1
yezhu-api/src/main/java/com/kioor/user/dto/UserDTO.java → yezhu-api/src/main/java/com/kioor/user/dto/UserRequestDTO.java

@@ -21,7 +21,7 @@ import lombok.Data;
  */
 @Data
 @Schema(description = "用户信息表单")
-public class UserDTO {
+public class UserRequestDTO {
 
     @Schema(description = "用户名")
     @NotBlank(message = "用户名不能为空")

+ 50 - 0
yezhu-api/src/main/java/com/kioor/user/dto/UserResponseDTO.java

@@ -0,0 +1,50 @@
+/**
+ * /**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.yezhu.io
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.user.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * 完善用户信息
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Data
+@Schema(description = "用户信息表单")
+public class UserResponseDTO {
+
+    @Schema(description = "用户名")
+    private String username;
+
+    @Schema(description = "手机号")
+    private String mobile;
+
+    @Schema(description = "等级")
+    private int level;
+
+    @Schema(description = "签名")
+    private String remarks;
+
+    @Schema(description = "是否对邻居展示")
+    private int openFlag;
+
+    @Schema(description = "是否禁言")
+    private int prohibitionFlag;
+
+    @Schema(description = "禁言结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") // 格式化日期时间
+    private Date prohibitionEndTime;
+
+}

+ 26 - 7
yezhu-api/src/main/resources/mapper/room/RoomDao.xml

@@ -9,14 +9,15 @@
             and floor_id = #{floorId}
         </if>
     </select>
-    <select id="floorList" resultType="com.kioor.room.entity.RoomEntity">
-        select tr.*
-        from tb_room tr
-        left join tb_user_housing_estate tuhe on tr.floor_id = tuhe.floor_id
+    <select id="floorList" resultType="com.kioor.room.dto.RoomDTO">
+        select hisRoom.*
+        from tb_room hisRoom
+        left join tb_room myRoom on hisRoom.floor_id = myRoom.floor_id
+        left join tb_user_housing_estate tuhe on myRoom.id = tuhe.room_id
         where tuhe.user_id = #{userId}
-        order by room_num asc
+        order by hisRoom.room_num asc
     </select>
-    <select id="roomUp" resultType="com.kioor.room.entity.RoomEntity">
+    <select id="roomUp" resultType="com.kioor.room.dto.RoomDTO">
         SELECT
             hisRoom.*
         FROM
@@ -32,7 +33,7 @@
         WHERE
             myHome.user_id = #{userId}
     </select>
-    <select id="roomDown" resultType="com.kioor.room.entity.RoomEntity">
+    <select id="roomDown" resultType="com.kioor.room.dto.RoomDTO">
         SELECT
             hisRoom.*
         FROM
@@ -58,4 +59,22 @@
         left join tb_housing_estate q on b.housing_estate_id = q.id
         where r.id = #{id}
     </select>
+
+    <select id="findRoomByUserId" resultType="com.kioor.room.dto.RoomDTO">
+        select r.id,q.id housingEstateId,b.id buildingId,u.id unitId,f.id floorId,r.room_num roomNum,r.remark remark
+        from tb_room r
+        left join tb_floor f on r.floor_id = f.id
+        left join tb_unit u on f.unit_id = u.id
+        left join tb_building b on u.building_id = b.id
+        left join tb_housing_estate q on b.housing_estate_id = q.id
+        left join tb_user_housing_estate ture on r.id = ture.room_id
+        where ture.user_id = #{userId}
+    </select>
+
+    <select id="findUserByRoomId" resultType="com.kioor.user.entity.UserEntity">
+        select tu.*
+        from tb_user tu
+        left join tb_user_housing_estate tuhe on tu.id = tuhe.user_id
+        where tuhe.room_id = #{roomId}
+    </select>
 </mapper>

+ 4 - 8
yezhu-api/src/main/resources/mapper/room/UserQuartersDao.xml

@@ -5,13 +5,9 @@
 
 
     <select id="getRoomsByUserId" resultType="com.kioor.room.dto.RoomDTO">
-        select r.id,h.id housingEstateId,b.id buildingId,u.id unitId,f.id floorId,r.room_num roomNum,r.remark remark
-        from tb_user_housing_estate uq
-        left join tb_room r on uq.room_id = r.id
-        left join tb_floor f on r.floor_id = f.id
-        left join tb_unit u on f.unit_id = u.id
-        left join tb_building b on u.building_id = b.id
-        left join tb_housing_estate h on b.housing_estate_id = h.id
-        where r.id = #{id}
+        select r.*
+        from tb_room r
+        left join tb_user_housing_estate tuhe on tuhe.room_id = r.id
+        where tuhe.user_id = #{userId}
     </select>
 </mapper>