team-i-Five / code_WebApp

mumo 프로젝트 웹 앱 코드 repo
2 stars 0 forks source link

0.9.0/feat update musicals #18

Closed shims94 closed 11 months ago

shims94 commented 12 months ago

Update MusicalPresent (현재 뮤지컬 정보가 담긴 테이블 - AWS RDS)

Add

MusicalPresent controller, repository, entity, service, serviceImpl

Add method

// 과거의 뮤지컬에서 end_date 최신순으로 정렬한 전체 데이터 조회
List<MusicalPresentDTO> getMusicalPresentListOrderByEndDate();

// ID값 파라미터로 넣어서 호출하면, ML서버에 접속해서 ID값으로 유사한 뮤지컬 5개의 ID값을 가져오고
// 해당 ID값으로 DB를 조회해서 MusicalPresent 정보를 가져와서 DTO에 담습니다.
List<MusicalPresent> getPresentDTOsbyIdFromML(String id);

//getPresentDTOsbyIdFromML 내부에서 동작하는 함수로 ML에서 응답한 jsonResponse에서 ID값을 가져옵니다.
List<Integer> getIDsFromJsonResponse(String jsonResponse);

// List<Integer>를 이용해서 DB에서 id값에 일치하는 것들 가져옴
List<MusicalPresent> getMusicalsByIds(List<Integer> musicalIds);

동작

MusicalPresentController.java

List<MusicalPresent> musicalPresents = musicalPresentService.getPresentDTOsbyIdFromML(id);

getPresentDTOsbyIdFromML 메소드

1. ML Server의 URL에 id값을 붙여서 조회합니다.
2. http://MLServer IP/recommend/{id}로 
3. ML Server에서 응답으로` json string`을 반환하는데, 
4. `getIDsFromJsonResponse(json string)` 메소드를 호출합니다.
5.  `getIDsFromJsonResponse`는 json string에서 `musicalId`만 가져와서` List<Integer>ids `에 저장합니다.
6. 이후 `getMusicalsByIds(ids)`를 호출합니다.
7. `getMusicalsByIds`에서 repository의 `findByMusicalIdIn`를 호출해서 id에 해당하는 `List<MusicalPresent>`를 가져옵니다.