From 51f0dcb06ebf2d0e5ec942adbbd1ff55272c66e3 Mon Sep 17 00:00:00 2001 From: yoosuhyeon Date: Sat, 15 Feb 2025 17:48:42 +0900 Subject: [PATCH 1/5] =?UTF-8?q?Feat=20:=20AQ=20=EC=A0=84=EC=B2=B4=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20response=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FAQ/domain/DTO/ResponseAqGetDTO.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/ResponseAqGetDTO.java diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/ResponseAqGetDTO.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/ResponseAqGetDTO.java new file mode 100644 index 0000000..b2e58df --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/ResponseAqGetDTO.java @@ -0,0 +1,18 @@ +package HalfFifty.HalfFifty_BE.FAQ.domain.DTO; + +import lombok.Builder; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.UUID; + +@Data +@Builder +public class ResponseAqGetDTO { + UUID aqId; + String question; + String answer; + Boolean isAnswer; + LocalDateTime questionCreatedAt; + LocalDateTime answerCreatedAt; +} From adc1268b88970254d47bd570c70a8db2db6b8d57 Mon Sep 17 00:00:00 2001 From: yoosuhyeon Date: Sat, 15 Feb 2025 17:49:01 +0900 Subject: [PATCH 2/5] =?UTF-8?q?Feat=20:=20AQ=20=EC=A0=84=EC=B2=B4=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=EB=A5=BC=20=EC=9C=84=ED=95=9C=20repository=20query=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java index d05800b..6b4d18c 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/repository/AqRepositoryJPA.java @@ -4,8 +4,12 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.UUID; @Repository public interface AqRepositoryJPA extends JpaRepository { + + // user 아이디를 통해 원하는 객체 리스트 찾기 + List findAllByUserId(UUID userId); } From ab66a8e45c93efdbbc9a5930d27b5024ea806caf Mon Sep 17 00:00:00 2001 From: yoosuhyeon Date: Sat, 15 Feb 2025 17:49:21 +0900 Subject: [PATCH 3/5] =?UTF-8?q?Feat=20:=20AQ=20=EC=A0=84=EC=B2=B4=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20API=20=EB=A1=9C=EC=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HalfFifty_BE/FAQ/bean/GetAqsBean.java | 34 ++++++++++++++++++ .../FAQ/bean/small/CreateAqsDTOBean.java | 35 +++++++++++++++++++ .../FAQ/bean/small/GetAqsDAOBean.java | 24 +++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/GetAqsBean.java create mode 100644 HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/CreateAqsDTOBean.java create mode 100644 HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqsDAOBean.java diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/GetAqsBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/GetAqsBean.java new file mode 100644 index 0000000..c5b9397 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/GetAqsBean.java @@ -0,0 +1,34 @@ +package HalfFifty.HalfFifty_BE.FAQ.bean; + +import HalfFifty.HalfFifty_BE.FAQ.bean.small.CreateAqsDTOBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.small.GetAqsDAOBean; +import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +@Component +public class GetAqsBean { + GetAqsDAOBean getAqsDAOBean; + CreateAqsDTOBean createAqsDTOBean; + + @Autowired + public GetAqsBean(GetAqsDAOBean getAqsDAOBean, CreateAqsDTOBean createAqsDTOBean) { + this.getAqsDAOBean = getAqsDAOBean; + this.createAqsDTOBean = createAqsDTOBean; + } + + // AQ 전체조회 + public List exec(UUID userId) { + // userId를 통해 원하는 객체 리스트 찾기 + List aqDAOS = getAqsDAOBean.exec(userId); + if(aqDAOS == null) return new ArrayList<>(); + + // 객체 리스트 DTO로 변환 후 반환 + return createAqsDTOBean.exec(aqDAOS); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/CreateAqsDTOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/CreateAqsDTOBean.java new file mode 100644 index 0000000..4338875 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/CreateAqsDTOBean.java @@ -0,0 +1,35 @@ +package HalfFifty.HalfFifty_BE.FAQ.bean.small; + +import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class CreateAqsDTOBean { + + // 객체 리스트를 DTO로 변환 + public List exec(List aqDAOS) { + // 객체 리스트를 담을 DTO 리스트 생성 + List responseAqGetDTOS = new ArrayList<>(); + + // for문을 통해 각 객체들 DTO로 변환 + for(AqDAO aqDAO : aqDAOS) { + ResponseAqGetDTO responseAqGetDTO = ResponseAqGetDTO.builder() + .aqId(aqDAO.getAqId()) + .question(aqDAO.getQuestion()) + .answer(aqDAO.getAnswer()) + .questionCreatedAt(aqDAO.getQuestionCreatedAt()) + .answerCreatedAt(aqDAO.getAnswerCreatedAt()) + .isAnswer(aqDAO.getIsAnswer()) + .build(); + + responseAqGetDTOS.add(responseAqGetDTO); + } + + // 변환된 DTO 리스트 반환 + return responseAqGetDTOS; + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqsDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqsDAOBean.java new file mode 100644 index 0000000..fbe96b5 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqsDAOBean.java @@ -0,0 +1,24 @@ +package HalfFifty.HalfFifty_BE.FAQ.bean.small; + +import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; +import HalfFifty.HalfFifty_BE.FAQ.repository.AqRepositoryJPA; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.UUID; + +@Component +public class GetAqsDAOBean { + AqRepositoryJPA aqRepositoryJPA; + + @Autowired + public GetAqsDAOBean(AqRepositoryJPA aqRepositoryJPA) { + this.aqRepositoryJPA = aqRepositoryJPA; + } + + // user 아이디를 통해 원하는 객체 리스트 반환 + public List exec(UUID userId) { + return aqRepositoryJPA.findAllByUserId(userId); + } +} From 6a8413bf73417eb68dba33763ffb4b019d722441 Mon Sep 17 00:00:00 2001 From: yoosuhyeon Date: Sat, 15 Feb 2025 17:49:31 +0900 Subject: [PATCH 4/5] =?UTF-8?q?Feat=20:=20AQ=20=EC=A0=84=EC=B2=B4=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HalfFifty_BE/FAQ/service/AqService.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java index f52c6b8..6f302fc 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/service/AqService.java @@ -1,23 +1,34 @@ package HalfFifty.HalfFifty_BE.FAQ.service; import HalfFifty.HalfFifty_BE.FAQ.bean.AqUserSaveBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.GetAqsBean; import HalfFifty.HalfFifty_BE.FAQ.bean.UpdateAqAdminBean; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; import java.util.UUID; @Service public class AqService { AqUserSaveBean aqUserSaveBean; UpdateAqAdminBean updateAqAdminBean; + GetAqsBean getAqsBean; + @Autowired - public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean) { + public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean, GetAqsBean getAqsBean) { this.aqUserSaveBean = aqUserSaveBean; this.updateAqAdminBean = updateAqAdminBean; + this.getAqsBean = getAqsBean; + } + + // AQ 전체조회 + public List getAqs(UUID userId) { + return getAqsBean.exec(userId); } // AQ 유저 등록 From c1b0439b78e1dd0ff7e1ac2af865bcf275fa105a Mon Sep 17 00:00:00 2001 From: yoosuhyeon Date: Sat, 15 Feb 2025 17:49:40 +0900 Subject: [PATCH 5/5] =?UTF-8?q?Feat=20:=20AQ=20=EC=A0=84=EC=B2=B4=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20controller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FAQ/controller/AqController.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java index 30963b9..dd99a27 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/controller/AqController.java @@ -2,6 +2,7 @@ import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.ResponseAqGetDTO; import HalfFifty.HalfFifty_BE.FAQ.service.AqService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.*; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.UUID; @@ -23,6 +25,25 @@ public AqController(AqService aqService) { this.aqService = aqService; } + @GetMapping("/user/{userId}") + public ResponseEntity> getAqs(@PathVariable("userId") UUID userId) { + // AQ 전체 조회 service + List responseAqGetDTOS = aqService.getAqs(userId); + + // AQ 전체 조회 성공 여부 + Boolean success = responseAqGetDTOS != null; + + // Map을 통해 메시지와 list 값 json 데이터로 변환 + Map requestMap = new HashMap<>(); + requestMap.put("success", success); + requestMap.put("message", success ? "AQ 전체 조회 성공" : "AQ 전체 조회 실패"); + requestMap.put("AQList", responseAqGetDTOS); + + // status, body 값 설정해서 응답 리턴 + return ResponseEntity.status(HttpStatus.OK).body(requestMap); + + } + @PostMapping public ResponseEntity> saveUserAq(@RequestBody RequestAqUserSaveDTO requestAqUserSaveDTO) { // AQ 유저 등록 service