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;