Skip to content

Commit

Permalink
Merge pull request #33 from soulive-A/feature/#32-model
Browse files Browse the repository at this point in the history
모델 추천 api 수정
  • Loading branch information
lsm-del authored Mar 8, 2024
2 parents 6ecadf4 + 41494ca commit 2e398d2
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backend.soullive_a.controller;

import com.backend.soullive_a.dto.response.ModelRecommendResponse;
import com.backend.soullive_a.dto.response.ModelRecommendResponseList;
import com.backend.soullive_a.dto.response.ModelResponse;
import com.backend.soullive_a.dto.response.RecentModelResponse;
import com.backend.soullive_a.exception.base.BaseResponse;
Expand Down Expand Up @@ -49,8 +49,8 @@ public BaseResponse<List<RecentModelResponse>> getRecentModel(@Parameter(name =

@Operation(summary = "모델 추천 API", description = "모델을 추천 받는 API이다.")
@GetMapping("/recommendation")
public BaseResponse<List<ModelRecommendResponse>> getRecommendModel(){
return BaseResponse.<List<ModelRecommendResponse>>builder()
public BaseResponse<ModelRecommendResponseList> getRecommendModel(){
return BaseResponse.<ModelRecommendResponseList>builder()
.isSuccess(true)
.code(200)
.message("모델 추천 성공")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public record ModelRecommendResponse(
String imageUrl,
@Schema(name = "name", example = "김희애", description = "모델 이름입니다.")
String name,
@Schema(name = "job", example = "텔런트/영화배우", description = "모델 직업(구분자)입니다.")
@Schema(name = "job", example = "배우", description = "모델 직업(구분자)입니다.")
String job
) {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.backend.soullive_a.dto.response;


import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;

@Schema(name = "모델 추천 응답 리스트 세분화 model")
public record ModelRecommendResponseList(
@Schema(name = "actors", description = "모델 추천에서 배우 리스트")
List<ModelRecommendResponse> actors,
@Schema(name = "singers", description = "모델 추천에서 가수 리스트")
List<ModelRecommendResponse> singers,
@Schema(name = "idols", description = "모델 추천에서 아이돌 리스트")
List<ModelRecommendResponse> idols
) {

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.backend.soullive_a.service;

import com.backend.soullive_a.dto.response.ModelRecommendResponse;
import com.backend.soullive_a.dto.response.ModelRecommendResponseList;
import com.backend.soullive_a.dto.response.ModelResponse;
import com.backend.soullive_a.dto.response.RecentModelResponse;
import java.util.List;
Expand All @@ -10,5 +10,5 @@ public interface ModelService {

public List<RecentModelResponse> getRecentModel(Long productId);

public List<ModelRecommendResponse> getRecommendModel();
public ModelRecommendResponseList getRecommendModel();
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.backend.soullive_a.service.impl;

import com.backend.soullive_a.dto.response.ModelRecommendResponse;
import com.backend.soullive_a.dto.response.ModelRecommendResponseList;
import com.backend.soullive_a.dto.response.ModelResponse;
import com.backend.soullive_a.dto.response.RecentModelResponse;
import com.backend.soullive_a.entity.Product;
Expand All @@ -12,6 +13,7 @@
import com.backend.soullive_a.repository.ProductRepository;
import com.backend.soullive_a.service.ModelService;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -63,9 +65,21 @@ public List<RecentModelResponse> getRecentModel(Long productId) {

@Override
@Transactional
public List<ModelRecommendResponse> getRecommendModel(){
public ModelRecommendResponseList getRecommendModel(){

return modelRepository.findAllRecommendModel();
List<ModelRecommendResponse> actors = new ArrayList<>();
List<ModelRecommendResponse> singers = new ArrayList<>();
List<ModelRecommendResponse> idols = new ArrayList<>();

modelRepository.findAllRecommendModel().stream()
.forEach(response -> {
if(response.job().equals("배우")) // 배우인 경우
actors.add(response);
else if(response.job().equals("가수")) // 가수인 경우
singers.add(response);
else idols.add(response); // 아이돌인 경우
});
return new ModelRecommendResponseList(actors,singers,idols);
}
/**
* 광고 상품 엔티티 생성
Expand Down

0 comments on commit 2e398d2

Please sign in to comment.