From 0632b21db7576e4a223eb4f6ca09b650616222f2 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 17 一月 2024 09:54:09 +0800
Subject: [PATCH] Fixed: 移除 lodash, @type/lodash 導致的 side-effect

---
 pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java |   66 +++++++++++++++++---------------
 1 files changed, 35 insertions(+), 31 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java b/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java
index 144e202..d3f1874 100644
--- a/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java
+++ b/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java
@@ -1,16 +1,16 @@
 package com.pollex.pam.service;
 
 import com.pollex.pam.config.ApplicationProperties;
-import com.pollex.pam.service.dto.OtpResponseDTO;
+import com.pollex.pam.business.service.dto.OtpResponseDTO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import tw.com.softleader.otp.ws.OtpWebServiceLocator;
-import tw.com.softleader.otp.ws.OtpWebServicePortBindingStub;
+import tw.com.softleader.otp.ws.OtpWeb;
+import tw.com.softleader.otp.ws.StringArray;
 
-import javax.xml.rpc.ServiceException;
-import java.rmi.RemoteException;
+import java.net.MalformedURLException;
+import java.net.URL;
 
 @Service
 public class OtpWebService {
@@ -20,43 +20,47 @@
     @Autowired
     ApplicationProperties applicationProperty;
 
-    public OtpResponseDTO sendByPhone(String phone) throws ServiceException, RemoteException {
-        OtpWebServicePortBindingStub stub = getOtpWebServicePortBindingStub();
-        log.info("call OtpService sendOtpBySMS, url = {}, systemType = {}, service password = {}, phone = {}",
-            applicationProperty.getOtpWebServiceUrl(), applicationProperty.getOtpWebServiceSystemType(), applicationProperty.getOtpWebServicePassword(), phone);
+    public OtpResponseDTO sendByPhone(String phone) {
+        OtpWeb otpWS = getOtpWebService();
+//        log.debug("call OtpService sendOtpBySMS, url = {}, systemType = {}, service password = {}, phone = {}",
+//            applicationProperty.getOtpWebServiceUrl(), applicationProperty.getOtpWebServiceSystemType(), applicationProperty.getOtpWebServicePassword(), phone);
 
-        String[] result =
-            stub.sendOtpBySMS(applicationProperty.getOtpWebServicePassword(), applicationProperty.getOtpWebServiceSystemType(), phone);
+        StringArray result =
+            otpWS.sendOtpBySMS(applicationProperty.getOtpWebServicePassword(), applicationProperty.getOtpWebServiceSystemType(), phone);
 
-        return new OtpResponseDTO(result);
+        return new OtpResponseDTO(result.getItem());
     }
 
-    public OtpResponseDTO sendByEmail(String email) throws ServiceException, RemoteException {
-        OtpWebServicePortBindingStub stub = getOtpWebServicePortBindingStub();
-        log.info("call OtpService sendByEmail, url = {}, systemType = {}, service password = {}, email = {}",
-            applicationProperty.getOtpWebServiceUrl(), applicationProperty.getOtpWebServiceSystemType(), applicationProperty.getOtpWebServicePassword(), email);
+    public OtpResponseDTO sendByEmail(String email) {
+        OtpWeb otpWS = getOtpWebService();
+//        log.debug("call OtpService sendByEmail, url = {}, systemType = {}, service password = {}, email = {}",
+//            applicationProperty.getOtpWebServiceUrl(), applicationProperty.getOtpWebServiceSystemType(), applicationProperty.getOtpWebServicePassword(), email);
 
-        String[] result =
-            stub.sendOtpByEmail(applicationProperty.getOtpWebServicePassword(), applicationProperty.getOtpWebServiceSystemType(), email);
+        StringArray result =
+            otpWS.sendOtpByEmail(applicationProperty.getOtpWebServicePassword(), applicationProperty.getOtpWebServiceSystemType(), email);
 
-        return new OtpResponseDTO(result);
+        return new OtpResponseDTO(result.getItem());
     }
 
-    public OtpResponseDTO verifyOTP(String indexKey, String otpCode) throws ServiceException, RemoteException {
-        OtpWebServicePortBindingStub stub = getOtpWebServicePortBindingStub();
-        log.info("call OtpService verifyOTP, url = {}, systemType = {}, service password = {}, indexKey = {}, otpCode = {}",
-            applicationProperty.getOtpWebServiceUrl(), applicationProperty.getOtpWebServiceSystemType(), applicationProperty.getOtpWebServicePassword(), indexKey, otpCode);
+    public OtpResponseDTO verifyOTP(String indexKey, String otpCode) {
+        OtpWeb otpWS = getOtpWebService();
+//        log.debug("call OtpService verifyOTP, url = {}, systemType = {}, service password = {}, indexKey = {}, otpCode = {}",
+//            applicationProperty.getOtpWebServiceUrl(), applicationProperty.getOtpWebServiceSystemType(), applicationProperty.getOtpWebServicePassword(), indexKey, otpCode);
 
-        String[] result =
-            stub.verifyOtp(applicationProperty.getOtpWebServicePassword(), applicationProperty.getOtpWebServiceSystemType(), indexKey, otpCode);
+        StringArray result =
+            otpWS.verifyOtp(applicationProperty.getOtpWebServicePassword(), applicationProperty.getOtpWebServiceSystemType(), indexKey, otpCode);
 
-        return new OtpResponseDTO(result);
+        return new OtpResponseDTO(result.getItem());
     }
 
-    public OtpWebServicePortBindingStub getOtpWebServicePortBindingStub() throws ServiceException {
-        OtpWebServiceLocator locator = new OtpWebServiceLocator();
-        locator.setOtpWebServicePortEndpointAddress(applicationProperty.getOtpWebServiceUrl());
-
-        return (OtpWebServicePortBindingStub) locator.getOtpWebServicePort();
+    public OtpWeb getOtpWebService() {
+        final String wsUrl = applicationProperty.getOtpWebServiceUrl();
+        try {
+            tw.com.softleader.otp.ws.OtpWebService locator
+                = new tw.com.softleader.otp.ws.OtpWebService(new URL(wsUrl));
+            return locator.getOtpWebPort();
+        } catch (MalformedURLException e) {
+            throw new IllegalArgumentException("Invalid url: " + wsUrl, e);
+        }
     }
 }

--
Gitblit v1.8.0