Parcourir la source

我周围的邻居打包返回

tangbin il y a 1 an
Parent
commit
f8a55f5cc2

+ 41 - 0
yezhu-api/src/main/java/com/kioor/room/controller/ApiRoomController.java

@@ -29,6 +29,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -63,6 +64,46 @@ public class ApiRoomController {
         return new Result<List<RoomDTO>>().ok(list);
     }
 
+    @Login
+    @GetMapping("allAroundList")
+    @Operation(summary = "我周围的房间列表")
+    public Result<List<RoomDetailDTO>> allAroundList(@Parameter(hidden = true) @RequestAttribute("userId") Long userId) {
+        //同楼层的房间
+        List<RoomDetailDTO> floorList = roomService.floorList(userId);
+        //校验小区状态
+        if(!floorList.isEmpty()){
+            int status = housingEstateService.checkStatus(floorList.get(0).getHousingEstateId());
+            if(status!=1) {
+                return new Result().error(ErrorCode.INTERNAL_SERVER_ERROR, "无法访问,小区当前状态为" + HousingEstateStatus.fromCode(status).getDescription());
+            }
+        }
+
+        //同楼上的房间,设置数量和floorList相同的属性全为空的list
+        List<RoomDetailDTO> upList = new ArrayList<>();
+        //同楼下的房间
+        List<RoomDetailDTO> downList = new ArrayList<>();
+
+        for(RoomDetailDTO room :floorList){
+            if(room.getSelfFlag() == 1){
+                RoomDetailDTO upDto = roomService.roomUp(userId);
+                upList.add(upDto);
+                RoomDetailDTO downDto = roomService.roomDown(userId);
+                downList.add(downDto);
+            }else {
+                //往list中添加空的RoomDetailDTO
+                upList.add(new RoomDetailDTO());
+                downList.add(new RoomDetailDTO());
+            }
+        }
+        //将三个list拼接返回
+        List<RoomDetailDTO> list = new ArrayList<>();
+        list.addAll(upList);
+        list.addAll(floorList);
+        list.addAll(downList);
+
+        return new Result<List<RoomDetailDTO>>().ok(list);
+    }
+
     @Login
     @GetMapping("floorList")
     @Operation(summary = "我同楼层的房间列表")