From 9580111fa4bbea4871d86a2b917fb248682b1b30 Mon Sep 17 00:00:00 2001 From: wayne <wayne8692wayne8692@gmail.com> Date: 星期一, 29 十一月 2021 12:02:36 +0800 Subject: [PATCH] [ADD]【todo 131166】新增客戶個人帳號資訊API,又因應會有更新機制,故不把手機及email資訊放在detail中 --- pamapi/src/main/java/com/pollex/pam/service/CustomerService.java | 43 ++++++++++++++++++++++++++++++++++--------- 1 files changed, 34 insertions(+), 9 deletions(-) diff --git a/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java b/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java index fe9a396..c944a44 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java @@ -2,6 +2,9 @@ import java.util.Optional; +import com.pollex.pam.security.SecurityUtils; +import com.pollex.pam.service.dto.CustomerDTO; +import com.pollex.pam.service.mapper.CustomerMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; @@ -18,31 +21,34 @@ @Service @Transactional public class CustomerService { - + @Autowired CustomerRepository customerRepository; - + @Autowired CustomerDTOMapper customerDTOMapper; - + @Autowired CustomerAuthService customerAuthService; - + @Autowired OtpTmpService otpTmpService; - + + @Autowired + CustomerMapper customerMapper; + public Customer save(Customer customer) { return customerRepository.save(customer); } - + public Customer registerCustomer(CustomerRegisterDTO registDTO) { boolean isCustomerExist = checkCustomerExist(registDTO); if(isCustomerExist) { throw new UsernameAlreadyUsedException(); - + }else { String account = getCustomerAccount(registDTO); - + OtpTmp otpTmp = otpTmpService.findByAccountAndIndexKey(account, registDTO.getIndexKey()); if(otpTmp.getStatus() == OtpTmpStatusEnum.VERRIFIED) { Customer customer = customerDTOMapper.toCustomer(registDTO); @@ -54,9 +60,28 @@ + " => status: " + otpTmp.getStatus()); } } - + } + public void updateLoggedCustomer(CustomerDTO customerDTO) { + Long customerId = SecurityUtils.getCustomerId(); + Customer customer = customerRepository.findById(customerId) + .orElseThrow(() -> new UsernameNotFoundException("customerId which is from token is not found in customer db table, customer id = " + customerId)); + + customer.setEmail(customerDTO.getEmail()); + customer.setPhone(customerDTO.getPhone()); + customer.setName(customerDTO.getName()); + customerRepository.save(customer); + } + + public CustomerDTO getLoggedCustomerDTO() { + Long customerId = SecurityUtils.getCustomerId(); + Customer customer = customerRepository.findById(customerId) + .orElseThrow(() -> new UsernameNotFoundException("customerId which is from token is not found in customer db table, customer id = " + customerId)); + + return customerMapper.toDto(customer); + } + private String getCustomerAccount(CustomerRegisterDTO registDTO) { return registDTO.getContactType() == OtpLoginTypeEnum.EMAIL?registDTO.getEmail():registDTO.getPhone(); } -- Gitblit v1.8.0