Skip to content

Commit 0799ecf

Browse files
committed
[Refactor]CafeteriaControllerV2 비즈니스 로직 ServiceV2 클래스로 분리
1 parent 23de2b2 commit 0799ecf

File tree

5 files changed

+116
-94
lines changed

5 files changed

+116
-94
lines changed

src/main/java/com/example/Jinus/controller/v2/CafeteriaControllerV2.java

Lines changed: 4 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.example.Jinus.service.v2.cafeteria.CampusServiceV2;
88
import com.example.Jinus.service.v2.userInfo.UserServiceV2;
99
import com.example.Jinus.utility.JsonUtils;
10+
import com.example.Jinus.utility.ListCardResponse;
1011
import org.springframework.web.bind.annotation.PostMapping;
1112
import org.springframework.web.bind.annotation.RequestBody;
1213
import org.springframework.web.bind.annotation.RestController;
@@ -43,98 +44,9 @@ public String responseCafeteriaOrCampusListCard(@RequestBody RequestDto requestD
4344

4445
// 사용자가 존재 & 식당 블록에서 캠퍼스 눌렀을 때 -> 식당 리스트
4546
if (campusId != -1 && sysCampusId != -1) {
46-
return makeCafeteriaListCard(campusId);
47-
} else { // 사용자가 존재 X & 식당 블록에서 더보기 버튼 눌렀을 때 -> 캠퍼스 리스트
48-
return makeCampusListCard();
47+
return cafeteriaServiceV2.makeCafeteriaListCard(campusId);
48+
} else { // 사용자가 존재 X & 식당 블록에서 더보기 버튼 눌렀을 때(-1 반환)-> 캠퍼스 리스트
49+
return campusServiceV2.makeCampusListCard();
4950
}
5051
}
51-
52-
53-
// 식당 리스트 반환 메소드
54-
public String makeCafeteriaListCard(int campusId) {
55-
String campusName = campusServiceV2.findUserCampusName(campusId);
56-
List<Object[]> cafeteriaList = cafeteriaServiceV2.findCafeteriaList(campusId);
57-
58-
// 식당 리스트 객체 생성
59-
List<ListItemDto> listItems = mappingCafeteriaList(campusName, cafeteriaList);
60-
// response 객체 생성
61-
ResponseDto responseDto = mappingResponseDto("어떤 교내 식당 정보가 알고싶어 ?", listItems, mappingButtonDto());
62-
63-
return JsonUtils.toJsonResponse(responseDto);
64-
}
65-
66-
67-
// 식당 리스트 객체 생성
68-
public List<ListItemDto> mappingCafeteriaList(String campusName, List<Object[]> cafeteriaList) {
69-
List<ListItemDto> listItems = new ArrayList<>();
70-
for (Object[] cafeteria : cafeteriaList) {
71-
String cafeteriaName = cafeteria[0].toString();
72-
String imageUrl = cafeteria[1].toString();
73-
String userMessage = campusName + " " + cafeteriaName;
74-
75-
// 리스트 아이템 객체 생성
76-
ListItemDto listItem = new ListItemDto(cafeteriaName, campusName, imageUrl, "message", userMessage);
77-
listItems.add(listItem);
78-
}
79-
return listItems;
80-
}
81-
82-
83-
// 더보기 버튼 리스트 생성
84-
public List<ButtonDto> mappingButtonDto() {
85-
List<ButtonDto> buttonDto = new ArrayList<>();
86-
Map<String, Object> extra = new HashMap<>();
87-
extra.put("sys_campus_id", -1);
88-
// 버튼 객체 생성
89-
ButtonDto button = new ButtonDto("더보기", "block", "66067167cdd882158c759fc2", extra);
90-
buttonDto.add(button);
91-
return buttonDto;
92-
}
93-
94-
95-
// 캠퍼스 리스트 반환 메소드
96-
public String makeCampusListCard() {
97-
List<CampusEntity> campusList = campusServiceV2.findCampusList();
98-
99-
// 캠퍼스 리스트 객체 생성
100-
List<ListItemDto> listItems = mappingCampusList(campusList);
101-
// response 객체 생성
102-
ResponseDto responseDto = mappingResponseDto("어떤 캠퍼스 식당 정보가 궁금해 ?", listItems, null);
103-
104-
return JsonUtils.toJsonResponse(responseDto);
105-
}
106-
107-
108-
// 캠퍼스 리스트 객체 생성
109-
public List<ListItemDto> mappingCampusList(List<CampusEntity> campusList) {
110-
List<ListItemDto> listItems = new ArrayList<>();
111-
for (CampusEntity campus : campusList) {
112-
String campusName = campus.getCampusNameKo();
113-
String imageUrl = campus.getThumbnailUrl();
114-
Map<String, Object> extra = new HashMap<>();
115-
extra.put("sys_campus_id", campus.getId());
116-
117-
// 캠퍼스 아이템 객체 생성
118-
ListItemDto listItem = new ListItemDto(campusName, imageUrl, "block", "66067167cdd882158c759fc2", extra);
119-
listItems.add(listItem);
120-
}
121-
return listItems;
122-
}
123-
124-
125-
// ResponseDto 객체 생성
126-
public ResponseDto mappingResponseDto(String msg, List<ListItemDto> listItems, List<ButtonDto> buttonDto) {
127-
// header 객체 생성
128-
HeaderDto header = new HeaderDto(msg);
129-
// ListCard 객체 생성
130-
ListCardDto listCardDto = new ListCardDto(header, listItems, buttonDto);
131-
// component 객체 생성
132-
ComponentDto componentDto = new ComponentDto(listCardDto);
133-
// template 객체 생성
134-
List<ComponentDto> outputs = new ArrayList<>();
135-
outputs.add(componentDto);
136-
TemplateDto templateDto = new TemplateDto(outputs);
137-
// response 객체 생성
138-
return new ResponseDto("2.0", templateDto);
139-
}
14052
}
Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,73 @@
11
package com.example.Jinus.service.v2.cafeteria;
22

3+
import com.example.Jinus.dto.response.ButtonDto;
4+
import com.example.Jinus.dto.response.ListItemDto;
5+
import com.example.Jinus.dto.response.ResponseDto;
36
import com.example.Jinus.repository.cafeteria.CafeteriaRepository;
47
import com.example.Jinus.repository.v2.cafeteria.CafeteriaRepositoryV2;
8+
import com.example.Jinus.utility.JsonUtils;
9+
import com.example.Jinus.utility.ListCardResponse;
510
import org.springframework.stereotype.Service;
611

12+
import java.util.ArrayList;
13+
import java.util.HashMap;
714
import java.util.List;
15+
import java.util.Map;
816

917
@Service
1018
public class CafeteriaServiceV2 {
1119

1220
private final CafeteriaRepositoryV2 cafeteriaRepositoryV2;
21+
private final CampusServiceV2 campusServiceV2;
1322

14-
public CafeteriaServiceV2(CafeteriaRepositoryV2 cafeteriaRepositoryV2) {
23+
public CafeteriaServiceV2(
24+
CafeteriaRepositoryV2 cafeteriaRepositoryV2,
25+
CampusServiceV2 campusServiceV2) {
1526
this.cafeteriaRepositoryV2 = cafeteriaRepositoryV2;
27+
this.campusServiceV2 = campusServiceV2;
1628
}
1729

1830
// 사용자의 campusId와 동일한 식당리스트 찾기
1931
public List<Object[]> findCafeteriaList(int campusId) {
2032
return cafeteriaRepositoryV2.findCafeteriaListByCampusId(campusId);
2133
}
34+
35+
// 식당 리스트 반환 메소드
36+
public String makeCafeteriaListCard(int campusId) {
37+
String campusName = campusServiceV2.findUserCampusName(campusId);
38+
List<Object[]> cafeteriaList = findCafeteriaList(campusId);
39+
40+
// 식당 리스트 객체 생성
41+
List<ListItemDto> listItems = mappingCafeteriaList(campusName, cafeteriaList);
42+
// response 객체 생성
43+
ResponseDto responseDto = ListCardResponse.mappingResponseDto("어떤 교내 식당 정보가 알고싶어 ?", listItems, mappingButtonDto());
44+
45+
return JsonUtils.toJsonResponse(responseDto);
46+
}
47+
48+
// 식당 리스트 객체 생성
49+
public List<ListItemDto> mappingCafeteriaList(String campusName, List<Object[]> cafeteriaList) {
50+
List<ListItemDto> listItems = new ArrayList<>();
51+
for (Object[] cafeteria : cafeteriaList) {
52+
String cafeteriaName = cafeteria[0].toString();
53+
String imageUrl = cafeteria[1].toString();
54+
String userMessage = campusName + " " + cafeteriaName;
55+
56+
// 리스트 아이템 객체 생성
57+
ListItemDto listItem = new ListItemDto(cafeteriaName, campusName, imageUrl, "message", userMessage);
58+
listItems.add(listItem);
59+
}
60+
return listItems;
61+
}
62+
63+
// 더보기 버튼 리스트 생성
64+
public List<ButtonDto> mappingButtonDto() {
65+
List<ButtonDto> buttonDto = new ArrayList<>();
66+
Map<String, Object> extra = new HashMap<>();
67+
extra.put("sys_campus_id", -1);
68+
// 버튼 객체 생성
69+
ButtonDto button = new ButtonDto("더보기", "block", "66067167cdd882158c759fc2", extra);
70+
buttonDto.add(button);
71+
return buttonDto;
72+
}
2273
}

src/main/java/com/example/Jinus/service/v2/cafeteria/CampusServiceV2.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
package com.example.Jinus.service.v2.cafeteria;
22

3+
import com.example.Jinus.dto.response.ListItemDto;
4+
import com.example.Jinus.dto.response.ResponseDto;
35
import com.example.Jinus.entity.cafeteria.CampusEntity;
46
import com.example.Jinus.repository.v2.cafeteria.CampusRepositoryV2;
7+
import com.example.Jinus.utility.JsonUtils;
8+
import com.example.Jinus.utility.ListCardResponse;
59
import org.springframework.beans.factory.annotation.Autowired;
610
import org.springframework.stereotype.Service;
711

12+
import java.util.ArrayList;
13+
import java.util.HashMap;
814
import java.util.List;
15+
import java.util.Map;
916

1017
@Service
1118
public class CampusServiceV2 {
@@ -25,4 +32,32 @@ public String findUserCampusName(int campusId) {
2532
public List<CampusEntity> findCampusList() {
2633
return campusRepositoryV2.findCampusList();
2734
}
35+
36+
// 캠퍼스 리스트 반환 메소드
37+
public String makeCampusListCard() {
38+
List<CampusEntity> campusList = findCampusList();
39+
40+
// 캠퍼스 리스트 객체 생성
41+
List<ListItemDto> listItems = mappingCampusList(campusList);
42+
// response 객체 생성
43+
ResponseDto responseDto = ListCardResponse.mappingResponseDto("어떤 캠퍼스 식당 정보가 궁금해 ?", listItems, null);
44+
45+
return JsonUtils.toJsonResponse(responseDto);
46+
}
47+
48+
// 캠퍼스 리스트 객체 생성
49+
public List<ListItemDto> mappingCampusList(List<CampusEntity> campusList) {
50+
List<ListItemDto> listItems = new ArrayList<>();
51+
for (CampusEntity campus : campusList) {
52+
String campusName = campus.getCampusNameKo();
53+
String imageUrl = campus.getThumbnailUrl();
54+
Map<String, Object> extra = new HashMap<>();
55+
extra.put("sys_campus_id", campus.getId());
56+
57+
// 캠퍼스 아이템 객체 생성
58+
ListItemDto listItem = new ListItemDto(campusName, imageUrl, "block", "66067167cdd882158c759fc2", extra);
59+
listItems.add(listItem);
60+
}
61+
return listItems;
62+
}
2863
}

src/main/java/com/example/Jinus/utility/JsonUtils.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public static String toJsonResponse(Object responseDto) {
2323
}
2424

2525
// jsonResponse를 클라이언트로 보내는 코드
26-
System.out.println(jsonResponse);
2726
return jsonResponse;
2827
}
2928
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.example.Jinus.utility;
2+
3+
import com.example.Jinus.dto.response.*;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class ListCardResponse {
9+
10+
// ResponseDto 객체 생성
11+
public static ResponseDto mappingResponseDto(String msg, List<ListItemDto> listItems, List<ButtonDto> buttonDto) {
12+
// header 객체 생성
13+
HeaderDto header = new HeaderDto(msg);
14+
// ListCard 객체 생성
15+
ListCardDto listCardDto = new ListCardDto(header, listItems, buttonDto);
16+
// component 객체 생성
17+
ComponentDto componentDto = new ComponentDto(listCardDto);
18+
// template 객체 생성
19+
List<ComponentDto> outputs = new ArrayList<>();
20+
outputs.add(componentDto);
21+
TemplateDto templateDto = new TemplateDto(outputs);
22+
// response 객체 생성
23+
return new ResponseDto("2.0", templateDto);
24+
}
25+
}

0 commit comments

Comments
 (0)