From 041efe517fe27a279cf4090c272de471d81f504f Mon Sep 17 00:00:00 2001 From: Taehun88 Date: Wed, 12 Feb 2025 14:22:48 +0900 Subject: [PATCH 1/5] feat:community id search & find id & change password --- .../controller/CommunityController.java | 3 +- .../prdoit/controller/UserController.java | 40 +++++++++++++++++ .../prdoit/dto/user/ChangePasswordDto.java | 14 ++++++ .../repository/CommunityTableRepository.java | 2 + .../prdoit/repository/IdTableRepository.java | 4 +- .../service/community/CommunityService.java | 2 +- .../community/CommunityServiceImpl.java | 23 +++++++++- .../prdoit/service/user/UserService.java | 6 +++ .../prdoit/service/user/UserServiceImpl.java | 45 ++++++++++++++++++- 9 files changed, 134 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/example/prdoit/dto/user/ChangePasswordDto.java diff --git a/src/main/java/com/example/prdoit/controller/CommunityController.java b/src/main/java/com/example/prdoit/controller/CommunityController.java index 8486326..40433b0 100644 --- a/src/main/java/com/example/prdoit/controller/CommunityController.java +++ b/src/main/java/com/example/prdoit/controller/CommunityController.java @@ -36,11 +36,12 @@ public ResponseEntity postCommunity(@RequestBody CommunityRequestDto com @GetMapping() public ResponseEntity getCommunity(@RequestParam(value = "query", required = false, defaultValue = "all") String query, @RequestParam(value = "tag", required = false, defaultValue = "") String tag, + @RequestParam(value = "userId", required = false, defaultValue = "") String userId, @RequestParam(value = "size", required = false, defaultValue = "10") int size, @RequestParam(value = "page", required = false, defaultValue = "1") int page) { log.info("[CommunityController] 글 목록 조회 시작"); try{ - return ResponseEntity.ok(communityService.getCommunityList(query, tag, size, page)); + return ResponseEntity.ok(communityService.getCommunityList(query, tag, userId, size, page)); } catch (CustomException e) { log.error(e.getMessage()); return ResponseEntity.badRequest().body(e.getMessage()); diff --git a/src/main/java/com/example/prdoit/controller/UserController.java b/src/main/java/com/example/prdoit/controller/UserController.java index a7f7240..10fc6cd 100644 --- a/src/main/java/com/example/prdoit/controller/UserController.java +++ b/src/main/java/com/example/prdoit/controller/UserController.java @@ -1,5 +1,6 @@ package com.example.prdoit.controller; +import com.example.prdoit.dto.user.ChangePasswordDto; import com.example.prdoit.dto.user.LoginDto; import com.example.prdoit.dto.user.UserDto; import com.example.prdoit.exception.CustomException; @@ -7,6 +8,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.parameters.P; import org.springframework.web.bind.annotation.*; @@ -88,4 +90,42 @@ public ResponseEntity login(@RequestBody LoginDto loginDto) { return ResponseEntity.badRequest().body(e.getMessage()); } } + + @GetMapping("/findId/{email}") + public ResponseEntity findId(@PathVariable String email){ + log.info("[findId] 아이디 찾기 시작"); + + try{ + return ResponseEntity.ok(userService.findId(email)); + } catch (CustomException e) { + log.error("[findId] 아이디 찾기 실패 - 이유: {}", e.getMessage()); + return ResponseEntity.badRequest().body(e.getMessage()); + } + } + + @GetMapping("/confirm/{userId}/{email}") + public ResponseEntity checkIdAndEmail(@PathVariable String userId, @PathVariable String email){ + log.info("[checkIdAndEmail] 아이디와 이메일 확인 시작"); + + try{ + userService.checkIdAndEmail(userId, email); + return ResponseEntity.ok("아이디와 이메일이 일치합니다."); + } catch (CustomException e) { + log.error("[checkIdAndEmail] 아이디와 이메일 확인 실패 - 이유: {}", e.getMessage()); + return ResponseEntity.badRequest().body(e.getMessage()); + } + } + + @PatchMapping("/changePassword") + public ResponseEntity changePassword(@RequestBody ChangePasswordDto changePasswordDto){ + log.info("[changePassword] 비밀번호 변경 시작"); + try { + userService.changePassword(changePasswordDto.getUserId(), changePasswordDto.getNewPassword()); + return ResponseEntity.ok("비밀번호 변경에 성공했습니다."); + } catch (CustomException e) { + log.error("[changePassword] 비밀번호 변경 실패 - 이유: {}", e.getMessage()); + return ResponseEntity.badRequest().body(e.getMessage()); + } + } + } diff --git a/src/main/java/com/example/prdoit/dto/user/ChangePasswordDto.java b/src/main/java/com/example/prdoit/dto/user/ChangePasswordDto.java new file mode 100644 index 0000000..fae7755 --- /dev/null +++ b/src/main/java/com/example/prdoit/dto/user/ChangePasswordDto.java @@ -0,0 +1,14 @@ +package com.example.prdoit.dto.user; + +import lombok.*; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ChangePasswordDto { + + private String userId; + private String newPassword; +} diff --git a/src/main/java/com/example/prdoit/repository/CommunityTableRepository.java b/src/main/java/com/example/prdoit/repository/CommunityTableRepository.java index ccd3240..783cc16 100644 --- a/src/main/java/com/example/prdoit/repository/CommunityTableRepository.java +++ b/src/main/java/com/example/prdoit/repository/CommunityTableRepository.java @@ -16,4 +16,6 @@ public interface CommunityTableRepository extends JpaRepository findAllByCommunityTitleContaining(String query, Pageable pageable); + @Query("SELECT c FROM CommunityTable c WHERE c.id.id = :userId") + Page findAllByUserId(String userId, Pageable pageable); } diff --git a/src/main/java/com/example/prdoit/repository/IdTableRepository.java b/src/main/java/com/example/prdoit/repository/IdTableRepository.java index d10a471..0a6c996 100644 --- a/src/main/java/com/example/prdoit/repository/IdTableRepository.java +++ b/src/main/java/com/example/prdoit/repository/IdTableRepository.java @@ -3,7 +3,9 @@ import com.example.prdoit.model.IdTable; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.Optional; + public interface IdTableRepository extends JpaRepository { - IdTable findByEmail(String userEmail); + Optional findByEmail(String userEmail); IdTable findByNickname(String userNickname); } diff --git a/src/main/java/com/example/prdoit/service/community/CommunityService.java b/src/main/java/com/example/prdoit/service/community/CommunityService.java index 86a8a92..c39de56 100644 --- a/src/main/java/com/example/prdoit/service/community/CommunityService.java +++ b/src/main/java/com/example/prdoit/service/community/CommunityService.java @@ -11,7 +11,7 @@ public interface CommunityService { void postCommunity(CommunityRequestDto communityRequestDto); - List getCommunityList(String query, String tag, int size, int page); + List getCommunityList(String query, String tag, String userId, int size, int page); void patchCommunity(CommunityPatchDto communityPatchDto); diff --git a/src/main/java/com/example/prdoit/service/community/CommunityServiceImpl.java b/src/main/java/com/example/prdoit/service/community/CommunityServiceImpl.java index d0fbf43..6786adc 100644 --- a/src/main/java/com/example/prdoit/service/community/CommunityServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/community/CommunityServiceImpl.java @@ -56,7 +56,7 @@ public void postCommunity(CommunityRequestDto communityRequestDto) { } @Override - public List getCommunityList(String query, String tag, int size, int page){ + public List getCommunityList(String query, String tag, String userId, int size, int page){ log.info("[CommunityServiceImpl] 글 목록 조회 시작"); Pageable pageable = PageRequest.of(page - 1, size); try { @@ -98,6 +98,25 @@ public List getCommunityList(String query, String tag, int .toList(); } + if(!userId.isEmpty()) { + List communityTableList = communityTableRepository.findAllByUserId(userId, pageable).toList(); + return communityTableList.stream() + .map(communityTable -> CommunityResponseDto.builder() + .communityId(communityTable.getCommunityId()) + .communityTitle(communityTable.getCommunityTitle()) + .commentCount(communityTable.getCommentTable().size()) + .userNickname(communityTable.getId().getNickname()) + .communityCreatedDate(communityTable.getCommunityDate()) + .communityTagList(communityTable.getCommunityTagTable().stream() + .map(CommunityTagTable -> CommunityTagResponseDto.builder() + .communityTagId(CommunityTagTable.getCommunityTagId()) + .communityTag(CommunityTagTable.getCommunityTag()) + .build()) + .toList()) + .build()) + .toList(); + } + return communityTableRepository.findAll(pageable).stream() .map(communityTable -> CommunityResponseDto.builder() .communityId(communityTable.getCommunityId()) @@ -163,6 +182,8 @@ public CommunityDetailResponseDto getCommunityDetail(String communityId) { log.info("[CommunityServiceImpl] 글 상세 조회 시작"); CommunityTable communityTable = communityTableRepository.findById(communityId).orElseThrow(() -> new IllegalArgumentException("해당 글이 없습니다.")); try { + communityTable.setCommunityView(communityTable.getCommunityView() + 1); + communityTableRepository.save(communityTable); return CommunityDetailResponseDto.builder() .communityId(communityTable.getCommunityId()) .communityTitle(communityTable.getCommunityTitle()) diff --git a/src/main/java/com/example/prdoit/service/user/UserService.java b/src/main/java/com/example/prdoit/service/user/UserService.java index b06ef3b..00c6516 100644 --- a/src/main/java/com/example/prdoit/service/user/UserService.java +++ b/src/main/java/com/example/prdoit/service/user/UserService.java @@ -14,4 +14,10 @@ public interface UserService { void login(String userId, String password); + String findId(String email); + + void checkIdAndEmail(String userId, String email); + + void changePassword(String userId, String password); + } diff --git a/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java b/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java index 325fb0b..655be39 100644 --- a/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java @@ -65,7 +65,7 @@ public void checkId(String userId) { public void checkEmail(String email) { log.info("[checkEmail] 이메일 중복 확인 로직 시작"); - IdTable findUser = idTableRepository.findByEmail(email); + IdTable findUser = idTableRepository.findByEmail(email).orElseGet(() -> null); if(findUser != null){ log.info("[checkEmail] 이메일 중복"); @@ -107,4 +107,47 @@ public void login(String userId, String password) { log.info("[login] 로그인 성공 - ID: {}", userId); } + + @Override + public String findId(String email){ + IdTable idTable = idTableRepository.findByEmail(email).orElseThrow(() -> new CustomException("해당 이메일로 가입된 아이디가 없습니다.")); + try{ + return idTable.getId(); + } catch (Exception e){ + log.info(e.getMessage()); + throw new CustomException(e.getMessage()); + } + } + + @Override + public void checkIdAndEmail(String userId, String email) { + log.info("[checkIdAndEmail] 아이디와 이메일 확인 로직 시작"); + + try { + IdTable idTable = idTableRepository.findById(userId).orElseThrow(() -> new CustomException("해당 아이디로 가입된 정보가 없습니다.")); + if(!idTable.getEmail().equals(email)){ + throw new CustomException("해당 아이디와 이메일로 가입된 정보가 없습니다."); + } + } catch (CustomException e){ + log.info(e.getMessage()); + throw new CustomException("해당 아이디와 이메일로 가입된 정보가 없습니다."); + } catch (Exception e){ + log.info(e.getMessage()); + throw new CustomException(e.getMessage()); + } + } + + @Override + public void changePassword(String userId, String password) { + log.info("[changePassword] 비밀번호 변경 로직 시작"); + + IdTable idTable = idTableRepository.findById(userId).orElseThrow(() -> new CustomException("해당 아이디로 가입된 정보가 없습니다.")); + try{ + idTable.setPassword(passwordEncoder.encode(password)); + idTableRepository.save(idTable); + } catch (Exception e){ + log.info(e.getMessage()); + throw new CustomException(e.getMessage()); + } + } } From 0eef0023c4a4c0489150679b4a7cb15d36612d16 Mon Sep 17 00:00:00 2001 From: Taehun88 Date: Wed, 12 Feb 2025 14:31:06 +0900 Subject: [PATCH 2/5] feat:community id search & find id & change password --- .../prdoit/controller/UserController.java | 13 +++++++++++++ .../com/example/prdoit/dto/user/UserDto.java | 12 +----------- .../prdoit/service/user/UserService.java | 2 ++ .../prdoit/service/user/UserServiceImpl.java | 17 +++++++++++++++++ 4 files changed, 33 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/example/prdoit/controller/UserController.java b/src/main/java/com/example/prdoit/controller/UserController.java index 10fc6cd..6f56d19 100644 --- a/src/main/java/com/example/prdoit/controller/UserController.java +++ b/src/main/java/com/example/prdoit/controller/UserController.java @@ -128,4 +128,17 @@ public ResponseEntity changePassword(@RequestBody ChangePasswordDto chan } } + @PostMapping("/auth/password") + public ResponseEntity checkPassword(@RequestBody LoginDto loginDto) { + log.info("[checkPassword] 비밀번호 확인 시작"); + + try { + userService.checkPassword(loginDto.getUserId(), loginDto.getPassword()); + return ResponseEntity.ok("비밀번호가 일치합니다."); + } catch (CustomException e) { + log.error("[checkPassword] 비밀번호 불일치 - 이유: {}", e.getMessage()); + return ResponseEntity.badRequest().body(e.getMessage()); + } + } + } diff --git a/src/main/java/com/example/prdoit/dto/user/UserDto.java b/src/main/java/com/example/prdoit/dto/user/UserDto.java index b215738..d70b12d 100644 --- a/src/main/java/com/example/prdoit/dto/user/UserDto.java +++ b/src/main/java/com/example/prdoit/dto/user/UserDto.java @@ -14,15 +14,5 @@ public class UserDto { private String name; private String email; private String nickname; -// - @Override - public String toString() { - return "UserDto{" + - "id='" + id + '\'' + - ", password='" + password + '\'' + - ", name='" + name + '\'' + - ", email='" + email + '\'' + - ", nickname='" + nickname + '\'' + - '}'; - } + } diff --git a/src/main/java/com/example/prdoit/service/user/UserService.java b/src/main/java/com/example/prdoit/service/user/UserService.java index 00c6516..39c3793 100644 --- a/src/main/java/com/example/prdoit/service/user/UserService.java +++ b/src/main/java/com/example/prdoit/service/user/UserService.java @@ -20,4 +20,6 @@ public interface UserService { void changePassword(String userId, String password); + void checkPassword(String userId, String password); + } diff --git a/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java b/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java index 655be39..6efdd20 100644 --- a/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/user/UserServiceImpl.java @@ -150,4 +150,21 @@ public void changePassword(String userId, String password) { throw new CustomException(e.getMessage()); } } + + @Override + public void checkPassword(String userId, String password){ + log.info("[checkPassword] 비밀번호 확인 로직 시작"); + try { + IdTable idTable = idTableRepository.findById(userId).orElseThrow(() -> new CustomException("해당 아이디로 가입된 정보가 없습니다.")); + if (!passwordEncoder.matches(password, idTable.getPassword())) { + throw new CustomException("비밀번호가 일치하지 않습니다."); + } + } catch (CustomException e){ + log.info(e.getMessage()); + throw new CustomException("비밀번호가 일치하지 않습니다."); + } catch (Exception e){ + log.info(e.getMessage()); + throw new CustomException(e.getMessage()); + } + } } From aa242ccb3f66d3c3dbc25b8e166d94eb64939661 Mon Sep 17 00:00:00 2001 From: Taehun88 Date: Wed, 12 Feb 2025 14:56:55 +0900 Subject: [PATCH 3/5] fix : bug fix --- .../service/content/ContentServiceImpl.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java index c8a1f17..0c942d6 100644 --- a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java @@ -31,17 +31,17 @@ public List getContentQuery(String query, int size, int page throw new RuntimeException("등록된 컨텐츠가 없습니다."); } try { - if(query.equals("all")) { - List contentResponseDtoList = contentRepository.findAllList(size, offset); - if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("등록된 컨텐츠가 없습니다."); + if(!query.equals("all")){ + List contentResponseDtoList = contentRepository.findAllByQueryContaining(query, size, offset); + if (contentResponseDtoList.isEmpty()) { + throw new RuntimeException("검색 결과가 없습니다."); } else { return contentResponseDtoList; } - } else { - List contentResponseDtoList = contentRepository.findAllByQueryContaining(query, size, offset); - if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("검색 결과가 없습니다."); + } else{ + List contentResponseDtoList = contentRepository.findAllList(size, offset); + if (contentResponseDtoList.isEmpty()) { + throw new RuntimeException("등록된 컨텐츠가 없습니다."); } else { return contentResponseDtoList; } @@ -60,17 +60,17 @@ public List getContentQueryWithLevel(String query, int level } int offset = (page - 1) * size; try{ - if(query.equals("all")) { - List contentResponseDtoList = contentRepository.findAllByContentLevel(level, size, offset); + if(!query.equals("all")){ + List contentResponseDtoList = contentRepository.findAllQueryContainingAndContentLevel(query, level, size, offset); if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("등록된 컨텐츠가 없습니다."); + throw new RuntimeException("검색 결과가 없습니다."); } else { return contentResponseDtoList; } } else { - List contentResponseDtoList = contentRepository.findAllQueryContainingAndContentLevel(query, level, size, offset); + List contentResponseDtoList = contentRepository.findAllByContentLevel(level, size, offset); if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("검색 결과가 없습니다."); + throw new RuntimeException("등록된 컨텐츠가 없습니다."); } else { return contentResponseDtoList; } From 3e06dbcb7981294568410769e6944232b77cfc47 Mon Sep 17 00:00:00 2001 From: Taehun88 Date: Wed, 12 Feb 2025 15:13:36 +0900 Subject: [PATCH 4/5] fix : bug fix --- .../prdoit/controller/ContentController.java | 2 +- .../repository/ContentTableRepository.java | 16 ++++++-- .../service/content/ContentService.java | 2 +- .../service/content/ContentServiceImpl.java | 40 ++++++++++++++----- 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/example/prdoit/controller/ContentController.java b/src/main/java/com/example/prdoit/controller/ContentController.java index 75e0b1a..140fa45 100644 --- a/src/main/java/com/example/prdoit/controller/ContentController.java +++ b/src/main/java/com/example/prdoit/controller/ContentController.java @@ -30,7 +30,7 @@ public ResponseEntity getAllContent(@RequestParam(value = "query", requi } else if(userId.isEmpty()){ return ResponseEntity.ok(contentService.getContentQueryWithLevel(query, level, size, page)); } else { - return ResponseEntity.ok(contentService.getContentWithUserId(userId)); + return ResponseEntity.ok(contentService.getContentWithUserId(userId, query, level, size, page)); } } catch (CustomException e) { log.error("[getAllContent] 컨텐츠 조회 실패", e); diff --git a/src/main/java/com/example/prdoit/repository/ContentTableRepository.java b/src/main/java/com/example/prdoit/repository/ContentTableRepository.java index 1159de3..ae81550 100644 --- a/src/main/java/com/example/prdoit/repository/ContentTableRepository.java +++ b/src/main/java/com/example/prdoit/repository/ContentTableRepository.java @@ -47,11 +47,21 @@ public interface ContentTableRepository extends JpaRepository findAllByUserId(@Param("userId") String userId); + Page findAllByUserIdPagination(@Param("userId") String userId, Pageable pageable); @Query("SELECT new com.example.prdoit.dto.content.ContentResponseDto" + "(c.contentId, c.contentTitle, c.contentView, c.contentLike, c.contentLevel, c.userId.nickname) " + - "FROM ContentTable c WHERE c.userId.id = :userId") - Page findAllByUserIdPagination(@Param("userId") String userId, Pageable pageable); + "FROM ContentTable c WHERE c.userId.id = :userId AND c.contentLevel = :level") + Page findAllByUserIdAndContentLevel(String userId, int level, Pageable pageable); + + @Query("SELECT new com.example.prdoit.dto.content.ContentResponseDto" + + "(c.contentId, c.contentTitle, c.contentView, c.contentLike, c.contentLevel, c.userId.nickname) " + + "FROM ContentTable c WHERE c.userId.id = :userId AND c.contentTitle LIKE %:query%") + Page findAllByUserIdAndQueryContaining(String userId, String query, Pageable pageable); + + @Query("SELECT new com.example.prdoit.dto.content.ContentResponseDto" + + "(c.contentId, c.contentTitle, c.contentView, c.contentLike, c.contentLevel, c.userId.nickname) " + + "FROM ContentTable c WHERE c.userId.id = :userId AND c.contentLevel = :level AND c.contentTitle LIKE %:query%") + Page findAllByUserIdAndContentLevelAndQueryContaining(String userId, int level, String query, Pageable pageable); } diff --git a/src/main/java/com/example/prdoit/service/content/ContentService.java b/src/main/java/com/example/prdoit/service/content/ContentService.java index 1e29911..474d296 100644 --- a/src/main/java/com/example/prdoit/service/content/ContentService.java +++ b/src/main/java/com/example/prdoit/service/content/ContentService.java @@ -10,7 +10,7 @@ public interface ContentService { List getContentQueryWithLevel(String query, int level, int size, int page); - List getContentWithUserId(String userId); + List getContentWithUserId(String userId, String query, int level, int size, int page); void updateContent(ContentUpdateDto contentUpdateDto); diff --git a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java index 0c942d6..d338f24 100644 --- a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java @@ -82,21 +82,43 @@ public List getContentQueryWithLevel(String query, int level } @Override - public List getContentWithUserId(String userId){ + public List getContentWithUserId(String userId, String query, int level, int size, int page){ IdTable idTable = IdTableRepository.findById(userId).orElseThrow (() -> new RuntimeException("존재하지 않는 사용자입니다.")); if(idTable.getContentTable().isEmpty()) { throw new RuntimeException("등록된 컨텐츠가 없습니다."); } + int offset = (page - 1) * size; try{ - return idTable.getContentTable().stream().map(contentTable -> ContentResponseDto.builder() - .contentId(contentTable.getContentId()) - .contentTitle(contentTable.getContentTitle()) - .contentView(contentTable.getContentView()) - .contentLike(contentTable.getContentLike()) - .contentLevel(contentTable.getContentLevel()) - .writer(contentTable.getUserId().getNickname()) - .build()).toList(); + if(query.equals("all") && level == -1){ + List contentResponseDtoList = contentRepository.findAllByUserIdPagination(userId, PageRequest.of(page-1, size)).stream().toList(); + if(contentResponseDtoList.isEmpty()){ + throw new RuntimeException("검색 결과가 없습니다."); + } else { + return contentResponseDtoList; + } + } else if(!query.equals("all") && level == -1){ + List contentResponseDtoList = contentRepository.findAllByUserIdAndQueryContaining(userId, query, PageRequest.of(page-1, size)).stream().toList(); + if(contentResponseDtoList.isEmpty()){ + throw new RuntimeException("검색 결과가 없습니다."); + } else { + return contentResponseDtoList; + } + } else if(query.equals("all")){ + List contentResponseDtoList = contentRepository.findAllByUserIdAndContentLevel(userId, level, PageRequest.of(page-1, size)).stream().toList(); + if(contentResponseDtoList.isEmpty()){ + throw new RuntimeException("검색 결과가 없습니다."); + } else { + return contentResponseDtoList; + } + } else { + List contentResponseDtoList = contentRepository.findAllByUserIdAndContentLevelAndQueryContaining(userId, level, query, PageRequest.of(page-1, size)).stream().toList(); + if(contentResponseDtoList.isEmpty()){ + throw new RuntimeException("검색 결과가 없습니다."); + } else { + return contentResponseDtoList; + } + } } catch (Exception e) { log.error(e.getMessage()); throw new RuntimeException("쿼리 조회에 실패했습니다."); From 9a86010dfafd7b2005a290685ffd32cd4df1ce19 Mon Sep 17 00:00:00 2001 From: Taehun88 Date: Wed, 12 Feb 2025 15:16:18 +0900 Subject: [PATCH 5/5] fix : bug fix --- .../service/content/ContentServiceImpl.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java index d338f24..3599916 100644 --- a/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java +++ b/src/main/java/com/example/prdoit/service/content/ContentServiceImpl.java @@ -1,6 +1,7 @@ package com.example.prdoit.service.content; import com.example.prdoit.dto.content.*; +import com.example.prdoit.exception.CustomException; import com.example.prdoit.model.ContentTable; import com.example.prdoit.model.IdTable; import com.example.prdoit.repository.ContentTableRepository; @@ -93,35 +94,38 @@ public List getContentWithUserId(String userId, String query if(query.equals("all") && level == -1){ List contentResponseDtoList = contentRepository.findAllByUserIdPagination(userId, PageRequest.of(page-1, size)).stream().toList(); if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("검색 결과가 없습니다."); + throw new CustomException("검색 결과가 없습니다."); } else { return contentResponseDtoList; } } else if(!query.equals("all") && level == -1){ List contentResponseDtoList = contentRepository.findAllByUserIdAndQueryContaining(userId, query, PageRequest.of(page-1, size)).stream().toList(); if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("검색 결과가 없습니다."); + throw new CustomException("검색 결과가 없습니다."); } else { return contentResponseDtoList; } } else if(query.equals("all")){ List contentResponseDtoList = contentRepository.findAllByUserIdAndContentLevel(userId, level, PageRequest.of(page-1, size)).stream().toList(); if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("검색 결과가 없습니다."); + throw new CustomException("검색 결과가 없습니다."); } else { return contentResponseDtoList; } } else { List contentResponseDtoList = contentRepository.findAllByUserIdAndContentLevelAndQueryContaining(userId, level, query, PageRequest.of(page-1, size)).stream().toList(); if(contentResponseDtoList.isEmpty()){ - throw new RuntimeException("검색 결과가 없습니다."); + throw new CustomException("검색 결과가 없습니다."); } else { return contentResponseDtoList; } } - } catch (Exception e) { + } catch (CustomException e) { log.error(e.getMessage()); - throw new RuntimeException("쿼리 조회에 실패했습니다."); + throw new CustomException("검색 결과가 없습니다."); + } catch (RuntimeException e) { + log.error(e.getMessage()); + throw new RuntimeException("조회 실패"); } }