From 0b70cec008e719a44c9286253ff3cb807cb7aa28 Mon Sep 17 00:00:00 2001 From: JIUNG GU <60885635+JIUNG9@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:50:15 +0900 Subject: [PATCH] feat: add the user soft-delete feign request --- ...tUserApplicationsByStatusFeignRequest.java | 4 +-- .../GetUserApplicationByIdRequestImpl.java | 2 +- .../dto/feign/SoftDeleteSocialUserDto.java | 13 ---------- .../flower/user/social/entity/SocialUser.java | 1 + .../controller/SocialUserRestController.java | 8 ------ .../http/feign/UserFeignController.java | 26 +++++++++++++++---- .../FindSocialUserByLongIdService.java | 1 + .../service/SoftDeleteStrategyService.java | 16 +++++++++++- ...StoreManagerStatusPendingFeignRequest.java | 4 +-- 9 files changed, 43 insertions(+), 32 deletions(-) delete mode 100644 src/main/java/com/bit/lotte/flower/user/social/dto/feign/SoftDeleteSocialUserDto.java diff --git a/src/main/java/com/bit/lotte/flower/user/admin/http/feign/GetUserApplicationsByStatusFeignRequest.java b/src/main/java/com/bit/lotte/flower/user/admin/http/feign/GetUserApplicationsByStatusFeignRequest.java index 524de8a..d5642fc 100644 --- a/src/main/java/com/bit/lotte/flower/user/admin/http/feign/GetUserApplicationsByStatusFeignRequest.java +++ b/src/main/java/com/bit/lotte/flower/user/admin/http/feign/GetUserApplicationsByStatusFeignRequest.java @@ -1,5 +1,6 @@ package com.bit.lotte.flower.user.admin.http.feign; +import bloomingblooms.response.CommonResponse; import com.bit.lotte.flower.user.common.valueobject.StoreManagerStatus; import java.util.List; import org.springframework.cloud.openfeign.FeignClient; @@ -8,8 +9,7 @@ @FeignClient(name = "get-store-manager-applications", url = "${service.auth.domain}") public interface GetUserApplicationsByStatusFeignRequest { - @GetMapping("/store-manager/{status}") - public List getStoreManagerApplications(@PathVariable StoreManagerStatus status); + public CommonResponse> getStoreManagerApplications(@PathVariable StoreManagerStatus status); } diff --git a/src/main/java/com/bit/lotte/flower/user/admin/http/message/GetUserApplicationByIdRequestImpl.java b/src/main/java/com/bit/lotte/flower/user/admin/http/message/GetUserApplicationByIdRequestImpl.java index af4843d..a0fec9f 100644 --- a/src/main/java/com/bit/lotte/flower/user/admin/http/message/GetUserApplicationByIdRequestImpl.java +++ b/src/main/java/com/bit/lotte/flower/user/admin/http/message/GetUserApplicationByIdRequestImpl.java @@ -16,6 +16,6 @@ public class GetUserApplicationByIdRequestImpl implements @Override public List request(StoreManagerStatus storeManagerStatus) { - return feignRequest.getStoreManagerApplications(storeManagerStatus); + return feignRequest.getStoreManagerApplications(storeManagerStatus).getData(); } } diff --git a/src/main/java/com/bit/lotte/flower/user/social/dto/feign/SoftDeleteSocialUserDto.java b/src/main/java/com/bit/lotte/flower/user/social/dto/feign/SoftDeleteSocialUserDto.java deleted file mode 100644 index 0dce2ca..0000000 --- a/src/main/java/com/bit/lotte/flower/user/social/dto/feign/SoftDeleteSocialUserDto.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.bit.lotte.flower.user.social.dto.feign; - -import com.bit.lotte.flower.user.common.valueobject.UserId; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@AllArgsConstructor -@NoArgsConstructor -@Getter -public class SoftDeleteSocialUserDto { - ID socialId; -} diff --git a/src/main/java/com/bit/lotte/flower/user/social/entity/SocialUser.java b/src/main/java/com/bit/lotte/flower/user/social/entity/SocialUser.java index f7c0ef9..333b5b6 100644 --- a/src/main/java/com/bit/lotte/flower/user/social/entity/SocialUser.java +++ b/src/main/java/com/bit/lotte/flower/user/social/entity/SocialUser.java @@ -20,6 +20,7 @@ public class SocialUser extends BaseEntity{ @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private Long oauthId; private String email; diff --git a/src/main/java/com/bit/lotte/flower/user/social/http/controller/SocialUserRestController.java b/src/main/java/com/bit/lotte/flower/user/social/http/controller/SocialUserRestController.java index 1c752f5..0d85604 100644 --- a/src/main/java/com/bit/lotte/flower/user/social/http/controller/SocialUserRestController.java +++ b/src/main/java/com/bit/lotte/flower/user/social/http/controller/SocialUserRestController.java @@ -30,15 +30,8 @@ public class SocialUserRestController { private final GetUserLikesCntRequest getUserLikesCntRequest; private final GetUserCouponCntRequest getUserCouponCntRequest; private final GetUserInfoServiceImpl getUserInfoServiceImpl; - private final SocialUserLoginManager socialUserLoginManager; private final SocialUpdateUserService socialUserService; - @PostMapping("/social") - public ResponseEntity userLogin( - @RequestBody UserLoginCommand userLoginCommand) { - UserLoginDataResponse response = socialUserLoginManager.process(userLoginCommand); - return ResponseEntity.ok(response); - } @PutMapping("/social/phone-number") public CommonResponse userPhoneNumberUpdate( @@ -61,7 +54,6 @@ public CommonResponse updateUserData(@RequestHeader Long userId, socialUserService.updateUserInfo(userId, command.getNickname(), command.getEmail(), command.getPhoneNumber()); return CommonResponse.success("업데이트 성공"); - } private UserMypageResponse getUserMypageResponse(UserDataDto userDataDto, Long likesCnt, diff --git a/src/main/java/com/bit/lotte/flower/user/social/http/feign/UserFeignController.java b/src/main/java/com/bit/lotte/flower/user/social/http/feign/UserFeignController.java index fe630ff..81c3110 100644 --- a/src/main/java/com/bit/lotte/flower/user/social/http/feign/UserFeignController.java +++ b/src/main/java/com/bit/lotte/flower/user/social/http/feign/UserFeignController.java @@ -2,10 +2,16 @@ import bloomingblooms.response.CommonResponse; import com.bit.lotte.flower.user.common.valueobject.UserId; -import com.bit.lotte.flower.user.social.dto.feign.SoftDeleteSocialUserDto; +import com.bit.lotte.flower.user.social.dto.command.UserLoginCommand; +import com.bit.lotte.flower.user.social.dto.response.UserLoginDataResponse; +import com.bit.lotte.flower.user.social.service.SocialUserLoginManager; import com.bit.lotte.flower.user.social.service.SoftDeleteStrategyService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor @@ -13,10 +19,20 @@ public class UserFeignController { private final SoftDeleteStrategyService softDeleteStrategyService; + private final SocialUserLoginManager socialUserLoginManager; - @DeleteMapping( "/client/users") - CommonResponse delete(SoftDeleteSocialUserDto deleteUserDto){ - softDeleteStrategyService.userWithdrawal(deleteUserDto.getSocialId()); + + @PostMapping("/client/social") + public CommonResponse userLogin( + @RequestBody UserLoginCommand userLoginCommand) { + UserLoginDataResponse response = socialUserLoginManager.process(userLoginCommand); + return CommonResponse.success(response); + } + + + @PutMapping("/client/users/{userId}") + CommonResponse delete(@PathVariable Long userId) { + softDeleteStrategyService.userWithdrawal(new UserId(userId)); return CommonResponse.success(Boolean.TRUE); } diff --git a/src/main/java/com/bit/lotte/flower/user/social/repository/FindSocialUserByLongIdService.java b/src/main/java/com/bit/lotte/flower/user/social/repository/FindSocialUserByLongIdService.java index e372fe8..8c67c00 100644 --- a/src/main/java/com/bit/lotte/flower/user/social/repository/FindSocialUserByLongIdService.java +++ b/src/main/java/com/bit/lotte/flower/user/social/repository/FindSocialUserByLongIdService.java @@ -17,4 +17,5 @@ public SocialUser findUserElseThrowError(Long id) { throw new SocialUserDomainException("존재하지 않는 회원입니다."); }); } + } diff --git a/src/main/java/com/bit/lotte/flower/user/social/service/SoftDeleteStrategyService.java b/src/main/java/com/bit/lotte/flower/user/social/service/SoftDeleteStrategyService.java index f2a9964..adcc4ec 100644 --- a/src/main/java/com/bit/lotte/flower/user/social/service/SoftDeleteStrategyService.java +++ b/src/main/java/com/bit/lotte/flower/user/social/service/SoftDeleteStrategyService.java @@ -5,6 +5,7 @@ import com.bit.lotte.flower.user.social.mapper.SocialUserMapper; import com.bit.lotte.flower.user.social.repository.FindSocialUserByLongIdService; import com.bit.lotte.flower.user.social.repository.SocialUserJpaRepository; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -18,9 +19,22 @@ public class SoftDeleteStrategyService implements UserWithdrawalService @Override public void userWithdrawal(UserId userId) { SocialUser socialUser = findSocialUserByLongIdService.findUserElseThrowError(userId.getValue()); - SocialUser updatedToDeleted = SocialUserMapper.changeUserStatus(socialUser,Boolean.TRUE); + + SocialUser notSoftDeletedUser = getNotSoftDeletedUser(repository + .findAllByOauthId(socialUser.getOauthId())); + + SocialUser updatedToDeleted = SocialUserMapper.changeUserStatus(notSoftDeletedUser, + Boolean.TRUE); repository.save(updatedToDeleted); } + private SocialUser getNotSoftDeletedUser(List allSocialUserByOauthId) { + + return allSocialUserByOauthId.stream() + .filter(user -> !user.getIsDeleted()) + .findFirst() + .orElse(null); + } + } diff --git a/src/main/java/com/bit/lotte/flower/user/store/http/feign/InitStoreManagerStatusPendingFeignRequest.java b/src/main/java/com/bit/lotte/flower/user/store/http/feign/InitStoreManagerStatusPendingFeignRequest.java index c49c772..5072488 100644 --- a/src/main/java/com/bit/lotte/flower/user/store/http/feign/InitStoreManagerStatusPendingFeignRequest.java +++ b/src/main/java/com/bit/lotte/flower/user/store/http/feign/InitStoreManagerStatusPendingFeignRequest.java @@ -5,8 +5,8 @@ import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(name = "init-storemanager-status",url = "${service.auth.domain}") +@FeignClient(name = "init-store-manager-status",url = "${service.auth.domain}") public interface InitStoreManagerStatusPendingFeignRequest { - @PatchMapping("/admin/store-manager") + @PatchMapping("/client/admin/store-manager") public void publish(@RequestBody UpdateStoreManagerPendingStausDto dto); }