From 1a52af70c4101ce64a8cdc7562b722a78ddbd14e Mon Sep 17 00:00:00 2001 From: bum12ark Date: Thu, 3 Feb 2022 17:28:50 +0900 Subject: [PATCH] =?UTF-8?q?user-service=20=EA=B3=A0=EA=B0=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/user/dto/CustomerDto.java | 12 +++++ .../userservice/domain/user/dto/UserDto.java | 20 ++++++++ .../user/repository/CustomerRepository.java | 7 +++ .../domain/user/service/UserService.java | 7 +++ .../domain/user/service/UserServiceImpl.java | 28 +++++++++++ .../domain/user/web/UserController.java | 46 +++++++++++++++++++ .../userservice/global/dto/Result.java | 11 +++++ 7 files changed, 131 insertions(+) create mode 100644 user-service/src/main/java/com/justpickup/userservice/domain/user/dto/CustomerDto.java create mode 100644 user-service/src/main/java/com/justpickup/userservice/domain/user/dto/UserDto.java create mode 100644 user-service/src/main/java/com/justpickup/userservice/domain/user/repository/CustomerRepository.java create mode 100644 user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserService.java create mode 100644 user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserServiceImpl.java create mode 100644 user-service/src/main/java/com/justpickup/userservice/domain/user/web/UserController.java create mode 100644 user-service/src/main/java/com/justpickup/userservice/global/dto/Result.java diff --git a/user-service/src/main/java/com/justpickup/userservice/domain/user/dto/CustomerDto.java b/user-service/src/main/java/com/justpickup/userservice/domain/user/dto/CustomerDto.java new file mode 100644 index 0000000..dabe187 --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/dto/CustomerDto.java @@ -0,0 +1,12 @@ +package com.justpickup.userservice.domain.user.dto; + +import com.justpickup.userservice.domain.user.entity.Customer; +import lombok.Getter; + +@Getter +public class CustomerDto extends UserDto { + + public CustomerDto(Customer customer) { + super(customer); + } +} diff --git a/user-service/src/main/java/com/justpickup/userservice/domain/user/dto/UserDto.java b/user-service/src/main/java/com/justpickup/userservice/domain/user/dto/UserDto.java new file mode 100644 index 0000000..60596ee --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/dto/UserDto.java @@ -0,0 +1,20 @@ +package com.justpickup.userservice.domain.user.dto; + +import com.justpickup.userservice.domain.user.entity.Customer; +import lombok.Getter; + +@Getter +public class UserDto { + private Long id; + private String password; + private String name; + private String phoneNumber; + + // == 생성 메소드 == // + public UserDto(Customer customer) { + this.id = customer.getId(); + this.password = customer.getPassword(); + this.name = customer.getName(); + this.phoneNumber = customer.getPhoneNumber(); + } +} diff --git a/user-service/src/main/java/com/justpickup/userservice/domain/user/repository/CustomerRepository.java b/user-service/src/main/java/com/justpickup/userservice/domain/user/repository/CustomerRepository.java new file mode 100644 index 0000000..1ade0b8 --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/repository/CustomerRepository.java @@ -0,0 +1,7 @@ +package com.justpickup.userservice.domain.user.repository; + +import com.justpickup.userservice.domain.user.entity.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} 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 new file mode 100644 index 0000000..b246962 --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserService.java @@ -0,0 +1,7 @@ +package com.justpickup.userservice.domain.user.service; + +import com.justpickup.userservice.domain.user.dto.CustomerDto; + +public interface UserService { + CustomerDto findCustomerByUserId(Long userId); +} 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 new file mode 100644 index 0000000..6396552 --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/service/UserServiceImpl.java @@ -0,0 +1,28 @@ +package com.justpickup.userservice.domain.user.service; + +import com.justpickup.userservice.domain.user.dto.CustomerDto; +import com.justpickup.userservice.domain.user.entity.Customer; +import com.justpickup.userservice.domain.user.repository.CustomerRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.NoSuchElementException; + +@Service +@RequiredArgsConstructor +@Transactional(readOnly = true) +@Slf4j +public class UserServiceImpl implements UserService { + + private final CustomerRepository customerRepository; + + @Override + public CustomerDto findCustomerByUserId(Long userId) { + Customer customer = customerRepository.findById(userId) + .orElseThrow(NoSuchElementException::new); + + return new CustomerDto(customer); + } +} 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 new file mode 100644 index 0000000..41cc249 --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/domain/user/web/UserController.java @@ -0,0 +1,46 @@ +package com.justpickup.userservice.domain.user.web; + +import com.justpickup.userservice.domain.user.dto.CustomerDto; +import com.justpickup.userservice.domain.user.service.UserService; +import com.justpickup.userservice.global.dto.Result; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Slf4j +public class UserController { + + private final UserService userService; + + @GetMapping("/customer/{userId}") + public ResponseEntity getCustomer(@PathVariable("userId") Long userId) { + + CustomerDto customerDto = userService.findCustomerByUserId(userId); + + return ResponseEntity.status(HttpStatus.OK) + .body(new Result<>("OK", new GetCustomerResponse(customerDto))); + } + + @Data @NoArgsConstructor @AllArgsConstructor + static class GetCustomerResponse { + private Long userId; + private String userName; + private String phoneNumber; + + public GetCustomerResponse(CustomerDto customerDto) { + this.userId = customerDto.getId(); + this.userName = customerDto.getName(); + this.phoneNumber = customerDto.getPhoneNumber(); + } + } + +} diff --git a/user-service/src/main/java/com/justpickup/userservice/global/dto/Result.java b/user-service/src/main/java/com/justpickup/userservice/global/dto/Result.java new file mode 100644 index 0000000..66eb0e8 --- /dev/null +++ b/user-service/src/main/java/com/justpickup/userservice/global/dto/Result.java @@ -0,0 +1,11 @@ +package com.justpickup.userservice.global.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data @NoArgsConstructor @AllArgsConstructor +public class Result { + public String message; + public T data; +}