保誠-保戶業務員媒合平台
[UPDATE] 新增重複帳號註冊的檢核,直接拋出500的錯誤訊息
[UPDATE] 調整dev設定檔(auto-commit=false),解決mvnw jdbc連線失敗的問題
修改2個檔案
40 ■■■■ 已變更過的檔案
pamapi/src/main/java/com/pollex/pam/service/CustomerService.java 39 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/resources/config/application-dev.yml 1 ●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
pamapi/src/main/java/com/pollex/pam/service/CustomerService.java
@@ -1,5 +1,7 @@
package com.pollex.pam.service;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
@@ -32,16 +34,33 @@
    }
    
    public String registerCustomer(CustomerRegisterDTO registDTO) {
        String account = registDTO.getContactType() == OtpLoginTypeEnum.EMAIL?registDTO.getEmail():registDTO.getPhone();
        OtpTmp otpTmp = otpTmpService.findByAccountAndIndexKey(account, registDTO.getIndexKey());
        if(otpTmp.getStatus() == OtpTmpStatusEnum.VERRIFIED) {
            Customer customer = customerDTOMapper.toCustomer(registDTO);
            save(customer);
            String jwt = customerAuthService.authorize(account, registDTO.getIndexKey(), registDTO.getOtpCode());
            return jwt;
        }else {
            throw new UsernameNotFoundException("Otp record not found");
        }
        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);
                save(customer);
                String jwt = customerAuthService.authorize(account, registDTO.getIndexKey(), registDTO.getOtpCode());
                return jwt;
            }else {
                throw new UsernameNotFoundException("Otp record not found");
            }
        }
        
    }
    private String getCustomerAccount(CustomerRegisterDTO registDTO) {
        return registDTO.getContactType() == OtpLoginTypeEnum.EMAIL?registDTO.getEmail():registDTO.getPhone();
    }
    private boolean checkCustomerExist(CustomerRegisterDTO registDTO) {
        String account = getCustomerAccount(registDTO);
        Optional<Customer> customer = customerRepository.findOneByEmailEqualsOrPhoneEquals(account, account);
        return customer.isPresent();
    }
}
pamapi/src/main/resources/config/application-dev.yml
@@ -37,6 +37,7 @@
    password: pamadmin
    hikari:
      poolName: Hikari
      auto-commit: false
  jpa:
    database-platform: tech.jhipster.domain.util.FixedPostgreSQL10Dialect
  liquibase: