diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/AqUserSaveBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/AqUserSaveBean.java index 33ce55f..e04b611 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/AqUserSaveBean.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/AqUserSaveBean.java @@ -1,7 +1,7 @@ package HalfFifty.HalfFifty_BE.FAQ.bean; import HalfFifty.HalfFifty_BE.FAQ.bean.small.CreateAqUserDAOBean; -import HalfFifty.HalfFifty_BE.FAQ.bean.small.SaveAqUserDAOBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.small.SaveAqDAOBean; import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; import org.springframework.beans.factory.annotation.Autowired; @@ -12,12 +12,12 @@ @Component public class AqUserSaveBean { CreateAqUserDAOBean createAqUserDAOBean; - SaveAqUserDAOBean saveAqUserDAOBean; + SaveAqDAOBean saveAqDAOBean; @Autowired - public AqUserSaveBean(CreateAqUserDAOBean createAqUserDAOBean, SaveAqUserDAOBean saveAqUserDAOBean) { + public AqUserSaveBean(CreateAqUserDAOBean createAqUserDAOBean, SaveAqDAOBean saveAqDAOBean) { this.createAqUserDAOBean = createAqUserDAOBean; - this.saveAqUserDAOBean = saveAqUserDAOBean; + this.saveAqDAOBean = saveAqDAOBean; } // AQ 등록 @@ -27,7 +27,7 @@ public UUID exec(RequestAqUserSaveDTO requestAqUserSaveDTO) { if(aqDAO == null) return null; // 생성한 객체 저장 - saveAqUserDAOBean.exec(aqDAO); + saveAqDAOBean.exec(aqDAO); // 키값 반환 return aqDAO.getAqId(); diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/UpdateAqAdminBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/UpdateAqAdminBean.java new file mode 100644 index 0000000..4fd4663 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/UpdateAqAdminBean.java @@ -0,0 +1,41 @@ +package HalfFifty.HalfFifty_BE.FAQ.bean; + +import HalfFifty.HalfFifty_BE.FAQ.bean.small.GetAqDAOBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.small.SaveAqDAOBean; +import HalfFifty.HalfFifty_BE.FAQ.domain.AqDAO; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.UUID; + +@Component +public class UpdateAqAdminBean { + GetAqDAOBean getAqDAOBean; + SaveAqDAOBean saveAqDAOBean; + + @Autowired + public UpdateAqAdminBean(GetAqDAOBean getAqDAOBean, SaveAqDAOBean saveAqDAOBean) { + this.getAqDAOBean = getAqDAOBean; + this.saveAqDAOBean = saveAqDAOBean; + } + + // AQ admin 답장 + public UUID exec(RequestAqAdminUpdateDTO requestAqAdminUpdateDTO) { + // AQ 아이디를 통해 원하는 객체 찾기 + AqDAO aqDAO = getAqDAOBean.exec(requestAqAdminUpdateDTO.getAqId()); + if(aqDAO == null) return null; + + // 찾은 객체 수정 + aqDAO.setAnswer(requestAqAdminUpdateDTO.getAnswer()); + aqDAO.setIsAnswer(Boolean.TRUE); + aqDAO.setAnswerCreatedAt(LocalDateTime.now()); + + // 수정된 값 저장 + saveAqDAOBean.exec(aqDAO); + + // 키값 반환 + return aqDAO.getAqId(); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java new file mode 100644 index 0000000..082d7f8 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/GetAqDAOBean.java @@ -0,0 +1,23 @@ +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.UUID; + +@Component +public class GetAqDAOBean { + AqRepositoryJPA aqRepositoryJPA; + + @Autowired + public GetAqDAOBean(AqRepositoryJPA aqRepositoryJPA) { + this.aqRepositoryJPA = aqRepositoryJPA; + } + + // AQ 아이디를 통해 원하는 객체 찾기 + public AqDAO exec(UUID AqId) { + return aqRepositoryJPA.findById(AqId).orElse(null); + } +} diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/SaveAqUserDAOBean.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/SaveAqDAOBean.java similarity index 83% rename from HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/SaveAqUserDAOBean.java rename to HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/SaveAqDAOBean.java index e26af00..8b134eb 100644 --- a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/SaveAqUserDAOBean.java +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/bean/small/SaveAqDAOBean.java @@ -6,11 +6,11 @@ import org.springframework.stereotype.Component; @Component -public class SaveAqUserDAOBean { +public class SaveAqDAOBean { AqRepositoryJPA aqRepositoryJPA; @Autowired - public SaveAqUserDAOBean(AqRepositoryJPA aqRepositoryJPA) { + public SaveAqDAOBean(AqRepositoryJPA aqRepositoryJPA) { this.aqRepositoryJPA = aqRepositoryJPA; } 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 64dfca9..30963b9 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 @@ -1,5 +1,6 @@ package HalfFifty.HalfFifty_BE.FAQ.controller; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; import HalfFifty.HalfFifty_BE.FAQ.service.AqService; import org.springframework.beans.factory.annotation.Autowired; @@ -39,4 +40,22 @@ public ResponseEntity> saveUserAq(@RequestBody RequestAqUser // status, body 값 설정해서 응답 리턴 return ResponseEntity.status(HttpStatus.OK).body(requestMap); } + + @PatchMapping + public ResponseEntity> updateAdminAq(@RequestBody RequestAqAdminUpdateDTO requestAqAdminUpdateDTO) { + // AQ 어드민 답장 service + UUID AqId = aqService.updateAdminAq(requestAqAdminUpdateDTO); + + // AQ 어드민 답장 성공 여부 + Boolean success = AqId != null; + + // Map을 통해 메시지와 list 값 json 데이터로 변환 + Map requestMap = new HashMap<>(); + requestMap.put("success", success); + requestMap.put("message", success ? "AQ 어드민 답장 성공" : "AQ 어드민 답장 실패"); + requestMap.put("AQId", AqId); + + // status, body 값 설정해서 응답 리턴 + return ResponseEntity.status(HttpStatus.OK).body(requestMap); + } } diff --git a/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/RequestAqAdminUpdateDTO.java b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/RequestAqAdminUpdateDTO.java new file mode 100644 index 0000000..90de511 --- /dev/null +++ b/HalfFifty_BE/src/main/java/HalfFifty/HalfFifty_BE/FAQ/domain/DTO/RequestAqAdminUpdateDTO.java @@ -0,0 +1,11 @@ +package HalfFifty.HalfFifty_BE.FAQ.domain.DTO; + +import lombok.Data; + +import java.util.UUID; + +@Data +public class RequestAqAdminUpdateDTO { + UUID AqId; + String answer; +} 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 61574d5..f52c6b8 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,6 +1,8 @@ package HalfFifty.HalfFifty_BE.FAQ.service; import HalfFifty.HalfFifty_BE.FAQ.bean.AqUserSaveBean; +import HalfFifty.HalfFifty_BE.FAQ.bean.UpdateAqAdminBean; +import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqAdminUpdateDTO; import HalfFifty.HalfFifty_BE.FAQ.domain.DTO.RequestAqUserSaveDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,14 +12,21 @@ @Service public class AqService { AqUserSaveBean aqUserSaveBean; + UpdateAqAdminBean updateAqAdminBean; @Autowired - public AqService(AqUserSaveBean aqUserSaveBean) { + public AqService(AqUserSaveBean aqUserSaveBean, UpdateAqAdminBean updateAqAdminBean) { this.aqUserSaveBean = aqUserSaveBean; + this.updateAqAdminBean = updateAqAdminBean; } // AQ 유저 등록 public UUID saveUserAq(RequestAqUserSaveDTO requestAqUserSaveDTO) { return aqUserSaveBean.exec(requestAqUserSaveDTO); } + + // AQ 어드민 답장 + public UUID updateAdminAq(RequestAqAdminUpdateDTO requestAqAdminUpdateDTO) { + return updateAqAdminBean.exec(requestAqAdminUpdateDTO); + } }