瀏覽代碼

通过小区查找整个小区的房号

tangbin 1 年之前
父節點
當前提交
70b6cfa5c8

+ 33 - 4
yezhu-api/src/main/java/com/kioor/room/controller/ApiRoomController.java

@@ -17,11 +17,9 @@ import com.kioor.common.validator.ValidatorUtils;
 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.RoomDTO;
-import com.kioor.room.dto.RoomDetailDTO;
+import com.kioor.room.dto.*;
 import com.kioor.room.enums.HousingEstateStatus;
-import com.kioor.room.service.HousingEstateService;
-import com.kioor.room.service.RoomService;
+import com.kioor.room.service.*;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
@@ -49,6 +47,12 @@ public class ApiRoomController {
 
     private final HousingEstateService housingEstateService;
 
+    private final BuildingService buildingService;
+
+    private final UnitService unitService;
+
+    private final FloorService floorService;
+
     @Login
     @GetMapping("list")
     @Operation(summary = "列表")
@@ -64,6 +68,31 @@ public class ApiRoomController {
         return new Result<List<RoomDTO>>().ok(list);
     }
 
+    @Login
+    @GetMapping("listByHousingEstateId")
+    @Operation(summary = "通过小区查找级联到房号的列表")
+    @Parameters({
+            @Parameter(name = "housingEstateId", description = "小区id",required = true)
+    })
+    public Result<List<AllRoomDTO>> listByHousingEstateId(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
+        if(params.get("housingEstateId") == null){
+            return new Result().error(ErrorCode.NOT_NULL,"小区不能为空");
+        }
+        List<AllRoomDTO> list = buildingService.listByHousingEstateId(Long.parseLong(String.valueOf(params.get("housingEstateId"))));
+        //级联依次查询单元、楼层、房号
+        for(AllRoomDTO building : list){
+            building.setChildren(unitService.listByBuildingId(building.getId()));
+            for(AllRoomDTO unit : building.getChildren()){
+                unit.setChildren(floorService.listByUnitId(unit.getId()));
+                for(AllRoomDTO floor : unit.getChildren()){
+                    floor.setChildren(roomService.listByFloorId(floor.getId()));
+                }
+            }
+        }
+
+        return new Result<List<AllRoomDTO>>().ok(list);
+    }
+
     @Login
     @GetMapping("allAroundList")
     @Operation(summary = "我周围的房间列表")

+ 39 - 0
yezhu-api/src/main/java/com/kioor/room/dto/AllRoomDTO.java

@@ -0,0 +1,39 @@
+/**
+ * /**
+ * Copyright (c) 2018 业主系统 All rights reserved.
+ * <p>
+ * https://www.kioor.com
+ * <p>
+ * 版权所有,侵权必究!
+ */
+
+package com.kioor.room.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 通过小区查询所有房号
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+@Data
+@Schema(description = "通过小区查询所有房号")
+public class AllRoomDTO {
+
+    @Schema(description = "id")
+    private Long id;
+
+    @Schema(description = "编号")
+    private String num;
+
+    @Schema(description = "备注")
+    private String remark;
+
+    @Schema(description = "子级")
+    List<AllRoomDTO> children;
+
+}

+ 8 - 0
yezhu-api/src/main/java/com/kioor/room/service/BuildingService.java

@@ -9,6 +9,7 @@
 package com.kioor.room.service;
 
 import com.kioor.common.service.BaseService;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.BuildingDTO;
 import com.kioor.room.entity.BuildingEntity;
 
@@ -23,6 +24,13 @@ import java.util.Map;
 public interface BuildingService extends BaseService<BuildingEntity> {
     List<BuildingDTO> list(Map<String, Object> params);
 
+    /**
+     * 通过小区查询所有房号-楼栋
+     * @param housingEstateId
+     * @return
+     */
+    List<AllRoomDTO> listByHousingEstateId(Long housingEstateId);
+
     BuildingDTO get(Long id);
 
     void save(BuildingDTO dto);

+ 8 - 0
yezhu-api/src/main/java/com/kioor/room/service/FloorService.java

@@ -9,6 +9,7 @@
 package com.kioor.room.service;
 
 import com.kioor.common.service.BaseService;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.FloorDTO;
 import com.kioor.room.entity.FloorEntity;
 
@@ -23,6 +24,13 @@ import java.util.Map;
 public interface FloorService extends BaseService<FloorEntity> {
     List<FloorDTO> list(Map<String, Object> params);
 
+    /**
+     * 通过小区查询所有房号-楼层
+     * @param unitId
+     * @return
+     */
+    List<AllRoomDTO> listByUnitId(Long unitId);
+
     FloorDTO get(Long id);
 
     void save(FloorDTO dto);

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

@@ -9,6 +9,7 @@
 package com.kioor.room.service;
 
 import com.kioor.common.service.BaseService;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.RoomDTO;
 import com.kioor.room.dto.RoomDetailDTO;
 import com.kioor.room.entity.RoomEntity;
@@ -25,6 +26,13 @@ import java.util.Map;
 public interface RoomService extends BaseService<RoomEntity> {
     List<RoomDTO> list(Map<String, Object> params);
 
+    /**
+     * 通过小区查询所有房号-房间
+     * @param floorId
+     * @return
+     */
+    List<AllRoomDTO> listByFloorId(Long floorId);
+
     /**
      * 同楼层房间列表
      * @param userId

+ 8 - 0
yezhu-api/src/main/java/com/kioor/room/service/UnitService.java

@@ -9,6 +9,7 @@
 package com.kioor.room.service;
 
 import com.kioor.common.service.BaseService;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.UnitDTO;
 import com.kioor.room.entity.UnitEntity;
 
@@ -23,6 +24,13 @@ import java.util.Map;
 public interface UnitService extends BaseService<UnitEntity> {
     List<UnitDTO> list(Map<String, Object> params);
 
+    /**
+     * 通过小区查询所有房号-单元
+     * @param buildingId
+     * @return
+     */
+    List<AllRoomDTO> listByBuildingId(Long buildingId);
+
     UnitDTO get(Long id);
 
     void save(UnitDTO dto);

+ 36 - 0
yezhu-api/src/main/java/com/kioor/room/service/impl/BuildingServiceImpl.java

@@ -11,12 +11,15 @@ package com.kioor.room.service.impl;
 import com.kioor.common.service.impl.BaseServiceImpl;
 import com.kioor.common.utils.ConvertUtils;
 import com.kioor.room.dao.BuildingDao;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.BuildingDTO;
 import com.kioor.room.entity.BuildingEntity;
 import com.kioor.room.service.BuildingService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -36,6 +39,39 @@ public class BuildingServiceImpl extends BaseServiceImpl<BuildingDao, BuildingEn
         return listDto;
     }
 
+    /**
+     * 通过小区查询所有房号-楼栋
+     *
+     * @param housingEstateId
+     * @return
+     */
+    @Override
+    public List<AllRoomDTO> listByHousingEstateId(Long housingEstateId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("housingEstateId", housingEstateId);
+        //查询
+        List<BuildingEntity> list = baseDao.getList(params);
+
+        //list复制到dto
+        return convertToDtoList(list);
+    }
+
+    /**
+     * 将BuildingEntity列表转换为AllRoomDTO列表
+     * @param buildingEntities
+     * @return
+     */
+    private List<AllRoomDTO> convertToDtoList(List<BuildingEntity> buildingEntities) {
+        List<AllRoomDTO> dtos = new ArrayList<>();
+        for (BuildingEntity entity : buildingEntities) {
+            AllRoomDTO dto = new AllRoomDTO();
+            dto.setId(entity.getId());
+            dto.setNum(entity.getBuildingNum());
+            dtos.add(dto);
+        }
+        return dtos;
+    }
+
     @Override
     public BuildingDTO get(Long id) {
         BuildingEntity entity = baseDao.selectById(id);

+ 35 - 0
yezhu-api/src/main/java/com/kioor/room/service/impl/FloorServiceImpl.java

@@ -11,12 +11,15 @@ package com.kioor.room.service.impl;
 import com.kioor.common.service.impl.BaseServiceImpl;
 import com.kioor.common.utils.ConvertUtils;
 import com.kioor.room.dao.FloorDao;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.FloorDTO;
 import com.kioor.room.entity.FloorEntity;
 import com.kioor.room.service.FloorService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -35,6 +38,38 @@ public class FloorServiceImpl extends BaseServiceImpl<FloorDao, FloorEntity> imp
         return listDto;
     }
 
+    /**
+     * 通过小区查询所有房号-楼层
+     *
+     * @param unitId
+     * @return
+     */
+    @Override
+    public List<AllRoomDTO> listByUnitId(Long unitId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("unitId", unitId);
+        //查询
+        List<FloorEntity> list = baseDao.getList(params);
+
+        return convertToDtoList(list);
+    }
+
+    /**
+     * 将FloorEntity列表转换为AllFloorDTO列表
+     * @param floorEntities
+     * @return
+     */
+    private List<AllRoomDTO> convertToDtoList(List<FloorEntity> floorEntities) {
+        List<AllRoomDTO> dtos = new ArrayList<>();
+        for (FloorEntity entity : floorEntities) {
+            AllRoomDTO dto = new AllRoomDTO();
+            dto.setId(entity.getId());
+            dto.setNum(String.valueOf(entity.getFloorNum())); // 将Integer转换为String
+            dtos.add(dto);
+        }
+        return dtos;
+    }
+
     @Override
     public FloorDTO get(Long id) {
         FloorEntity entity = baseDao.selectById(id);

+ 36 - 4
yezhu-api/src/main/java/com/kioor/room/service/impl/RoomServiceImpl.java

@@ -12,6 +12,7 @@ import com.kioor.common.service.impl.BaseServiceImpl;
 import com.kioor.common.utils.CommonUtils;
 import com.kioor.common.utils.ConvertUtils;
 import com.kioor.room.dao.RoomDao;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.RoomDTO;
 import com.kioor.room.dto.RoomDetailDTO;
 import com.kioor.room.entity.RoomEntity;
@@ -22,10 +23,7 @@ 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;
+import java.util.*;
 
 @Service
 @AllArgsConstructor
@@ -45,6 +43,40 @@ public class RoomServiceImpl extends BaseServiceImpl<RoomDao, RoomEntity> implem
         return listDto;
     }
 
+    /**
+     * 通过小区查询所有房号-房间
+     *
+     * @param floorId
+     * @return
+     */
+    @Override
+    public List<AllRoomDTO> listByFloorId(Long floorId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("floorId", floorId);
+        //查询
+        List<RoomEntity> list = baseDao.getList(params);
+
+        //list复制到dto
+        return convertToDtoList(list);
+    }
+
+    /**
+     * 将RoomEntity列表转换为AllRoomDTO列表
+     * @param roomEntities
+     * @return
+     */
+    private List<AllRoomDTO> convertToDtoList(List<RoomEntity> roomEntities) {
+        List<AllRoomDTO> dtos = new ArrayList<>();
+        for (RoomEntity entity : roomEntities) {
+            AllRoomDTO dto = new AllRoomDTO();
+            dto.setId(entity.getId());
+            dto.setNum(String.valueOf(entity.getRoomNum())); // 将Integer转换为String
+            dto.setRemark(entity.getRemark());
+            dtos.add(dto);
+        }
+        return dtos;
+    }
+
     /**
      * 同楼层房间列表
      *

+ 36 - 0
yezhu-api/src/main/java/com/kioor/room/service/impl/UnitServiceImpl.java

@@ -11,12 +11,15 @@ package com.kioor.room.service.impl;
 import com.kioor.common.service.impl.BaseServiceImpl;
 import com.kioor.common.utils.ConvertUtils;
 import com.kioor.room.dao.UnitDao;
+import com.kioor.room.dto.AllRoomDTO;
 import com.kioor.room.dto.UnitDTO;
 import com.kioor.room.entity.UnitEntity;
 import com.kioor.room.service.UnitService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -35,6 +38,39 @@ public class UnitServiceImpl extends BaseServiceImpl<UnitDao, UnitEntity> implem
         return listDto;
     }
 
+    /**
+     * 通过小区查询所有房号-单元
+     *
+     * @param buildingId
+     * @return
+     */
+    @Override
+    public List<AllRoomDTO> listByBuildingId(Long buildingId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("buildingId", buildingId);
+        //查询
+        List<UnitEntity> list = baseDao.getList(params);
+
+        //list复制到dto
+        return convertToDtoList(list);
+    }
+
+    /**
+     * 将BuildingEntity列表转换为AllRoomDTO列表
+     * @param unitEntities
+     * @return
+     */
+    private List<AllRoomDTO> convertToDtoList(List<UnitEntity> unitEntities) {
+        List<AllRoomDTO> dtos = new ArrayList<>();
+        for (UnitEntity entity : unitEntities) {
+            AllRoomDTO dto = new AllRoomDTO();
+            dto.setId(entity.getId());
+            dto.setNum(entity.getUnitNum());
+            dtos.add(dto);
+        }
+        return dtos;
+    }
+
     @Override
     public UnitDTO get(Long id) {
         UnitEntity entity = baseDao.selectById(id);

+ 1 - 1
yezhu-api/src/main/resources/application.yml

@@ -13,7 +13,7 @@ server:
 spring:
   # 环境 dev|test|prod
   profiles:
-    active: test
+    active: prod
   messages:
     encoding: UTF-8
     basename: i18n/messages