user-service 고객 조회 api 추가

This commit is contained in:
bum12ark
2022-02-03 17:28:50 +09:00
parent 90ff506b14
commit 1a52af70c4
7 changed files with 131 additions and 0 deletions

View File

@@ -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);
}
}

View File

@@ -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();
}
}

View File

@@ -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<Customer, Long> {
}

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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();
}
}
}

View File

@@ -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<T> {
public String message;
public T data;
}