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 @@ -21,6 +21,7 @@ public class Library extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "library_id")
private Long id;

@Column(nullable = false, length = 50)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ public LibraryResponseDTO.LibraryDetail getLibraryDetail(Long libraryId, Member
.gender(panel.getGender() != null ? panel.getGender().toString() : null)
.age(panel.getAge())
.ageGroup(panel.getAgeGroup())
.residence(panel.getResidence())
.residence(panel.getRegion())
.maritalStatus(panel.getMaritalStatus())
.childrenCount(panel.getChildrenCount())
.occupation(panel.getOccupation())
Expand Down Expand Up @@ -273,11 +273,11 @@ private LibraryResponseDTO.LibraryDetail.Statistics createStatistics(List<Panel>
.build();

// 거주지 분포
long seoul = panels.stream().filter(p -> p.getResidence() != null && p.getResidence().contains("서울"))
long seoul = panels.stream().filter(p -> p.getRegion() != null && p.getRegion().contains("서울"))
.count();
long gyeonggi = panels.stream().filter(p -> p.getResidence() != null && p.getResidence().contains("경기"))
long gyeonggi = panels.stream().filter(p -> p.getRegion() != null && p.getRegion().contains("경기"))
.count();
long busan = panels.stream().filter(p -> p.getResidence() != null && p.getResidence().contains("부산"))
long busan = panels.stream().filter(p -> p.getRegion() != null && p.getRegion().contains("부산"))
.count();
long other = panels.size() - seoul - gyeonggi - busan;

Expand Down Expand Up @@ -378,9 +378,9 @@ private LibraryCompareResponseDTO.GroupMetrics getGroupMetrics(Library library)
long maleCount = panels.stream().filter(p -> p.getGender() != null && p.getGender().toString().equals(Gender.MALE)).count();
long femaleCount = panels.stream().filter(p -> p.getGender() != null && p.getGender().toString().equals(Gender.FEMALE)).count();

long seoul = panels.stream().filter(p -> p.getResidence() != null && p.getResidence().contains("서울")).count();
long gyeonggi = panels.stream().filter(p -> p.getResidence() != null && p.getResidence().contains("경기")).count();
long busan = panels.stream().filter(p -> p.getResidence() != null && p.getResidence().contains("부산")).count();
long seoul = panels.stream().filter(p -> p.getRegion() != null && p.getRegion().contains("서울")).count();
long gyeonggi = panels.stream().filter(p -> p.getRegion() != null && p.getRegion().contains("경기")).count();
long busan = panels.stream().filter(p -> p.getRegion() != null && p.getRegion().contains("부산")).count();
long regionEtc = total - seoul - gyeonggi - busan;

long carOwners = panels.stream().filter(p -> p.getCarOwnership() != null && p.getCarOwnership().contains("있음")).count();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public class Agreement extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "agreement_id")
private Long id;

@Column(nullable = false, columnDefinition = "TEXT")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public class Member extends BaseEntity implements UserDetails {
// 식별자
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "member_id")
private Long id;

// 일반 속성
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public class Onboarding extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "onboarding_id")
private Long id;

@Enumerated(EnumType.STRING)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
public class Plan extends BaseEntity {

@Id
@Column(name = "plan_id")
private Long id;

@Column(nullable = false, length = 50)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
public class Panel extends BaseEntity {

@Id
@Column(length = 50)
@Column(name = "panel_id", length = 50)
private String id;

@Enumerated(EnumType.STRING)
Expand All @@ -36,6 +36,9 @@ public class Panel extends BaseEntity {
@Column(length = 4)
private Integer birthYear;

@Column(length = 100)
private String region;

@Column(length = 100)
private String residence;

Expand Down Expand Up @@ -109,8 +112,8 @@ public class Panel extends BaseEntity {
private float[] embedding = new float[4096]; // float[] 써야한다고 함...

@JdbcTypeCode(SqlTypes.ARRAY)
@Column(columnDefinition = "text[]")
private List<String> hashTags = new ArrayList<>();
@Column(name = "hashtags", columnDefinition = "text[]")
private List<String> hashtags = new ArrayList<>();

// 연관관계
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public interface PanelRepository extends JpaRepository<Panel, String> {
p.age,
p.ageGroup,
p.birthYear,
p.region,
p.residence,
p.maritalStatus,
p.childrenCount,
Expand All @@ -42,7 +43,7 @@ public interface PanelRepository extends JpaRepository<Panel, String> {
p.eCigarette,
p.drinkingExperience,
p.profileSummary,
p.hashTags,
p.hashtags,
p.rawData
)
FROM Panel p
Expand All @@ -57,6 +58,7 @@ public interface PanelRepository extends JpaRepository<Panel, String> {
p.age,
p.ageGroup,
p.birthYear,
p.region,
p.residence,
p.maritalStatus,
p.childrenCount,
Expand All @@ -77,7 +79,7 @@ public interface PanelRepository extends JpaRepository<Panel, String> {
p.eCigarette,
p.drinkingExperience,
p.profileSummary,
p.hashTags,
p.hashtags,
p.rawData
)
FROM Panel p
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public class PanelWithRawDataDTO {
private Integer age;
private String ageGroup;
private Integer birthYear;
private String region;
private String residence;
private String maritalStatus;
private Integer childrenCount;
Expand Down Expand Up @@ -52,6 +53,7 @@ public static PanelWithRawDataDTO fromEntity(Panel panel) {
panel.getAge(),
panel.getAgeGroup(),
panel.getBirthYear(),
panel.getRegion(),
panel.getResidence(),
panel.getMaritalStatus(),
panel.getChildrenCount(),
Expand All @@ -72,7 +74,7 @@ public static PanelWithRawDataDTO fromEntity(Panel panel) {
panel.getECigarette(),
panel.getDrinkingExperience(),
panel.getProfileSummary(),
panel.getHashTags(),
panel.getHashtags(),
panel.getRawData()
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public PanelResponseDTO.PanelDetails getPanelDetails(String panelId) {
.summary(panel.getProfileSummary())
.basicInfo(PanelResponseDTO.PanelDetails.PanelDetail.BasicInfo.builder()
.gender(panel.getGender() != null ? panel.getGender().toString() : null)
.residence(panel.getResidence())
.residence(panel.getRegion())
.maritalStatus(panel.getMaritalStatus())
.childrenCount(panel.getChildrenCount())
.occupation(panel.getOccupation())
Expand Down Expand Up @@ -65,7 +65,7 @@ private List<PanelResponseDTO.PanelDetails.PanelDetail.Attribute> createAttribut
.build(),
PanelResponseDTO.PanelDetails.PanelDetail.Attribute.builder()
.key("residence")
.value(panel.getResidence())
.value(panel.getRegion())
.build(),
PanelResponseDTO.PanelDetails.PanelDetail.Attribute.builder()
.key("marital_status")
Expand Down Expand Up @@ -143,7 +143,7 @@ private List<PanelResponseDTO.PanelDetails.PanelDetail.Attribute> createAttribut
.build(),
PanelResponseDTO.PanelDetails.PanelDetail.Attribute.builder()
.key("hash_tags")
.value(panel.getHashTags().toString())
.value(panel.getHashtags().toString())
.build(),
PanelResponseDTO.PanelDetails.PanelDetail.Attribute.builder()
.key("raw_data")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@

@Component
@RequiredArgsConstructor
public class FilterDtoConverter implements SearchDtoConverter<FastNaturalLanguageResponseDTO.NaturalSearch, List<AppliedFilter>, SearchHistory>{
public class FilterDtoConverter implements SearchDtoConverter<Void, List<AppliedFilter>, SearchHistory>{

private final FilterService filterService;

@Override
public List<AppliedFilter> requestToDto(FastNaturalLanguageResponseDTO.NaturalSearch response, SearchHistory searchHistory) {
public List<AppliedFilter> requestToDto(Void v, SearchHistory searchHistory) {

List<Long> filterIdList = searchHistory.getSearchFilter().getFilters();
List<Filter> filters = filterService.findFilters(filterIdList);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,36 @@
import DiffLens.back_end.domain.panel.repository.projection.PanelWithRawDataDTO;
import DiffLens.back_end.global.fastapi.dto.response.FastNaturalLanguageResponseDTO;
import DiffLens.back_end.domain.search.dto.SearchResponseDTO;
import DiffLens.back_end.global.fastapi.dto.response.MainSearchResponse;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;

@Component
public class SummaryDtoConverter implements SearchDtoConverter<FastNaturalLanguageResponseDTO.Data, SearchResponseDTO.SearchResult.Summary, List<PanelWithRawDataDTO>> {
public class SummaryDtoConverter implements SearchDtoConverter<MainSearchResponse, SearchResponseDTO.SearchResult.Summary, List<PanelWithRawDataDTO>> {

@Override
public SearchResponseDTO.SearchResult.Summary requestToDto(FastNaturalLanguageResponseDTO.Data response, List<PanelWithRawDataDTO> panelList) {
public SearchResponseDTO.SearchResult.Summary requestToDto(MainSearchResponse response, List<PanelWithRawDataDTO> panelList) {

return SearchResponseDTO.SearchResult.Summary.builder()
.totalRespondents(panelList.size())
.averageAge(getAgeAvg(panelList))
.averageAge(getAgeAvg(response))
.dataCaptureDate(getCurrentDate())
.confidenceLevel(response.getAccuracy() != null ? response.getAccuracy().intValue() : null)
.confidenceLevel(null)
// .confidenceLevel(response.getAccuracy() != null ? response.getAccuracy().intValue() : null)
.build();
}

private Double getAgeAvg(List<PanelWithRawDataDTO> panelList) {
// TODO : 나이 평균 계산
return 1.0;
private Double getAgeAvg(MainSearchResponse response) {

List<MainSearchResponse.PanelInfo> panels = response.getPanels();
return panels.stream()
.filter(p -> p.getAge() != null) // null 제외
.mapToInt(MainSearchResponse.PanelInfo::getAge)
.average()
.orElse(0.0);
}

private String getCurrentDate() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public class Chart extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "chart_id")
private Long id;

@Column(nullable = false, length = 100)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
public class Filter extends BaseEntity {

@Id
@Column(name = "filter_id")
private Long id; // 자동생성 X

@Column(nullable = false, length = 50)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,8 @@ public void removeChart(Chart chart) {
chart.setSearchHistory(null);
}

public void setCreatedAt(LocalDate date) {
this.date = date;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,12 @@ public interface FilterRepository extends JpaRepository<Filter, Long> {
)
List<Filter> findByIds(@Param("ids") Set<Long> ids);

@Query(
"""
SELECT f from Filter f
WHERE f.id in :ids
"""
)
List<Filter> findByIds(@Param("ids") List<Long> ids);

}
Loading
Loading