From 0a5b5ba26c95b59e73fa010ae42004a8485b3c18 Mon Sep 17 00:00:00 2001 From: LimHyunwoo <81962309+imenuuu@users.noreply.github.com> Date: Wed, 13 Dec 2023 16:14:04 +0900 Subject: [PATCH] =?UTF-8?q?:zap:=20:=20=EC=9C=A0=EC=A0=80=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=88=98=EC=A0=95=20(#225)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/user/controller/AdminUserController.java | 5 ++++- .../admin/user/service/AdminUserService.java | 12 +++++++----- .../com/example/matchapi/common/ExceptionAdvice.java | 2 ++ .../matchapi/user/converter/UserConverter.java | 5 +++-- .../java/com/example/matchapi/user/dto/UserRes.java | 2 ++ .../matchdomain/user/adaptor/UserAdaptor.java | 2 ++ .../matchdomain/user/repository/UserRepository.java | 4 +++- 7 files changed, 23 insertions(+), 9 deletions(-) diff --git a/Match-Api/src/main/java/com/example/matchapi/admin/user/controller/AdminUserController.java b/Match-Api/src/main/java/com/example/matchapi/admin/user/controller/AdminUserController.java index dda17ee4..cf0a52e5 100644 --- a/Match-Api/src/main/java/com/example/matchapi/admin/user/controller/AdminUserController.java +++ b/Match-Api/src/main/java/com/example/matchapi/admin/user/controller/AdminUserController.java @@ -13,12 +13,15 @@ import com.example.matchdomain.user.entity.User; import com.example.matchdomain.user.entity.enums.Gender; import com.example.matchdomain.user.exception.UserAuthErrorCode; +import com.fasterxml.jackson.annotation.JsonFormat; + import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.Min; @@ -93,7 +96,7 @@ public CommonResponse updateNickname(@PathVariable Long userId, @Request @PatchMapping("/birth/{userId}") @Operation(summary = "ADMIN-02-07👤 유저 생일 수정 API.",description = "유저 생일 수정 API 입니다.") - public CommonResponse updateBirth(@PathVariable Long userId, @RequestParam LocalDate birth){ + public CommonResponse updateBirth(@PathVariable Long userId, @DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam LocalDate birth){ adminUserService.updateBirth(userId, birth); return CommonResponse.onSuccess("생일 수정 성공"); } diff --git a/Match-Api/src/main/java/com/example/matchapi/admin/user/service/AdminUserService.java b/Match-Api/src/main/java/com/example/matchapi/admin/user/service/AdminUserService.java index 01db7aa9..3023864d 100644 --- a/Match-Api/src/main/java/com/example/matchapi/admin/user/service/AdminUserService.java +++ b/Match-Api/src/main/java/com/example/matchapi/admin/user/service/AdminUserService.java @@ -16,8 +16,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import javax.transaction.Transactional; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; @@ -75,33 +75,35 @@ public void unActivateUser(User user) { donationService.deleteRegularPayment(user); } + @Transactional public void updateNickname(Long userId, String nickname) { updateUserInfo(userId, user -> user.setNickname(nickname)); } + @Transactional public void updatePhone(Long userId, String phone) { if (userAdaptor.existsPhoneNumber(phone)) { throw new ForbiddenException(USERS_EXISTS_PHONE); } updateUserInfo(userId, user -> user.setPhoneNumber(phone)); } - + @Transactional public void updateEmail(Long userId, String email) { if (userAdaptor.existsEmail(email)) { throw new ForbiddenException(USERS_EXISTS_EMAIL); } updateUserInfo(userId, user -> user.setEmail(email)); } - + @Transactional public void updateGender(Long userId, Gender gender) { updateUserInfo(userId, user -> user.setGender(gender)); } - + @Transactional public void updateBirth(Long userId, LocalDate birth) { updateUserInfo(userId, user -> user.setBirth(birth)); } - private void updateUserInfo(Long userId, Consumer updateFunction) { + public void updateUserInfo(Long userId, Consumer updateFunction) { User user = findByUserId(userId); updateFunction.accept(user); userAdaptor.save(user); diff --git a/Match-Api/src/main/java/com/example/matchapi/common/ExceptionAdvice.java b/Match-Api/src/main/java/com/example/matchapi/common/ExceptionAdvice.java index 3400e8f5..49594c91 100644 --- a/Match-Api/src/main/java/com/example/matchapi/common/ExceptionAdvice.java +++ b/Match-Api/src/main/java/com/example/matchapi/common/ExceptionAdvice.java @@ -91,6 +91,7 @@ public ResponseEntity onKnownDynamicException(BaseDynamicException baseDynamicEx } +/* @ExceptionHandler(value = Exception.class) public ResponseEntity onException(Exception exception, @AuthenticationPrincipal User user, HttpServletRequest request) { @@ -105,6 +106,7 @@ public ResponseEntity onException(Exception exception, @AuthenticationPrincipal return new ResponseEntity<>(CommonResponse.onFailure("500", exception.getMessage(), null), null, HttpStatus.INTERNAL_SERVER_ERROR); } +*/ private void getExceptionStackTrace(Exception e, User user, HttpServletRequest request, Map errors) { StringWriter sw = new StringWriter(); diff --git a/Match-Api/src/main/java/com/example/matchapi/user/converter/UserConverter.java b/Match-Api/src/main/java/com/example/matchapi/user/converter/UserConverter.java index 2a4ff609..e53a0777 100644 --- a/Match-Api/src/main/java/com/example/matchapi/user/converter/UserConverter.java +++ b/Match-Api/src/main/java/com/example/matchapi/user/converter/UserConverter.java @@ -168,7 +168,7 @@ public UserRes.UserList convertToUserList(UserRepository.UserList result) { .name(result.getName()) .birth(String.valueOf(result.getBirth())) .socialType(result.getSocialType().getName()) - .gender(result.getGender().getValue()) + .gender(result.getGender() == null ? null : result.getGender().getValue()) .email(result.getEmail()) .phoneNumber(result.getPhoneNumber()) .donationCnt(result.getDonationCnt()) @@ -186,7 +186,7 @@ public UserRes.UserAdminDetail convertToUserAdminDetail(UserRepository.UserList .name(userDetail.getName()) .birth(String.valueOf(userDetail.getBirth())) .socialType(userDetail.getSocialType().getName()) - .gender(userDetail.getGender().getValue()) + .gender(userDetail.getGender() == null ? null : userDetail.getGender().getValue()) .email(userDetail.getEmail()) .phoneNumber(userDetail.getPhoneNumber()) .donationCnt(userDetail.getDonationCnt()) @@ -194,6 +194,7 @@ public UserRes.UserAdminDetail convertToUserAdminDetail(UserRepository.UserList .card(userDetail.getCard()) .status(userDetail.getStatus().getValue()) .createdAt(userDetail.getCreatedAt().toString()) + .nickname(userDetail.getNickname()) .build(); } diff --git a/Match-Api/src/main/java/com/example/matchapi/user/dto/UserRes.java b/Match-Api/src/main/java/com/example/matchapi/user/dto/UserRes.java index 5e853436..d34bf207 100644 --- a/Match-Api/src/main/java/com/example/matchapi/user/dto/UserRes.java +++ b/Match-Api/src/main/java/com/example/matchapi/user/dto/UserRes.java @@ -183,6 +183,8 @@ public static class UserAdminDetail { private String status; private String createdAt; + + private String nickname; } public static class EmailAuth { diff --git a/Match-Domain/src/main/java/com/example/matchdomain/user/adaptor/UserAdaptor.java b/Match-Domain/src/main/java/com/example/matchdomain/user/adaptor/UserAdaptor.java index 7019a058..9fa53ebf 100644 --- a/Match-Domain/src/main/java/com/example/matchdomain/user/adaptor/UserAdaptor.java +++ b/Match-Domain/src/main/java/com/example/matchdomain/user/adaptor/UserAdaptor.java @@ -26,6 +26,8 @@ import static com.example.matchdomain.user.entity.enums.SocialType.NORMAL; import static com.example.matchdomain.user.exception.UserLoginErrorCode.NOT_EXIST_USER; +import javax.transaction.Transactional; + @Adaptor @RequiredArgsConstructor public class UserAdaptor { diff --git a/Match-Domain/src/main/java/com/example/matchdomain/user/repository/UserRepository.java b/Match-Domain/src/main/java/com/example/matchdomain/user/repository/UserRepository.java index 15069082..7b7b4d4e 100644 --- a/Match-Domain/src/main/java/com/example/matchdomain/user/repository/UserRepository.java +++ b/Match-Domain/src/main/java/com/example/matchdomain/user/repository/UserRepository.java @@ -73,7 +73,7 @@ public interface UserRepository extends JpaRepository { "FROM User U where name LIKE concat('%',:content,'%') order by createdAt desc" ,nativeQuery = true, countQuery = "select count(*) from User where name LIKE concat('%',:content,'%')") Page getUserListByName(Pageable pageable,@Param("content") String content); - @Query(value = "SELECT U.id 'userId', name, birth, socialType, gender, phoneNumber,email," + + @Query(value = "SELECT U.id 'userId', name, birth, socialType, gender, phoneNumber,email, nickname," + "If((select exists (select * from UserCard UC where UC.userId=U.id)),'true','false')'card'," + "(select count(*) from DonationUser DU where DU.userId = U.id)'donationCnt'," + "COALESCE((SELECT SUM(DU.price) FROM DonationUser DU WHERE DU.userId = U.id), 0) AS totalAmount,U.status, U.createdAt " + @@ -122,6 +122,8 @@ public interface UserList { Status getStatus(); + String getNickname(); + LocalDateTime getCreatedAt(); } }