From 9cf48093c92c6607dcb3226807c5018bcac3726d Mon Sep 17 00:00:00 2001 From: ChaHyeonMin Date: Sun, 12 May 2024 16:08:17 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EB=9D=BC=EC=9D=B8=EC=97=85=20?= =?UTF-8?q?=EB=82=A0=EC=A7=9C=20=EC=A1=B0=ED=9A=8C=ED=95=98=EB=8A=94=20api?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../danfesta/controller/LineUpController.java | 9 ++++++++ .../dto/response/ResponseFestivalDateDto.java | 18 +++++++++++++++ .../danfesta/service/LineUpService.java | 22 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/main/java/com/dku/council/domain/danfesta/model/dto/response/ResponseFestivalDateDto.java diff --git a/src/main/java/com/dku/council/domain/danfesta/controller/LineUpController.java b/src/main/java/com/dku/council/domain/danfesta/controller/LineUpController.java index 2d8f79df..ea2fae55 100644 --- a/src/main/java/com/dku/council/domain/danfesta/controller/LineUpController.java +++ b/src/main/java/com/dku/council/domain/danfesta/controller/LineUpController.java @@ -2,6 +2,7 @@ import com.dku.council.domain.danfesta.model.FestivalDate; import com.dku.council.domain.danfesta.model.dto.request.RequestCreateLineUpDto; +import com.dku.council.domain.danfesta.model.dto.response.ResponseFestivalDateDto; import com.dku.council.domain.danfesta.model.dto.response.ResponseLineUpDto; import com.dku.council.domain.danfesta.service.LineUpService; import com.dku.council.global.auth.jwt.AppAuthentication; @@ -62,4 +63,12 @@ public ResponseIdDto create(AppAuthentication auth, public void changeToTrue(AppAuthentication auth, @RequestParam FestivalDate festivalDate) { lineUpService.changeToTrue(auth.getUserId(), festivalDate); } + + /** + * 라인업 날짜 조회 + */ + @GetMapping("/date") + public List listFestivalDate() { + return lineUpService.listFestivalDate(); + } } diff --git a/src/main/java/com/dku/council/domain/danfesta/model/dto/response/ResponseFestivalDateDto.java b/src/main/java/com/dku/council/domain/danfesta/model/dto/response/ResponseFestivalDateDto.java new file mode 100644 index 00000000..8c062c02 --- /dev/null +++ b/src/main/java/com/dku/council/domain/danfesta/model/dto/response/ResponseFestivalDateDto.java @@ -0,0 +1,18 @@ +package com.dku.council.domain.danfesta.model.dto.response; + +import com.dku.council.domain.danfesta.model.entity.LineUp; +import lombok.Getter; + + +@Getter +public class ResponseFestivalDateDto { + + private final String performanceTime; + + private final String festivalDate; + + public ResponseFestivalDateDto(LineUp lineup) { + this.performanceTime = lineup.getPerformanceTime().toString(); + this.festivalDate = lineup.getFestivalDate().name(); + } +} diff --git a/src/main/java/com/dku/council/domain/danfesta/service/LineUpService.java b/src/main/java/com/dku/council/domain/danfesta/service/LineUpService.java index 4033428b..bedafc24 100644 --- a/src/main/java/com/dku/council/domain/danfesta/service/LineUpService.java +++ b/src/main/java/com/dku/council/domain/danfesta/service/LineUpService.java @@ -2,6 +2,7 @@ import com.dku.council.domain.danfesta.model.FestivalDate; import com.dku.council.domain.danfesta.model.dto.request.RequestCreateLineUpDto; +import com.dku.council.domain.danfesta.model.dto.response.ResponseFestivalDateDto; import com.dku.council.domain.danfesta.model.dto.response.ResponseLineUpDto; import com.dku.council.domain.danfesta.model.entity.LineUp; import com.dku.council.domain.danfesta.model.entity.LineUpImage; @@ -121,4 +122,25 @@ public void changeToTrue(Long userId, FestivalDate festivalDate) { lineUpRepository.save(lineUp); } } + + @Transactional(readOnly = true) + public List listFestivalDate() { + List list = lineUpRepository.findAll(); + List result = new ArrayList<>(); + + for(LineUp lineUp : list) { + if (result.isEmpty()) { + result.add(lineUp); + } else { + for(LineUp resultLineUp : result) { + if(!resultLineUp.getFestivalDate().equals(lineUp.getFestivalDate())) { + result.add(lineUp); + break; + } + } + } + } + + return result.stream().map(ResponseFestivalDateDto::new).collect(Collectors.toList()); + } }