Skip to content

Commit

Permalink
Merge pull request #128 from MUIT-UMC/develop
Browse files Browse the repository at this point in the history
[merge] 250216 / 29th deploy
  • Loading branch information
sweatbuckets authored Feb 16, 2025
2 parents 17973cf + 90545bc commit e4d032a
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 29 deletions.
4 changes: 2 additions & 2 deletions src/main/java/muit/backend/controller/EventController.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public ApiResponse<Page<EventResponseDTO.EventResultListDTO>> getEventListSorted
@RequestParam(defaultValue = "0", name = "page") Integer page){
LocalDate today = LocalDate.now();
Member member = memberService.getMemberByToken(accessToken);
return ApiResponse.onSuccess(eventService.getEventListOrderByEvFrom(today, page));
return ApiResponse.onSuccess(eventService.getEventListOrderByEvFrom(today, member, page));
}

@GetMapping("/{musicalId}")
Expand All @@ -44,7 +44,7 @@ public ApiResponse<Page<EventResponseDTO.EventResultListDTO>> getEventListSorted
public ApiResponse<EventResponseDTO.EventResultListDTO> getEvent(@RequestHeader("Authorization") String accessToken,
@PathVariable("musicalId") Long musicalId) {
Member member = memberService.getMemberByToken(accessToken);
return ApiResponse.onSuccess(eventService.getEvent(musicalId));
return ApiResponse.onSuccess(eventService.getEvent(musicalId, member));
}

@GetMapping("/musical/{eventId}")
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/muit/backend/converter/EventConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ public static EventResponseDTO.EventResultDTO toEventResultDTO(Event event) {
}

//특정 뮤지컬의 여러 Event 리스트로 반환
public static EventResponseDTO.EventResultListDTO toEventResultListDTO(Musical musical, List<Event> eventList) {
List<EventResponseDTO.EventResultDTO> eventResultListDTO = eventList != null ? eventList.stream()
.map(EventConverter::toEventResultDTO).collect(Collectors.toList()) : null;
public static EventResponseDTO.EventResultListDTO toEventResultListDTO(Musical musical, Boolean isLike, List<Event> eventList) {
List<EventResponseDTO.EventResultDTO> eventResultDTOs = eventList != null ? eventList.stream()
.map(EventConverter::toEventResultDTO).toList() : null;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd", Locale.KOREA);

String duration = eventList != null ? musical.getPerFrom().format(formatter) + " ~ " + musical.getPerTo().format(formatter) : null;
Expand All @@ -45,7 +45,8 @@ public static EventResponseDTO.EventResultListDTO toEventResultListDTO(Musical m
.duration(duration)
.perFrom(musical.getPerFrom())
.perTo(musical.getPerTo())
.eventResultListDTO(eventResultListDTO)
.isLike(isLike)
.eventResultListDTO(eventResultDTOs)
.build();
}

Expand Down
11 changes: 5 additions & 6 deletions src/main/java/muit/backend/converter/MusicalConverter.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public static MusicalRequestDTO.MusicalCreateDTO convertKopisDTOToMusicalCreateD
.build();
}

public static MusicalResponseDTO.MusicalResultDTO toMusicalResultDTO(Musical musical, EventResponseDTO.EventResultListDTO eventResultListDTO, Double rating, Boolean isLike) {
public static MusicalResponseDTO.MusicalResultDTO toMusicalResultDTO(Musical musical, List<EventResponseDTO.EventResultDTO> eventList, Double rating, Boolean isLike) {

return MusicalResponseDTO.MusicalResultDTO.builder()
.bgImg(musical.getBgImg())
Expand All @@ -86,7 +86,7 @@ public static MusicalResponseDTO.MusicalResultDTO toMusicalResultDTO(Musical mus
.ageLimit(musical.getAgeLimit())
.actorPreview(musical.getActorPreview())
.priceInfo(musical.getPriceInfo())
.eventList(eventResultListDTO)
.eventList(eventList)
.perPattern(musical.getPerPattern())
.desImgUrl(musical.getDesImgUrl())
.build();
Expand Down Expand Up @@ -175,8 +175,9 @@ public static MusicalResponseDTO.AdminMusicalDTO toAdminMusicalDTO(Musical music
.build();
}

public static MusicalResponseDTO.AdminMusicalDetailDTO adminMusicalDetailDTO(Musical musical, EventResponseDTO.EventResultListDTO eventList) {
public static MusicalResponseDTO.AdminMusicalDetailDTO toAdminMusicalDetailDTO(Musical musical, List<Event> eventList) {

List<EventResponseDTO.EventResultDTO> eventResults = eventList.stream().map(EventConverter::toEventResultDTO).toList();

return MusicalResponseDTO.AdminMusicalDetailDTO.builder()
.id(musical.getId())
Expand All @@ -192,13 +193,11 @@ public static MusicalResponseDTO.AdminMusicalDetailDTO adminMusicalDetailDTO(Mus
.ageLimit(musical.getAgeLimit())
.actorPreview(musical.getActorPreview())
.priceInfo(musical.getPriceInfo())
.eventList(eventList)
.eventList(eventResults)
.bgImg(musical.getBgImg())
.description(musical.getDescription())
.fancyTitle(musical.getFancyTitle())
.category(musical.getCategory())
.openDate(musical.getOpenDate())
.openInfo(musical.getOpenInfo())
.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public static class EventResultListDTO {
private String duration;
private LocalDate perFrom;
private LocalDate perTo;
private Boolean isLike;

private List<EventResultDTO> eventResultListDTO;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public static class MusicalResultDTO{
private List<String> actorPreview;
private List<String> priceInfo;

private EventResponseDTO.EventResultListDTO eventList;
private List<EventResponseDTO.EventResultDTO> eventList;

private String perPattern;

Expand Down Expand Up @@ -128,16 +128,14 @@ public static class AdminMusicalDetailDTO{
private String ageLimit;
private List<String> actorPreview;
private List<String> priceInfo;
private EventResponseDTO.EventResultListDTO eventList;
private List<EventResponseDTO.EventResultDTO> eventList;
//직접 작성 - 배경이미지
private String bgImg;
//직접 작성 - 영문명
private String fancyTitle;
//직접 작성 - 태그
private List<String> category;
//직접 작성
private LocalDateTime openDate;
private EventType openInfo;
//직접 작성 - 줄거리
private String description;
//직접 작성
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/muit/backend/service/EventService.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package muit.backend.service;

import muit.backend.domain.entity.member.Member;
import muit.backend.domain.entity.musical.Event;
import muit.backend.dto.eventDTO.EventRequestDTO;
import muit.backend.dto.eventDTO.EventResponseDTO;
Expand All @@ -14,9 +15,9 @@

@Service
public interface EventService {
public EventResponseDTO.EventResultListDTO getEvent (Long musicalId);
public EventResponseDTO.EventResultListDTO getEvent (Long musicalId, Member member);

public Page<EventResponseDTO.EventResultListDTO> getEventListOrderByEvFrom (LocalDate today, Integer page);
public Page<EventResponseDTO.EventResultListDTO> getEventListOrderByEvFrom (LocalDate today, Member member, Integer page);

public EventResponseDTO.EventResultDTO createEvent(Long musicalId, EventRequestDTO.EventCreateDTO eventCreateDTO);

Expand Down
21 changes: 16 additions & 5 deletions src/main/java/muit/backend/service/EventServiceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@
import muit.backend.apiPayLoad.code.status.ErrorStatus;
import muit.backend.apiPayLoad.exception.GeneralException;
import muit.backend.converter.EventConverter;
import muit.backend.domain.entity.member.Likes;
import muit.backend.domain.entity.member.Member;
import muit.backend.domain.entity.musical.Event;
import muit.backend.domain.entity.musical.Musical;
import muit.backend.dto.eventDTO.EventRequestDTO;
import muit.backend.dto.eventDTO.EventResponseDTO;
import muit.backend.repository.EventRepository;
import muit.backend.repository.LikesRepository;
import muit.backend.repository.MusicalRepository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
Expand All @@ -32,17 +35,25 @@
public class EventServiceImpl implements EventService {
private final EventRepository eventRepository;
private final MusicalRepository musicalRepository;
private final LikesRepository likesRepository;

@Override
public EventResponseDTO.EventResultListDTO getEvent(Long musicalId) {
public EventResponseDTO.EventResultListDTO getEvent(Long musicalId, Member member) {
Musical musical = musicalRepository.findById(musicalId).orElseThrow(() ->new GeneralException(ErrorStatus.MUSICAL_NOT_FOUND));
List<Event> eventList = eventRepository.findByMusicalIdOrderByEvFromAsc(musicalId);
assert musical != null;
return EventConverter.toEventResultListDTO(musical,eventList);
Boolean isLike = false;
Likes likes = likesRepository.findByMemberIdAndMusicalId(member.getId(),musicalId);
if (likes!=null) {
isLike = true;
}

return EventConverter.toEventResultListDTO(musical, isLike, eventList);
}


@Override
public Page<EventResponseDTO.EventResultListDTO> getEventListOrderByEvFrom(LocalDate today, Integer page) {
public Page<EventResponseDTO.EventResultListDTO> getEventListOrderByEvFrom(LocalDate today, Member member, Integer page) {
//Event 를 EvFrom 기준 오름차순으로 정렬
List<Event> eventList = eventRepository.findAllByEvFromIsNotNullOrderByEvFromAsc();

Expand All @@ -52,10 +63,10 @@ public Page<EventResponseDTO.EventResultListDTO> getEventListOrderByEvFrom(Local
.filter(group -> group.stream() // List<Event>로 변환된 스트림을 다시 스트림으로 변환
.anyMatch(event -> !event.getEvFrom().isBefore(today)))
.map(group-> {
return EventConverter.toEventResultListDTO(group.get(0).getMusical(), group);})
return EventConverter.toEventResultListDTO(group.get(0).getMusical(),
(likesRepository.findByMemberIdAndMusicalId(member.getId(), group.get(0).getMusical().getId())!=null), group);})
.collect(Collectors.toList());


Pageable pageable = PageRequest.of(page, 6); // pageNumber는 0부터 시작, pageSize는 한 페이지에 몇 개의 그룹을 포함할지
int start = Math.min((int) pageable.getOffset(), eventResultListDTOs.size());
int end = Math.min((start + pageable.getPageSize()), eventResultListDTOs.size());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ public MusicalResponseDTO.MusicalResultDTO getMusical(Long musicalId, Member mem
.orElseThrow(() -> new GeneralException(ErrorStatus.MUSICAL_NOT_FOUND));

//이벤트 정보를 List<EventResultDTO>로 구성된 EventResultListDTO 에 담아서 반환
List<Event> eventList = eventRepository.findByMusicalIdOrderByEvFromAsc(musicalId);
EventResponseDTO.EventResultListDTO eventResultListDTO = EventConverter.toEventResultListDTO(musical, eventList);
List<EventResponseDTO.EventResultDTO> eventList = eventRepository.findByMusicalIdOrderByEvFromAsc(musicalId).stream()
.map(EventConverter::toEventResultDTO).toList();


//뮤지컬 평점
List<Post> posts = postRepository.findAllByPostTypeAndMusicalId(PostType.REVIEW,musicalId);
Expand All @@ -81,7 +82,7 @@ public MusicalResponseDTO.MusicalResultDTO getMusical(Long musicalId, Member mem
isLike = true;
}

return MusicalConverter.toMusicalResultDTO(musical, eventResultListDTO, rating, isLike);
return MusicalConverter.toMusicalResultDTO(musical, eventList, rating, isLike);

}

Expand Down Expand Up @@ -293,11 +294,10 @@ public MusicalResponseDTO.AdminMusicalDetailDTO getMusicalDetail(Long musicalId)

List<Event> eventList = eventRepository.findByMusicalIdOrderByEvFromAsc(musicalId);

assert musical != null;

EventResponseDTO.EventResultListDTO eventResultListDTO = EventConverter.toEventResultListDTO(musical, eventList);
assert musical != null;

return MusicalConverter.adminMusicalDetailDTO(musical, eventResultListDTO);
return MusicalConverter.toAdminMusicalDetailDTO(musical, eventList);
}

@Override
Expand Down

0 comments on commit e4d032a

Please sign in to comment.