Skip to content

Commit 44eabbc

Browse files
authored
Merge pull request #38 from SW-DiffLens/feat#35
[FEAT#35] 기존 기능 버그 일부 수정
2 parents 17da1c7 + c91a518 commit 44eabbc

File tree

14 files changed

+84
-40
lines changed

14 files changed

+84
-40
lines changed

src/main/java/DiffLens/back_end/domain/members/controller/AuthController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public ApiResponse<AuthResponseDTO.LoginDto> localLogin(@RequestBody @Valid Auth
5959
}
6060

6161
@PostMapping("/login/google")
62-
@Operation(summary = "로그인 ( 구글 )",
62+
@Operation(summary = "로그인 ( 구글 )", hidden = true,
6363
description = """
6464
6565
## 개요

src/main/java/DiffLens/back_end/domain/panel/repository/PanelRepository.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,41 @@ public interface PanelRepository extends JpaRepository<Panel, String> {
5050
""")
5151
List<PanelWithRawDataDTO> findPanelsWithRawDataByIds(@Param("ids") List<String> ids);
5252

53+
@Query("""
54+
SELECT new DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO(
55+
p.id,
56+
p.gender,
57+
p.age,
58+
p.ageGroup,
59+
p.birthYear,
60+
p.residence,
61+
p.maritalStatus,
62+
p.childrenCount,
63+
p.familySize,
64+
p.education,
65+
p.occupation,
66+
p.job,
67+
p.personalIncome,
68+
p.householdIncome,
69+
p.electronicDevices,
70+
p.phoneBrand,
71+
p.phoneModel,
72+
p.carOwnership,
73+
p.carBrand,
74+
p.carModel,
75+
p.smokingExperience,
76+
p.cigaretteBrands,
77+
p.eCigarette,
78+
p.drinkingExperience,
79+
p.profileSummary,
80+
p.hashTags,
81+
p.rawData
82+
)
83+
FROM Panel p
84+
WHERE p.id IN :ids
85+
""")
86+
Page<PanelWithRawDataDTO> findPanelsWithRawDataByIdsInPage(@Param("ids") List<String> ids, Pageable pageable);
87+
5388
@Query(
5489
"""
5590
SELECT p FROM Panel p

src/main/java/DiffLens/back_end/domain/search/controller/SearchController.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,18 @@ public class SearchController {
2222
private final SearchHistoryService searchHistoryService;
2323

2424
@PostMapping
25-
@Operation(summary = "자연어 검색 ( 부분개발, 테스트 전 )",
25+
@Operation(summary = "자연어 검색 ( ai 연동 전 )",
2626
description = """
2727
2828
## 개요
2929
자연어 검색 API 입니다.
3030
3131
## request body
3232
- 검색 모드와 필터 항목들은 노션에 정리하여 올리겠습니다.
33+
- 필터에는 Filter Code 를 넣어주세요. ex) 101, 203, 305 ...
3334
3435
## 응답
35-
검색 결과에 개별응답은 포함하지 않았습니다. 개별 API를 조회해야 합니다.
36+
검색 결과에 개별응답은 포함하지 않았습니다. 개별 응답 데이터 API를 조회해야 합니다.
3637
3738
""")
3839
public ApiResponse<SearchResponseDTO.SearchResult> naturalLanguage(@RequestBody @Valid SearchRequestDTO.NaturalLanguage request) {
@@ -41,14 +42,14 @@ public ApiResponse<SearchResponseDTO.SearchResult> naturalLanguage(@RequestBody
4142
}
4243

4344
@PostMapping("/refine")
44-
@Operation(summary = "기존 검색 결과 기반 재검색 ( 미구현 )")
45+
@Operation(summary = "기존 검색 결과 기반 재검색 ( 미구현 )", description = "아직 구현 전이지만 아마 자연어 검색과 같은 형태로 반환될 듯 싶습니다.")
4546
public ApiResponse<SearchResponseDTO.SearchResult> refine(@RequestBody @Valid SearchRequestDTO.ExistingSearchResult request) {
4647
SearchResponseDTO.SearchResult result = new SearchResponseDTO.SearchResult(); // 임시 result
4748
return ApiResponse.onSuccess(result);
4849
}
4950

5051
@GetMapping("/{searchId}/each-responses")
51-
@Operation(summary = "개별 응답 데이터 ( 테스트 전 )",
52+
@Operation(summary = "개별 응답 데이터 ( 완료 )",
5253
description = """
5354
5455
## 개요
@@ -70,7 +71,7 @@ public ApiResponse<SearchResponseDTO.EachResponses> eachResponses(@PathVariable(
7071
}
7172

7273
@GetMapping("/recommended")
73-
@Operation(summary = "맞춤 검색 추천 ( 미구현 )")
74+
@Operation(summary = "맞춤 검색 추천 ( 미구현 )", description = "요청 형태 확정 후 구현하겠습니다.")
7475
public ApiResponse<Void> refine(@RequestBody @Valid SearchRequestDTO.SearchFilters request) {
7576
return ApiResponse.onSuccess(null);
7677
}

src/main/java/DiffLens/back_end/domain/search/dto/SearchRequestDTO.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static class NaturalLanguage{
1919
@NotNull
2020
private QuestionMode mode;
2121
@NotNull
22-
private SearchFilters filters;
22+
private List<Long> filters;
2323
}
2424

2525
// 기존 검색 결과 기반 재검색
@@ -38,8 +38,8 @@ public static class ExistingSearchResult{
3838
@Getter
3939
@Setter
4040
public static class SearchFilters{
41-
private Integer count;
42-
private String gender;
41+
// private Integer count;
42+
// private String gender;
4343
private List<Long> filters; // age_group:TWENTY
4444
// private Respondent respondent;
4545
// @JsonProperty(value = "age_group")

src/main/java/DiffLens/back_end/domain/search/dto/SearchResponseDTO.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package DiffLens.back_end.domain.search.dto;
22

3-
import DiffLens.back_end.domain.panel.entity.Panel;
4-
import DiffLens.back_end.domain.rawData.dto.PanelDTO;
3+
import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO;
54
import DiffLens.back_end.global.dto.ResponsePageDTO;
65
import com.fasterxml.jackson.annotation.JsonProperty;
76
import lombok.AllArgsConstructor;
@@ -96,13 +95,13 @@ public static class ResponseValues{
9695
@JsonProperty("concordance_rate")
9796
private String concordanceRate; // 일치율
9897

99-
public static ResponseValues fromPanelDTO(Panel panel, String concordanceRate) {
98+
public static ResponseValues fromPanelDTO(PanelWithRawDataDTO panel, String concordanceRate) {
10099
return ResponseValues.builder()
101100
.respondentId(panel.getId())
102101
.gender(panel.getGender().getDisplayValue())
103-
.age("TODO : 나이 넣기") // TODO : Panel에 나이 생기면 넣기
102+
.age(panel.getAge() != null ? panel.getAge().toString() : null)
104103
.residence(panel.getResidence())
105-
.personalIncome("TODO : 개인소득 넣기") // TODO : Panel에 개인소득 생기면 넣기
104+
.personalIncome(panel.getPersonalIncome())
106105
.concordanceRate(concordanceRate)
107106
.build();
108107
}

src/main/java/DiffLens/back_end/domain/search/enums/filters/Gender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public enum Gender {
1111

1212
MALE(1L, "남성", "남성"),
1313
FEMALE(2L, "여성", "여성"),
14-
NONE(3L, "알수없음", null)
14+
NONE(3L, "기타", null)
1515

1616
;
1717

src/main/java/DiffLens/back_end/domain/search/enums/filters/MartialStatus.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public enum MartialStatus {
1313
MARRIED(2L, "기혼", "기혼"),
1414
DIVORCE(3L, "이혼", "이혼"),
1515
DEATH(4L, "사별", "사별"),
16-
NONE(5L, "알수없음", null)
16+
NONE(5L, "기타", null)
1717

1818
;
1919

src/main/java/DiffLens/back_end/domain/search/service/implement/NaturalSearchService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public SearchResponseDTO.SearchResult search(SearchRequestDTO.NaturalLanguage re
5555
FastPanelRequestDTO.FastNaturalSearch.builder()
5656
.question(request.getQuestion())
5757
.mode(request.getMode().getKr())
58-
.filters(new FastPanelRequestDTO.FastNaturalSearch.FastSearchFilters())
58+
.filters(new FastPanelRequestDTO.FastSearchFilters())
5959
.build()
6060
);
6161
// FastNaturalSearchResponseDTO.SearchResult response = new FastNaturalSearchResponseDTO.SearchResult();

src/main/java/DiffLens/back_end/domain/search/service/implement/SearchHistoryServiceImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package DiffLens.back_end.domain.search.service.implement;
22

3+
import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO;
34
import DiffLens.back_end.global.fastapi.dto.response.FastNaturalSearchResponseDTO;
4-
import DiffLens.back_end.domain.panel.entity.Panel;
55
import DiffLens.back_end.domain.rawData.service.RawDataService;
66
import DiffLens.back_end.domain.search.dto.SearchRequestDTO;
77
import DiffLens.back_end.domain.search.dto.SearchResponseDTO;
@@ -34,7 +34,7 @@ public class SearchHistoryServiceImpl implements SearchHistoryService {
3434
private final RawDataService rawDataService;
3535
private final FilterService filterService;
3636

37-
private final List<String> keys = List.of("응답자ID", "성별", "나이", "거주지", "월소득", "일치율");
37+
private final List<String> keys = List.of("응답자ID-respondent_id", "성별-gender", "나이-age", "거주지-residence", "월소득-personal_income", "일치율-concordance_rate");
3838

3939
@Override
4040
public SearchHistory makeSearchHistory(SearchRequestDTO.NaturalLanguage request, FastNaturalSearchResponseDTO.SearchResult fastApiResponse) {
@@ -51,7 +51,7 @@ public SearchHistory makeSearchHistory(SearchRequestDTO.NaturalLanguage request,
5151
);
5252

5353
// SearchFilter 생성
54-
SearchFilter searchFilter = filterService.makeFilter(request.getFilters().getFilters(), searchHistory);
54+
SearchFilter searchFilter = filterService.makeFilter(request.getFilters(), searchHistory);
5555
// SearchHistory의 Filter를 지정
5656
searchHistory.setFilter(searchFilter);
5757

@@ -92,7 +92,7 @@ public SearchResponseDTO.EachResponses getEachResponses(Long searchHistoryId, In
9292
Pageable pageable = PageRequest.of(pageNum - 1, size);
9393

9494
// PanelId 목록을 이용해서 Panel 조회
95-
Page<Panel> panelDtoList = searchPanelService.getPanelDtoList(panelIds, pageable);
95+
Page<PanelWithRawDataDTO> panelDtoList = searchPanelService.getPanelDtoList(panelIds, pageable);
9696

9797
// 페이지 범위 초과 검사 추가
9898
if (pageNum > panelDtoList.getTotalPages() && panelDtoList.getTotalPages() > 0) {

src/main/java/DiffLens/back_end/domain/search/service/implement/SearchPanelServiceImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package DiffLens.back_end.domain.search.service.implement;
22

3-
import DiffLens.back_end.domain.panel.entity.Panel;
43
import DiffLens.back_end.domain.panel.repository.PanelRepository;
4+
import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO;
55
import DiffLens.back_end.domain.search.service.interfaces.SearchPanelService;
66
import lombok.RequiredArgsConstructor;
77
import org.springframework.data.domain.Page;
@@ -17,8 +17,8 @@ public class SearchPanelServiceImpl implements SearchPanelService {
1717
private final PanelRepository panelRepository;
1818

1919
@Override
20-
public Page<Panel> getPanelDtoList(List<String> panelIds, Pageable pageable) {
21-
return panelRepository.findByIdIn(panelIds, pageable);
20+
public Page<PanelWithRawDataDTO> getPanelDtoList(List<String> panelIds, Pageable pageable) {
21+
return panelRepository.findPanelsWithRawDataByIdsInPage(panelIds, pageable);
2222
}
2323

2424
}

0 commit comments

Comments
 (0)