Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import io.swagger.v3.oas.annotations.Operation;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;

@RestController
Expand All @@ -18,7 +20,16 @@ public class BuildingController {
@Operation(
summary = "Get Buildings by Hospital Tenant ID",
description = "병원 테넌트 id를 기준으로 건물 리스트를 조회하는 API")
public List<BuildingInfoResponse> buildingsGetByTenantId() {
return buildingService.getBuildingsByTenantId();
public List<BuildingInfoResponse> buildingListGetByTenantId() {
return buildingService.getBuildingListByTenantId();
}

@GetMapping("/paged")
@Operation(
summary = "Get Paged Buildings by Hospital Tenant ID",
description = "병원 테넌트 id를 기준으로 건물 리스트를 페이지네이션하여 조회하는 API")
public Page<BuildingInfoResponse> pagedBuildingListByTenantIdGet(
Pageable pageable, @RequestParam(required = false) String keyword) {
return buildingService.getPagedBuildingListByTenantId(keyword, pageable);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,19 @@
import com.doubleo.hospitalservice.domain.building.domain.Building;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BuildingRepository extends JpaRepository<Building, Long> {
List<Building> findAllByTenantId(String tenantId);

Page<Building> findByTenantId(String tenantId, Pageable pageable);

Page<Building> findByTenantIdAndBuildingNameContainingIgnoreCase(
String tenantId, String keyWord, Pageable pageable);

Optional<Building> findByTenantIdAndBuildingCode(String tenantId, String buildingCode);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

import com.doubleo.hospitalservice.domain.building.dto.response.BuildingInfoResponse;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface BuildingService {
List<BuildingInfoResponse> getBuildingsByTenantId();
List<BuildingInfoResponse> getBuildingListByTenantId();

Page<BuildingInfoResponse> getPagedBuildingListByTenantId(String keyword, Pageable pageable);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import jakarta.transaction.Transactional;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

@Service
Expand All @@ -20,12 +22,33 @@ public class BuildingServiceImpl implements BuildingService {

// tenantId를 기반으로 소속 건물 리스트 조회
@Override
public List<BuildingInfoResponse> getBuildingsByTenantId() {
public List<BuildingInfoResponse> getBuildingListByTenantId() {

String tenantId = tenantValidator.getTenantId();

List<Building> buildings = buildingRepository.findAllByTenantId(tenantId);

return buildings.stream().map(BuildingInfoResponse::from).toList();
}

public Page<BuildingInfoResponse> getPagedBuildingListByTenantId(
String keyword, Pageable pageable) {
String tenantId = tenantValidator.getTenantId();
Page<Building> buildings;

if (keyword != null && !keyword.trim().isEmpty()) {
buildings =
buildingRepository.findByTenantIdAndBuildingNameContainingIgnoreCase(
tenantId, keyword, pageable);
} else {
buildings = buildingRepository.findByTenantId(tenantId, pageable);
}

return buildings.map(
building ->
new BuildingInfoResponse(
building.getBuildingId(),
building.getBuildingName(),
building.getBuildingCode()));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.doubleo.hospitalservice.global.config.web;

import java.util.List;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
PageableHandlerMethodArgumentResolver resolver =
new PageableHandlerMethodArgumentResolver();
resolver.setMaxPageSize(500);
resolver.setFallbackPageable(PageRequest.of(0, 10));
resolvers.add(resolver);
}
}
Loading