diff --git a/src/main/java/com/example/Jinus/service/v2/cafeteria/CafeteriaServiceV2.java b/src/main/java/com/example/Jinus/service/v2/cafeteria/CafeteriaServiceV2.java index 69ec74a..532828e 100644 --- a/src/main/java/com/example/Jinus/service/v2/cafeteria/CafeteriaServiceV2.java +++ b/src/main/java/com/example/Jinus/service/v2/cafeteria/CafeteriaServiceV2.java @@ -11,6 +11,7 @@ public class CafeteriaServiceV2 { private final CampusServiceV2 campusServiceV2; + private final CampusResponseServiceV2 campusResponseServiceV2; private final CacheServiceV2 cacheServiceV2; private final CafeteriaResponseServiceV2 cafeteriaResponseServiceV2; @@ -18,13 +19,13 @@ public class CafeteriaServiceV2 { // campusId가 -1이면 사용자 정보가 존재하지 않는 경우임 public String campusOrCafeteria(int userCampusId, int sysCampusId) { if (sysCampusId == -1) { // 더보기 버튼 누른 경우 -> 캠퍼스 리스트 반환 - return campusServiceV2.makeCampusListCard(); + return campusResponseServiceV2.makeCampusListCard(); } // 사용자가 캠퍼스를 선택한 경우 int targetCampusId = (sysCampusId > 0) ? sysCampusId : userCampusId; return (targetCampusId != -1) // 사용자 정보 DB 존재 여부 ? returnCafeteriaListCard(targetCampusId) // 존재 O -> 식당 정보 반환 - : campusServiceV2.makeCampusListCard(); // 존재 X -> 캠퍼스 정보 반환 + : campusResponseServiceV2.makeCampusListCard(); // 존재 X -> 캠퍼스 정보 반환 } // 식당 리스트 반환 @@ -33,79 +34,4 @@ private String returnCafeteriaListCard(int campusId) { List cafeteriaList = cacheServiceV2.getCafeteriaList(campusId); return cafeteriaResponseServiceV2.createCafeteriaListCard(campusName, cafeteriaList); } - -// // 반환 조건 설정 -// public String campusOrCafeteria(int campusId, int sysCampusId) { -// // 더보기 버튼 누른 경우 -// if (sysCampusId == -1) { -// return campusServiceV2.makeCampusListCard(); -// } -// -// // 사용자가 원하는 캠퍼스가 있을 때 -// if (sysCampusId > 0) { -// return makeCafeteriaListCard(sysCampusId); -// } -// -// // 사용자가 원하는 캠퍼스가 없을 때 -// return (campusId != -1) // 사용자 존재 여부 -// ? makeCafeteriaListCard(campusId) -// : campusServiceV2.makeCampusListCard(); -// } -// -// // 식당 리스트 반환 메소드 -// private String makeCafeteriaListCard(int campusId) { -// String campusName = campusServiceV2.getUserCampusName(campusId); -// List cafeteriaList = cacheServiceV2.getCafeteriaList(campusId); -// -// // 식당 리스트 객체 생성 -// List listItems = mappingCafeteriaList(campusName, cafeteriaList); -// // response 객체 생성 -// ResponseDto responseDto = ListCardResponse.mappingResponseDto("어떤 교내 식당 정보가 알고싶어 ?", listItems, mappingButtonDto()); -// -// return JsonUtils.toJsonResponse(responseDto); -// } -// -// -// // 식당 리스트 객체 생성 -// private List mappingCafeteriaList(String campusName, List cafeteriaList) { -// List listItems = new ArrayList<>(); -// for (CafeteriaDto cafeteria : cafeteriaList) { -// String userMessage = campusName + " " + cafeteria.getCafeteriaNameKo(); -// -// // 리스트 아이템 객체 생성 -// ListItemDto listItem = new ListItemDto(cafeteria.getCafeteriaNameKo(), campusName, -// cafeteria.getThumbnailUrl(), "message", userMessage); -// listItems.add(listItem); -// } -// return listItems; -// } -// -// -// // 더보기 버튼 리스트 생성 -// private List mappingButtonDto() { -// List buttonDto = new ArrayList<>(); -// Map extra = new HashMap<>(); -// extra.put("sys_campus_id", -1); -// // 버튼 객체 생성 -// ButtonDto button = new ButtonDto("더보기", "block", "66067167cdd882158c759fc2", extra); -// buttonDto.add(button); -// return buttonDto; -// } -// -// -// -// @Cacheable(value = "cafeteriaId", key = "#campusId + '::' + #cafeteriaName", -// unless = "#result == -1", -// cacheManager = "contentCacheManager") -// // 캠퍼스에 식당이 존재한다면 cafeteriaId 찾기 -// public int getCafeteriaId(String cafeteriaName, int campusId) { -// return cafeteriaRepositoryV2.findCafeteriaId(cafeteriaName, campusId).orElse(-1); -// } -// -// -// // 식당 imgUrl 찾기 -// public String getImgUrl(int cafeteriaId) { -// return cafeteriaRepositoryV2.findImgUrlByCafeteriaId(cafeteriaId); -// } - -} +} \ No newline at end of file diff --git a/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusResponseServiceV2.java b/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusResponseServiceV2.java new file mode 100644 index 0000000..efb3b0f --- /dev/null +++ b/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusResponseServiceV2.java @@ -0,0 +1,47 @@ +package com.example.Jinus.service.v2.cafeteria; + +import com.example.Jinus.dto.response.ListItemDto; +import com.example.Jinus.dto.response.ResponseDto; +import com.example.Jinus.entity.cafeteria.CampusEntity; +import com.example.Jinus.utility.JsonUtils; +import com.example.Jinus.utility.ListCardResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@RequiredArgsConstructor +public class CampusResponseServiceV2 { + + private final CampusServiceV2 campusServiceV2; + + // 캠퍼스 리스트 반환 메소드 + public String makeCampusListCard() { + List campusList = campusServiceV2.getCampusList(); + // 캠퍼스 리스트 객체 생성 + List listItems = mappingCampusList(campusList); + // response 객체 생성 + ResponseDto responseDto = ListCardResponse.mappingResponseDto("어떤 캠퍼스 식당 정보가 궁금해 ?", listItems, null); + return JsonUtils.toJsonResponse(responseDto); + } + + // 캠퍼스 리스트 객체 생성 + private List mappingCampusList(List campusList) { + List listItems = new ArrayList<>(); + for (CampusEntity campus : campusList) { + String campusName = campus.getCampusNameKo(); + String imageUrl = campus.getThumbnailUrl(); + Map extra = new HashMap<>(); + extra.put("sys_campus_id", campus.getId()); + + // 캠퍼스 아이템 객체 생성 + ListItemDto listItem = new ListItemDto(campusName, imageUrl, "block", "66067167cdd882158c759fc2", extra); + listItems.add(listItem); + } + return listItems; + } +} diff --git a/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusServiceV2.java b/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusServiceV2.java index eb61f20..4f4e938 100644 --- a/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusServiceV2.java +++ b/src/main/java/com/example/Jinus/service/v2/cafeteria/CampusServiceV2.java @@ -1,18 +1,11 @@ package com.example.Jinus.service.v2.cafeteria; -import com.example.Jinus.dto.response.ListItemDto; -import com.example.Jinus.dto.response.ResponseDto; import com.example.Jinus.entity.cafeteria.CampusEntity; import com.example.Jinus.repository.v2.cafeteria.CampusRepositoryV2; -import com.example.Jinus.utility.JsonUtils; -import com.example.Jinus.utility.ListCardResponse; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; @Service @RequiredArgsConstructor @@ -34,32 +27,4 @@ public List getCampusList() { public int getCampusId(String campusName) { return campusRepositoryV2.findCampusIdByName(campusName); } - - // 캠퍼스 리스트 반환 메소드 - public String makeCampusListCard() { - List campusList = getCampusList(); - - // 캠퍼스 리스트 객체 생성 - List listItems = mappingCampusList(campusList); - // response 객체 생성 - ResponseDto responseDto = ListCardResponse.mappingResponseDto("어떤 캠퍼스 식당 정보가 궁금해 ?", listItems, null); - - return JsonUtils.toJsonResponse(responseDto); - } - - // 캠퍼스 리스트 객체 생성 - private List mappingCampusList(List campusList) { - List listItems = new ArrayList<>(); - for (CampusEntity campus : campusList) { - String campusName = campus.getCampusNameKo(); - String imageUrl = campus.getThumbnailUrl(); - Map extra = new HashMap<>(); - extra.put("sys_campus_id", campus.getId()); - - // 캠퍼스 아이템 객체 생성 - ListItemDto listItem = new ListItemDto(campusName, imageUrl, "block", "66067167cdd882158c759fc2", extra); - listItems.add(listItem); - } - return listItems; - } }