From 0f80b64c73c4e6c7925ea93622f139fa36e53e82 Mon Sep 17 00:00:00 2001 From: juwum12 Date: Tue, 9 Apr 2024 16:56:49 +0900 Subject: [PATCH 1/7] =?UTF-8?q?FIX=20:=20=EB=A1=9C=EA=B7=B8=EC=95=84?= =?UTF-8?q?=EC=9B=83=EC=8B=9C=20refresh=EA=B0=80=20=EC=9C=A0=ED=9A=A8?= =?UTF-8?q?=ED=95=98=EB=8B=A4=EB=A9=B4=20=EB=B8=94=EB=9E=99=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EC=97=90=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/tool/redis/RedisConfig.java | 2 +- .../security/Jwt/JwtLogoutHandler.java | 26 ++++++++++++------- .../nawabali/security/Jwt/JwtUtil.java | 6 ----- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java b/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java index b0deaca3..514929cf 100644 --- a/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java +++ b/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java @@ -31,7 +31,7 @@ public class RedisConfig { public RedisConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, redisProperties.getPort()); - config.setPassword(password); +// config.setPassword(password); return new LettuceConnectionFactory(config); // Localhost 전용 diff --git a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtLogoutHandler.java b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtLogoutHandler.java index 3356e03b..e4c379da 100644 --- a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtLogoutHandler.java +++ b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtLogoutHandler.java @@ -7,6 +7,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutHandler; import org.springframework.stereotype.Component; @@ -17,12 +18,14 @@ @Component @RequiredArgsConstructor +@Slf4j(topic = "LogoutHandler") public class JwtLogoutHandler implements LogoutHandler { private final JwtUtil jwtUtil; private final RedisTool redisTool; @Override public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication){ // 쿠키 삭제 + log.info("쿠키삭제"); Cookie cookie = new Cookie(JwtUtil.AUTHORIZATION_HEADER, null); cookie.setMaxAge(0); cookie.setPath("/"); @@ -30,22 +33,25 @@ public void logout(HttpServletRequest request, HttpServletResponse response, Aut response.addCookie(cookie); // refresh 토큰 삭제 + log.info("refreshToken 삭제"); String accessToken = jwtUtil.getTokenFromCookieAndName(request, JwtUtil.AUTHORIZATION_HEADER); if(StringUtils.hasText(accessToken)){ accessToken = jwtUtil.substringToken(accessToken); String refreshToken = redisTool.getValues(accessToken); - if(refreshToken.equals("false")){ - throw new CustomException(ErrorCode.INVALID_REFRESH_TOKEN); + if(!refreshToken.equals("false")){ + redisTool.deleteValues(accessToken); + + //access의 남은 유효시간만큼 redis에 블랙리스트로 저장 + log.info("redis에 블랙리스트 저장"); + Long remainedExpiration = jwtUtil.getUserInfoFromToken(accessToken).getExpiration().getTime(); + Long now = new Date().getTime(); + if(remainedExpiration > now){ + long newExpiration = remainedExpiration - now; + redisTool.setValues(accessToken, "logout", Duration.ofMillis(newExpiration)); + } } - redisTool.deleteValues(accessToken); } - //access의 남은 유효시간만큼 redis에 블랙리스트로 저장 - Long remainedExpiration = jwtUtil.getUserInfoFromToken(accessToken).getExpiration().getTime(); - Long now = new Date().getTime(); - if(remainedExpiration > now){ - long newExpiration = remainedExpiration - now; - redisTool.setValues(accessToken, "logout", Duration.ofMillis(newExpiration)); - } + } } diff --git a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java index 8e3f90fd..56a73976 100644 --- a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java +++ b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtUtil.java @@ -164,12 +164,6 @@ public String substringToken(String token){ } throw new NullPointerException("Not Found Token"); } -// public String substringToken(String token){ -// if (StringUtils.hasText(token) && token.startsWith("Bearer ")) { -// return token.substring(7); -// } -// throw new IllegalArgumentException("Invalid or Missing Authorization Header"); -// } } \ No newline at end of file From f3a137d7f79853849ee620c161b4aec6a1f5e5d1 Mon Sep 17 00:00:00 2001 From: juwum12 Date: Tue, 9 Apr 2024 17:39:22 +0900 Subject: [PATCH 2/7] =?UTF-8?q?FIX=20:=20UserController=20testURL=EC=82=AD?= =?UTF-8?q?=EC=A0=9C,=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=8B=A4=ED=8C=A8?= =?UTF-8?q?=EC=8B=9C=20=EB=A9=94=EC=84=B8=EC=A7=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nawabali/controller/UserController.java | 9 --------- .../security/Jwt/JwtAuthenticationFilter.java | 13 +++++++++++++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/nawabali/nawabali/controller/UserController.java b/src/main/java/com/nawabali/nawabali/controller/UserController.java index a09c5092..9b98b797 100644 --- a/src/main/java/com/nawabali/nawabali/controller/UserController.java +++ b/src/main/java/com/nawabali/nawabali/controller/UserController.java @@ -56,14 +56,5 @@ public boolean checkNickname(@RequestBody String nickname){ return userService.checkNickname(nickname); } - @GetMapping("/test") - public String test(){ - return "login"; - } - - @GetMapping("test1") - public void test1(@AuthenticationPrincipal UserDetailsImpl userDetails){ - System.out.println("userDetails.getUser() = " + userDetails.getUser().getEmail()); - } } diff --git a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtAuthenticationFilter.java b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtAuthenticationFilter.java index 1f7b6c44..ef98b762 100644 --- a/src/main/java/com/nawabali/nawabali/security/Jwt/JwtAuthenticationFilter.java +++ b/src/main/java/com/nawabali/nawabali/security/Jwt/JwtAuthenticationFilter.java @@ -25,6 +25,7 @@ import java.time.Duration; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; @Slf4j(topic = "로그인 및 JWT 생성") @@ -111,6 +112,18 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR @Override protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) throws IOException, ServletException { log.info("로그인 실패"); + // 로그인 성공 메시지를 JSON 형태로 응답 본문에 추가 + response.setContentType("application/json"); + response.setCharacterEncoding("UTF-8"); response.setStatus(401); + + // 로그인 응답 메시지 설정 + Map failedMessage = new LinkedHashMap<>(); + failedMessage.put("status", "401"); + failedMessage.put("errorCode", "USER_NOT_FOUND"); + failedMessage.put("message", "존재하지 않는 회원이거나 아이디 또는 비밀번호가 일치하지 않습니다."); + + String jsonResponse = new ObjectMapper().writeValueAsString(failedMessage); + response.getWriter().write(jsonResponse); } } From 46fbca44d199e13b7e8c6337813fa56a7e4eb21a Mon Sep 17 00:00:00 2001 From: juwum12 Date: Tue, 9 Apr 2024 17:43:10 +0900 Subject: [PATCH 3/7] =?UTF-8?q?FIX=20:=20xml=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 2 +- .idea/dataSources.xml | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index f6c2e944..712e4840 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -17,7 +17,7 @@ - + diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 0c2c4280..80c10e2c 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,18 +1,30 @@ - + mysql.8 true + true com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306/nawabali + + + + + $ProjectFileDir$ - + mysql.8 true + true com.mysql.cj.jdbc.Driver - jdbc:mysql://localhost:3306/nawabali + jdbc:mysql://springboot-database.cbe6ouewo4p0.ap-northeast-2.rds.amazonaws.com:3306/sparta + + + + + $ProjectFileDir$ From d4c9fac543fa033e63b16ece023d5185e5aa2f2c Mon Sep 17 00:00:00 2001 From: juwum12 Date: Wed, 10 Apr 2024 18:45:42 +0900 Subject: [PATCH 4/7] =?UTF-8?q?FEAT=20:=20=EC=B4=9D=20=EC=A2=8B=EC=95=84?= =?UTF-8?q?=EC=9A=94=20=EA=B3=84=EC=82=B0=20=EC=BD=94=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80,=20Projection=EC=9D=84=20=EC=9C=84=ED=95=9C=20postdto?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20FIX=20:=20=EC=A3=BC=EC=84=9D=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nawabali/nawabali/dto/PostDto.java | 8 +++++ .../nawabali/repository/LikeRepository.java | 2 +- .../nawabali/repository/PostRepository.java | 4 +++ .../nawabali/service/LikeService.java | 21 ++++++----- .../nawabali/service/UserService.java | 35 +++++++++++++++---- 5 files changed, 52 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/nawabali/nawabali/dto/PostDto.java b/src/main/java/com/nawabali/nawabali/dto/PostDto.java index 2dd8142c..3231557a 100644 --- a/src/main/java/com/nawabali/nawabali/dto/PostDto.java +++ b/src/main/java/com/nawabali/nawabali/dto/PostDto.java @@ -165,4 +165,12 @@ public static class DeleteDto { private String message; } + + @Getter + @Setter + @AllArgsConstructor + public static class getMyPostsResponseDto { + + private Long userId; + } } diff --git a/src/main/java/com/nawabali/nawabali/repository/LikeRepository.java b/src/main/java/com/nawabali/nawabali/repository/LikeRepository.java index 60b29ef2..6b6e0aee 100644 --- a/src/main/java/com/nawabali/nawabali/repository/LikeRepository.java +++ b/src/main/java/com/nawabali/nawabali/repository/LikeRepository.java @@ -14,7 +14,7 @@ public interface LikeRepository extends JpaRepository { Optional findByUserAndPost (User user, Post post); Long countByPostIdAndLikeCategoryEnum(Long postId, LikeCategoryEnum likeCategory); - Like findByUserIdAndPostIdAndLikeCategoryEnum(Long id, Long postId, LikeCategoryEnum likeCategoryEnum); + Like findByUserIdAndPostIdAndLikeCategoryEnum(Long userId, Long postId, LikeCategoryEnum likeCategoryEnum); Optional findFirstByPostIdAndUserIdAndLikeCategoryEnum(Long postId, Long userId, LikeCategoryEnum likeCategoryEnum); } \ No newline at end of file diff --git a/src/main/java/com/nawabali/nawabali/repository/PostRepository.java b/src/main/java/com/nawabali/nawabali/repository/PostRepository.java index 76f825c7..b4381fab 100644 --- a/src/main/java/com/nawabali/nawabali/repository/PostRepository.java +++ b/src/main/java/com/nawabali/nawabali/repository/PostRepository.java @@ -1,10 +1,14 @@ package com.nawabali.nawabali.repository; import com.nawabali.nawabali.domain.Post; +import com.nawabali.nawabali.dto.PostDto; import com.nawabali.nawabali.repository.querydsl.post.PostDslRepositoryCustom; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface PostRepository extends JpaRepository , PostDslRepositoryCustom { + List findByUserId(Long userId); } diff --git a/src/main/java/com/nawabali/nawabali/service/LikeService.java b/src/main/java/com/nawabali/nawabali/service/LikeService.java index 3d9b575a..b73a4091 100644 --- a/src/main/java/com/nawabali/nawabali/service/LikeService.java +++ b/src/main/java/com/nawabali/nawabali/service/LikeService.java @@ -25,7 +25,6 @@ public class LikeService { private final LikeRepository likeRepository; -// private final LocalLikeRepository localLikeRepository; private final UserRepository userRepository; private final PostRepository postRepository; private final NotificationService notificationService; @@ -92,10 +91,10 @@ public LikeDto.responseDto toggleLocalLike(Long postId, String username) { Post post = postRepository.findById(postId) .orElseThrow(() -> new CustomException(ErrorCode.POST_NOT_FOUND)); - // 해당 지역의 회원인지 확인 -// if(!isMatchDistrict(user, post)){ -// throw new CustomException(ErrorCode.MISMATCH_ADDRESS); -// } +// 해당 지역의 회원인지 확인 + if(!isMatchDistrict(user, post)){ + throw new CustomException(ErrorCode.MISMATCH_ADDRESS); + } // 해당 게시물에 로컬좋아요를 눌렀는지 확인 Like findLocalLike = likeRepository.findByUserIdAndPostIdAndLikeCategoryEnum(user.getId(), postId, LikeCategoryEnum.LOCAL_LIKE); @@ -137,11 +136,11 @@ public LikeDto.responseDto toggleLocalLike(Long postId, String username) { } } -// private boolean isMatchDistrict(User user, Post post){ -// String userAddress = user.getAddress().getDistrict(); -// String postAddress = post.getTitle(); -// -// return userAddress.equals(postAddress); -// } + private boolean isMatchDistrict(User user, Post post){ + String userAddress = user.getAddress().getDistrict(); + String postAddress = post.getTown().getDistrict(); + + return userAddress.equals(postAddress); + } } \ No newline at end of file diff --git a/src/main/java/com/nawabali/nawabali/service/UserService.java b/src/main/java/com/nawabali/nawabali/service/UserService.java index 9d52185f..1ce7be89 100644 --- a/src/main/java/com/nawabali/nawabali/service/UserService.java +++ b/src/main/java/com/nawabali/nawabali/service/UserService.java @@ -1,13 +1,17 @@ package com.nawabali.nawabali.service; import com.nawabali.nawabali.constant.Address; +import com.nawabali.nawabali.constant.LikeCategoryEnum; import com.nawabali.nawabali.constant.UserRankEnum; import com.nawabali.nawabali.constant.UserRoleEnum; import com.nawabali.nawabali.domain.User; +import com.nawabali.nawabali.dto.PostDto; import com.nawabali.nawabali.dto.SignupDto; import com.nawabali.nawabali.dto.UserDto; import com.nawabali.nawabali.exception.CustomException; import com.nawabali.nawabali.exception.ErrorCode; +import com.nawabali.nawabali.repository.LikeRepository; +import com.nawabali.nawabali.repository.PostRepository; import com.nawabali.nawabali.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; @@ -15,14 +19,16 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class UserService { private final UserRepository userRepository; private final PasswordEncoder passwordEncoder; - - + private final PostRepository postRepository; + private final LikeRepository likeRepository; @Transactional public ResponseEntity signup(SignupDto.SignupRequestDto requestDto) { String email = requestDto.getEmail(); @@ -68,8 +74,22 @@ public ResponseEntity signup(SignupDto.SignupReques public UserDto.UserInfoResponseDto getUserInfo(User user) { User existUser = getUserId(user.getId()); - Long localCount = 1L; // 물어볼것, 수정해야할 부분 - Long likesCount = 1L; + // 유저 아이디로 작성된 postID 모두 검색 + List postIds = postRepository.findByUserId(user.getId()).stream() + .map(PostDto.getMyPostsResponseDto::getUserId) + .toList(); + + Long totalLikeCount = 0L; + Long totalLocalLikeCount = 0L; + + System.out.println("postIds = " + postIds); + // 게시글 아이디들로 like 테이블에서 카운트 쿼리 전송 + for (Long postId : postIds){ + Long likeCount = likeRepository.countByPostIdAndLikeCategoryEnum(postId, LikeCategoryEnum.LIKE); + totalLikeCount += likeCount; + } +// Long localCount = 1L; // 물어볼것, 수정해야할 부분 +// Long likesCount = 1L; return UserDto.UserInfoResponseDto.builder() .id(existUser.getId()) @@ -78,8 +98,8 @@ public UserDto.UserInfoResponseDto getUserInfo(User user) { .rank(existUser.getRank()) .city(existUser.getAddress().getCity()) .district(existUser.getAddress().getDistrict()) - .localCount(localCount) - .likesCount(likesCount) + .localCount(totalLikeCount) + .likesCount(totalLocalLikeCount) .build(); } @@ -87,6 +107,9 @@ public UserDto.UserInfoResponseDto getUserInfo(User user) { public UserDto.UserInfoResponseDto updateUserInfo(User user, UserDto.UserInfoRequestDto requestDto) { User existUser = getUserId(user.getId()); + String password = passwordEncoder.encode(requestDto.getPassword()); + requestDto.setPassword(password); + existUser.update(requestDto); return new UserDto.UserInfoResponseDto(existUser); } From 6b334ebe41b453f69853e33408ce1cf008d38ff6 Mon Sep 17 00:00:00 2001 From: juwum12 Date: Wed, 10 Apr 2024 20:41:01 +0900 Subject: [PATCH 5/7] =?UTF-8?q?FEAT=20:=20=EC=A0=95=EB=B3=B4=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EB=B9=84=EB=B0=80?= =?UTF-8?q?=EB=B2=88=ED=98=B8=20=EA=B2=80=EC=A6=9Dapi=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?,=20FIX=20:=20=EC=B9=B4=EC=B9=B4=EC=98=A4=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=99=84=EB=A3=8C=EC=8B=9C=20"/"=EB=A1=9C=20?= =?UTF-8?q?=EB=A6=AC=EB=8B=A4=EC=9D=B4=EB=A0=89=ED=8A=B8,=20=EB=8B=89?= =?UTF-8?q?=EB=84=A4=EC=9E=84=20=EC=A4=91=EB=B3=B5=EA=B2=80=EC=82=ACapi=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=EC=9A=94=EC=B2=AD=EB=B0=A9=EB=B2=95?= =?UTF-8?q?=20=EC=88=98=EC=A0=95,?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nawabali/controller/KakaoController.java | 9 ++--- .../nawabali/controller/UserController.java | 8 ++++- .../com/nawabali/nawabali/dto/PostDto.java | 2 +- .../nawabali/service/KakaoService.java | 4 +-- .../nawabali/service/UserService.java | 35 +++++++++++++------ 5 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/nawabali/nawabali/controller/KakaoController.java b/src/main/java/com/nawabali/nawabali/controller/KakaoController.java index e8949b22..c792c349 100644 --- a/src/main/java/com/nawabali/nawabali/controller/KakaoController.java +++ b/src/main/java/com/nawabali/nawabali/controller/KakaoController.java @@ -6,6 +6,7 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -13,7 +14,7 @@ import java.io.IOException; -@RestController +@Controller @RequestMapping("/api/user") @RequiredArgsConstructor public class KakaoController { @@ -22,11 +23,11 @@ public class KakaoController { // 카카오 로그인 요청 처리 @GetMapping("/kakao/callback") - public ResponseEntity kakaoLogin(@RequestParam String code, + public String kakaoLogin(@RequestParam String code, HttpServletResponse response) throws JsonProcessingException, IOException { - return kakaoService.kakaoLogin(code, response); - + kakaoService.kakaoLogin(code, response); + return "redirect:/"; } } diff --git a/src/main/java/com/nawabali/nawabali/controller/UserController.java b/src/main/java/com/nawabali/nawabali/controller/UserController.java index 9b98b797..bc5c7b80 100644 --- a/src/main/java/com/nawabali/nawabali/controller/UserController.java +++ b/src/main/java/com/nawabali/nawabali/controller/UserController.java @@ -52,9 +52,15 @@ public ResponseEntity deleteUserInfo(@AuthenticationP @Operation(summary = "닉네임 중복검사", description = "닉네임 중복여부를 boolean 값으로 반환.") @GetMapping("/check-nickname") - public boolean checkNickname(@RequestBody String nickname){ + public boolean checkNickname(@RequestParam("nickname") String nickname){ return userService.checkNickname(nickname); } + @Operation(summary = "정보 수정을 위한 비밀 번호 확인", description = "입력한 비밀번호와 현재 비밀번호를 비교하여 boolean 값으로 반환") + @GetMapping("/check-myPassword") + public boolean checkMyPassword(@RequestParam("inputPassword") String inputPassword, @AuthenticationPrincipal UserDetailsImpl userDetails){ + return userService.checkMyPassword(inputPassword, userDetails.getUser()); + } + } diff --git a/src/main/java/com/nawabali/nawabali/dto/PostDto.java b/src/main/java/com/nawabali/nawabali/dto/PostDto.java index 3231557a..d4e3bd2d 100644 --- a/src/main/java/com/nawabali/nawabali/dto/PostDto.java +++ b/src/main/java/com/nawabali/nawabali/dto/PostDto.java @@ -171,6 +171,6 @@ public static class DeleteDto { @AllArgsConstructor public static class getMyPostsResponseDto { - private Long userId; + private Long id; } } diff --git a/src/main/java/com/nawabali/nawabali/service/KakaoService.java b/src/main/java/com/nawabali/nawabali/service/KakaoService.java index a75555dd..3bcf45de 100644 --- a/src/main/java/com/nawabali/nawabali/service/KakaoService.java +++ b/src/main/java/com/nawabali/nawabali/service/KakaoService.java @@ -51,7 +51,7 @@ public class KakaoService { private String clientId; @Transactional - public ResponseEntity kakaoLogin(String code , HttpServletResponse response) throws JsonProcessingException, IOException { + public void kakaoLogin(String code , HttpServletResponse response) throws JsonProcessingException, IOException { // 1. "인가 코드"로 "액세스 토큰" 요청 String accessToken = getAccessToken(code, aws); @@ -63,8 +63,6 @@ public ResponseEntity kakaoLogin(String code , Ht // 3. 로그인 JWT 토큰 발행 및 리프레시 토큰 저장 jwtTokenCreate(kakaoUser,response); - return ResponseEntity.ok(new UserDto.kakaoLoginResponseDto(kakaoUser.getId())); - } // 토큰을 요청하고 카카오 서버에서 토큰을 발급 받음- post요청 diff --git a/src/main/java/com/nawabali/nawabali/service/UserService.java b/src/main/java/com/nawabali/nawabali/service/UserService.java index 1ce7be89..68ec6e46 100644 --- a/src/main/java/com/nawabali/nawabali/service/UserService.java +++ b/src/main/java/com/nawabali/nawabali/service/UserService.java @@ -76,20 +76,14 @@ public UserDto.UserInfoResponseDto getUserInfo(User user) { // 유저 아이디로 작성된 postID 모두 검색 List postIds = postRepository.findByUserId(user.getId()).stream() - .map(PostDto.getMyPostsResponseDto::getUserId) + .map(PostDto.getMyPostsResponseDto::getId) .toList(); + System.out.println("postIds = " + postIds); - Long totalLikeCount = 0L; - Long totalLocalLikeCount = 0L; + // 작성된 postID로 좋아요, 로컬좋아요 카운팅 + Long totalLikeCount = getMyTotalLikesCount(postIds, LikeCategoryEnum.LIKE); + Long totalLocalLikeCount = getMyTotalLikesCount(postIds, LikeCategoryEnum.LOCAL_LIKE); - System.out.println("postIds = " + postIds); - // 게시글 아이디들로 like 테이블에서 카운트 쿼리 전송 - for (Long postId : postIds){ - Long likeCount = likeRepository.countByPostIdAndLikeCategoryEnum(postId, LikeCategoryEnum.LIKE); - totalLikeCount += likeCount; - } -// Long localCount = 1L; // 물어볼것, 수정해야할 부분 -// Long likesCount = 1L; return UserDto.UserInfoResponseDto.builder() .id(existUser.getId()) @@ -122,14 +116,33 @@ public ResponseEntity deleteUserInfo(User user) { return ResponseEntity.ok(new UserDto.deleteResponseDto()); } + // 메서드 // + public boolean checkNickname(String nickname) { User duplicatedUser = userRepository.findByNickname(nickname); return duplicatedUser == null; } + public boolean checkMyPassword(String inputPassword, User user) { + User existUser = getUserId(user.getId()); + String myPassword = existUser.getPassword(); + return passwordEncoder.matches(inputPassword, myPassword); + + } public User getUserId(Long userId) { return userRepository.findById(userId) .orElseThrow(() -> new CustomException(ErrorCode.MEMBER_NOT_FOUND)); } + + public Long getMyTotalLikesCount(List postIds, LikeCategoryEnum likeCategoryEnum){ + Long total =0L; + for (Long postId : postIds){ + Long numLikes = likeRepository.countByPostIdAndLikeCategoryEnum(postId, likeCategoryEnum); + total += numLikes; + } + return total; + } + + } From cbe75cacac6d8bbc190f3e48e04794ab2495eee2 Mon Sep 17 00:00:00 2001 From: juwum12 Date: Wed, 10 Apr 2024 20:50:28 +0900 Subject: [PATCH 6/7] =?UTF-8?q?FIX=20:=20=EC=B4=9D=20=EC=A2=8B=EC=95=84?= =?UTF-8?q?=EC=9A=94,=20=EB=A1=9C=EC=BB=AC=EC=A2=8B=EC=95=84=EC=9A=94?= =?UTF-8?q?=EC=9D=98=20=ED=95=84=EB=93=9C=EB=AA=85=EC=97=90=20total?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/nawabali/nawabali/dto/UserDto.java | 4 ++-- src/main/java/com/nawabali/nawabali/service/UserService.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/nawabali/nawabali/dto/UserDto.java b/src/main/java/com/nawabali/nawabali/dto/UserDto.java index bb9d1804..effb4c04 100644 --- a/src/main/java/com/nawabali/nawabali/dto/UserDto.java +++ b/src/main/java/com/nawabali/nawabali/dto/UserDto.java @@ -31,8 +31,8 @@ public static class UserInfoResponseDto{ String city; String district; UserRankEnum rank; - Long localCount; - Long likesCount; + Long totalLikesCount; + Long totalLocalLikesCount; public UserInfoResponseDto(User user) { diff --git a/src/main/java/com/nawabali/nawabali/service/UserService.java b/src/main/java/com/nawabali/nawabali/service/UserService.java index 68ec6e46..33ffe55a 100644 --- a/src/main/java/com/nawabali/nawabali/service/UserService.java +++ b/src/main/java/com/nawabali/nawabali/service/UserService.java @@ -92,8 +92,8 @@ public UserDto.UserInfoResponseDto getUserInfo(User user) { .rank(existUser.getRank()) .city(existUser.getAddress().getCity()) .district(existUser.getAddress().getDistrict()) - .localCount(totalLikeCount) - .likesCount(totalLocalLikeCount) + .totalLikesCount(totalLikeCount) + .totalLocalLikesCount(totalLocalLikeCount) .build(); } From 948c764e50e70dd748e403134335c6b35bbb9a39 Mon Sep 17 00:00:00 2001 From: juwum12 Date: Wed, 10 Apr 2024 21:09:00 +0900 Subject: [PATCH 7/7] =?UTF-8?q?redisconfig=20password=20=ED=99=9C=EC=84=B1?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nawabali/nawabali/global/tool/redis/RedisConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java b/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java index 514929cf..b0deaca3 100644 --- a/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java +++ b/src/main/java/com/nawabali/nawabali/global/tool/redis/RedisConfig.java @@ -31,7 +31,7 @@ public class RedisConfig { public RedisConnectionFactory redisConnectionFactory() { RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, redisProperties.getPort()); -// config.setPassword(password); + config.setPassword(password); return new LettuceConnectionFactory(config); // Localhost 전용