78 lines
2.7 KiB
Java
78 lines
2.7 KiB
Java
package com.goi.erp.service;
|
|
|
|
import com.goi.erp.dto.CustomerRequestDto;
|
|
import com.goi.erp.dto.CustomerResponseDto;
|
|
import com.goi.erp.entity.Customer;
|
|
import com.goi.erp.repository.CustomerRepository;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
import java.util.stream.Collectors;
|
|
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
public class CustomerService {
|
|
|
|
private final CustomerRepository customerRepository;
|
|
|
|
public CustomerResponseDto createCustomer(CustomerRequestDto dto) {
|
|
Customer customer = Customer.builder()
|
|
.cusUuid(UUID.randomUUID())
|
|
.cusName(dto.getCusName())
|
|
.cusNo(dto.getCusNo())
|
|
.cusStatus(dto.getCusStatus())
|
|
.cusAddress1(dto.getCusAddress1())
|
|
.cusAddress2(dto.getCusAddress2())
|
|
.cusCity(dto.getCusCity())
|
|
.cusProvince(dto.getCusProvince())
|
|
.build();
|
|
customer = customerRepository.save(customer);
|
|
return mapToDto(customer);
|
|
}
|
|
|
|
public List<CustomerResponseDto> getAllCustomers() {
|
|
return customerRepository.findAll().stream()
|
|
.map(this::mapToDto)
|
|
.collect(Collectors.toList());
|
|
}
|
|
|
|
public CustomerResponseDto getCustomerByUuid(UUID uuid) {
|
|
Customer customer = customerRepository.findByCusUuid(uuid)
|
|
.orElseThrow(() -> new RuntimeException("Customer not found"));
|
|
return mapToDto(customer);
|
|
}
|
|
|
|
public CustomerResponseDto updateCustomer(UUID uuid, CustomerRequestDto dto) {
|
|
Customer customer = customerRepository.findByCusUuid(uuid)
|
|
.orElseThrow(() -> new RuntimeException("Customer not found"));
|
|
|
|
customer.setCusName(dto.getCusName());
|
|
customer.setCusNo(dto.getCusNo());
|
|
customer.setCusStatus(dto.getCusStatus());
|
|
customer.setCusAddress1(dto.getCusAddress1());
|
|
customer.setCusAddress2(dto.getCusAddress2());
|
|
customer.setCusCity(dto.getCusCity());
|
|
customer.setCusProvince(dto.getCusProvince());
|
|
|
|
customerRepository.save(customer);
|
|
return mapToDto(customer);
|
|
}
|
|
|
|
public void deleteCustomer(UUID uuid) {
|
|
Customer customer = customerRepository.findByCusUuid(uuid)
|
|
.orElseThrow(() -> new RuntimeException("Customer not found"));
|
|
customerRepository.delete(customer);
|
|
}
|
|
|
|
private CustomerResponseDto mapToDto(Customer customer) {
|
|
return CustomerResponseDto.builder()
|
|
.cusUuid(customer.getCusUuid())
|
|
.cusName(customer.getCusName())
|
|
.cusNo(customer.getCusNo())
|
|
.cusStatus(customer.getCusStatus())
|
|
.build();
|
|
}
|
|
}
|