From 44dc5a10ec4a495996c8b63782f134d1abd4d99a Mon Sep 17 00:00:00 2001 From: bum12ark Date: Tue, 15 Mar 2022 16:47:54 +0900 Subject: [PATCH] =?UTF-8?q?feat(user-service):=20=EA=B3=A0=EA=B0=9D=20?= =?UTF-8?q?=EA=B3=A0=EC=9C=A0=EB=B2=88=ED=98=B8=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EB=A1=9C=20=EA=B3=A0=EA=B0=9D=20=EA=B0=80=EC=A0=B8?= =?UTF-8?q?=EC=98=A4=EA=B8=B0=20API=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/user/service/UserService.java | 3 +++ .../domain/user/service/UserServiceImpl.java | 14 ++++++++++++-- .../domain/user/web/UserController.java | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserService.java b/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserService.java index 3d09f91..692a158 100644 --- a/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserService.java +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserService.java @@ -3,7 +3,10 @@ package com.justpickup.userservice.domain.user.service; import com.justpickup.userservice.domain.user.dto.CustomerDto; import com.justpickup.userservice.domain.user.dto.StoreOwnerDto; +import java.util.List; + public interface UserService { CustomerDto findCustomerByUserId(Long userId); void saveStoreOwner(StoreOwnerDto storeOwnerDto); + List findCustomerByUserIds(List userIds); } diff --git a/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserServiceImpl.java b/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserServiceImpl.java index 7ac0eda..379d882 100644 --- a/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserServiceImpl.java +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserServiceImpl.java @@ -22,10 +22,12 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; @Service @RequiredArgsConstructor -@Transactional(readOnly = true,propagation = Propagation.SUPPORTS) +@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) @Slf4j public class UserServiceImpl implements UserService, UserDetailsService { @@ -64,7 +66,15 @@ public class UserServiceImpl implements UserService, UserDetailsService { StoreOwner storeOwner = new StoreOwner(email, encode, storeOwnerDto.getName(), storeOwnerDto.getPhoneNumber(), storeOwnerDto.getBusinessNumber()); - StoreOwner save = userRepository.save(storeOwner); + userRepository.save(storeOwner); + } + + @Override + public List findCustomerByUserIds(List userIds) { + return customerRepository.findAllById(userIds) + .stream() + .map(CustomerDto::new) + .collect(Collectors.toList()); } } diff --git a/user-service/src/main/java/com/justpickup/userservice/domain/user/web/UserController.java b/user-service/src/main/java/com/justpickup/userservice/domain/user/web/UserController.java index 377a1bb..8c723d2 100644 --- a/user-service/src/main/java/com/justpickup/userservice/domain/user/web/UserController.java +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/web/UserController.java @@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.Email; import javax.validation.constraints.NotEmpty; +import java.util.List; +import java.util.stream.Collectors; @RestController @RequiredArgsConstructor @@ -35,6 +37,19 @@ public class UserController { .body(Result.createSuccessResult(getCustomerResponse)); } + @GetMapping("/customers/{userIds}") + public ResponseEntity getCustomers(@PathVariable List userIds) { + + List customers = userService.findCustomerByUserIds(userIds); + + List responses = customers + .stream() + .map(GetCustomerResponse::new) + .collect(Collectors.toList()); + + return ResponseEntity.ok(Result.createSuccessResult(responses)); + } + @Data @NoArgsConstructor @AllArgsConstructor static class GetCustomerResponse { private Long userId;