lifuquan 2 rokov pred
rodič
commit
62fd1af046

BIN
lib/comp-connector-1.0.jar


+ 16 - 0
pom.xml

@@ -18,6 +18,22 @@
     </properties>
 
     <dependencies>
+        <!-- 能力商店sdk -->
+        <dependency>
+            <groupId>comp-connector</groupId>
+            <artifactId>comp-connector</artifactId>
+            <version>1.0</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/comp-connector-1.0.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>

+ 58 - 0
src/main/java/com/nokia/domainb/capability/AbstractQuery.java

@@ -0,0 +1,58 @@
+package com.nokia.domainb.capability;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.springframework.http.HttpHeaders;
+
+import com.alibaba.fastjson.JSONObject;
+
+import cn.chinaunicom.open.common.utils.MD5Util;
+
+public abstract class AbstractQuery {
+    // 河北联通移网投诉管理系统
+    protected static final String appId = "ENWaB7YdUD";
+    // 测试环境密钥
+    protected static final String appSecretTest = "MUwA8ZVBprY83mAZrtOfrMfjdiJ9RFXr";
+    // 生产环境密钥
+    protected static final String appSecret = "oz4OgKBaMNwi4LWfLPbhrPbbuCS8T0Rb";
+
+    protected static HttpHeaders getHeaders() {
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Content-Type", "application/json");
+        return headers;
+    }
+
+    protected static JSONObject getUniBSSHead(boolean test) {
+        Date date = new Date();
+        String timeStamp = getTimeStamp(date);
+        String transId = getTransId(date);
+
+        // UNI_BSS_HEAD
+        JSONObject uniBssHead = new JSONObject();
+        uniBssHead.put("APP_ID", appId);
+        uniBssHead.put("TIMESTAMP", timeStamp);
+        uniBssHead.put("TRANS_ID", transId);
+        uniBssHead.put("TOKEN", getToken(timeStamp, transId, test));
+        return uniBssHead;
+    }
+
+    protected static String getTimeStamp(Date date) {
+        return (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS")).format(date);
+    }
+
+    protected static String getTransId(Date date) {
+        return (new SimpleDateFormat("yyyyMMddHHmmssSSS" + getRandomNumber())).format(date);
+    }
+
+    protected static Object getToken(String timeStamp, String transId, boolean test) {
+        String realAppSecret = test ? appSecretTest : appSecret;
+        String beforeEncode = "APP_ID" + appId + "TIMESTAMP" + timeStamp + "TRANS_ID" + transId + realAppSecret;
+        return MD5Util.md5encode(beforeEncode);
+    }
+
+    private static int getRandomNumber() {
+        return (int) ((Math.random() * 9.0D + 1.0D) * 100000.0D);
+    }
+
+}

+ 47 - 0
src/main/java/com/nokia/domainb/capability/GetEcredit.java

@@ -0,0 +1,47 @@
+package com.nokia.domainb.capability;
+
+import java.util.Date;
+
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * 用户信用度查询 json_microservice_users_getEcredit
+ * 不支持post方法
+ */
+public class GetEcredit extends AbstractQuery {
+    private static final String url = "http://10.245.34.209:8000/api/microservice/users/getEcredit/v1";
+    private static final String urlTest = "http://10.124.150.230:8000/api/microservice/users/getEcredit/v1";
+
+    public String query(String phoneNumber) {
+        return query(phoneNumber, false);
+    }
+
+    public String query(String phoneNumber, boolean test) {
+        String realUrl = test ? urlTest : url;
+
+        StringBuilder sb = new StringBuilder();
+        sb.append("SERIAL_NUMBER=").append(phoneNumber);
+        sb.append("&").append("SERVICE_CLASS_CODE=").append("50");
+        sb.append("&").append("APP_ID=").append(appId);
+
+        Date date = new Date();
+        String timeStamp = getTimeStamp(date);
+        String transId = getTransId(date);
+        sb.append("&").append("TIMESTAMP=").append(timeStamp);
+        sb.append("&").append("TRANS_ID=").append(transId);
+        sb.append("&").append("TOKEN=").append(getToken(timeStamp, transId, test));
+
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<String> response = restTemplate.getForEntity(realUrl + "?" + sb.toString(), String.class);
+        return response.getBody();
+
+        // 不支持post方法
+        // COMPConnection compConnection = new COMPJsonConnection(appId, realAppSecret);
+        // Map<String, Object> uniBssBody = new HashMap<>();
+        // uniBssBody.put("SERIAL_NUMBER", phoneNumber);
+        // uniBssBody.put("SERVICE_CLASS_CODE", "50");
+        // return compConnection.excute(Const.HttpMethodType.POST, realUrl, uniBssBody,
+        // false);
+    }
+}

+ 81 - 0
src/main/java/com/nokia/domainb/capability/QryRouteAll.java

@@ -0,0 +1,81 @@
+package com.nokia.domainb.capability;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.http.HttpEntity;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import com.alibaba.fastjson.JSONObject;
+
+import cn.chinaunicom.open.common.Const;
+import cn.chinaunicom.open.nlgxptconnection.COMPConnection;
+import cn.chinaunicom.open.nlgxptconnection.COMPConnectionContext;
+import cn.chinaunicom.open.nlgxptconnection.impl.COMPJsonConnection;
+
+/**
+ * 路由查询
+ */
+public class QryRouteAll extends AbstractQuery {
+    // 测试环境url
+    private static final String urlTest = "http://10.124.150.230:8000/api/microservice/routes/qryrouteall/v1";
+    // 生产环境url
+    private static final String url = "http://10.245.34.209:8000/api/microservice/routes/qryrouteall/v1";
+
+    public String query(String phoneNumber) {
+        return query(phoneNumber, false);
+    }
+
+    // 使用RestTemplate查询
+    public String query(String phoneNumber, boolean test) {
+        // 整体包装
+        JSONObject compParamObject = new JSONObject();
+        // UNI_BSS_HEAD
+        compParamObject.put("UNI_BSS_HEAD", getUniBSSHead(test));
+        // UNI_BSS_BODY
+        JSONObject uniBSSBody = new JSONObject();
+        // QRYROUTEALL_REQ
+        JSONObject qryRouteAllReq = new JSONObject();
+        // REQ
+        JSONObject req = new JSONObject();
+        // 查询号码
+        req.put("ROUTE_VALUE", phoneNumber);
+        // 网别 支持 30固话 40宽带 50移网
+        req.put("NET_TYPE_CODE", 50);
+        qryRouteAllReq.put("REQ", req);
+        uniBSSBody.put("QRYROUTEALL_REQ", qryRouteAllReq);
+        compParamObject.put("UNI_BSS_BODY", uniBSSBody);
+
+        String realUrl = test ? urlTest : url;
+
+        RestTemplate restTemplate = new RestTemplate();
+        ResponseEntity<String> response = restTemplate.postForEntity(realUrl,
+                new HttpEntity<>(compParamObject, getHeaders()), String.class);
+        return response.getBody();
+    }
+
+    public COMPConnectionContext queryWithSdk(String phoneNumber) {
+        return queryWithSdk(phoneNumber, false);
+    }
+
+    // 使用能力商店SDK查询
+    public COMPConnectionContext queryWithSdk(String phoneNumber, boolean test) {
+        String realAppSecret = test ? appSecretTest : appSecret;
+        String realUrl = test ? urlTest : url;
+        COMPConnection compConnection = new COMPJsonConnection(appId, realAppSecret);
+        // REQ
+        Map<String, Object> req = new HashMap<>();
+        // 查询号码
+        req.put("ROUTE_VALUE", phoneNumber);
+        // 网别 支持 30固话 40宽带 50移网
+        req.put("NET_TYPE_CODE", "50");
+        // QRYROUTEALL_REQ
+        Map<String, Object> qryRouteAllReq = new HashMap<>();
+        qryRouteAllReq.put("REQ", req);
+        Map<String, Object> uniBssBody = new HashMap<>();
+        uniBssBody.put("QRYROUTEALL_REQ", qryRouteAllReq);
+        return compConnection.excute(Const.HttpMethodType.POST, realUrl, uniBssBody, false);
+    }
+
+}

+ 17 - 0
src/test/java/com/nokia/domainb/capability/GetEcreditTest.java

@@ -0,0 +1,17 @@
+package com.nokia.domainb.capability;
+
+import org.junit.jupiter.api.Test;
+
+public class GetEcreditTest {
+    @Test
+    void testQuery() {
+
+    }
+
+    @Test
+    void testQuery2() {
+        GetEcredit getEcredit = new GetEcredit();
+        String result = getEcredit.query("13231899751", true);
+        System.out.println(result);
+    }
+}

+ 21 - 0
src/test/java/com/nokia/domainb/capability/QryRouteAllTest.java

@@ -0,0 +1,21 @@
+package com.nokia.domainb.capability;
+
+import org.junit.jupiter.api.Test;
+
+import cn.chinaunicom.open.nlgxptconnection.COMPConnectionContext;
+
+public class QryRouteAllTest {
+    @Test
+    void testQuery() {
+        QryRouteAll qryRouteAll = new QryRouteAll();
+        String result = qryRouteAll.query("13739798862");
+        System.out.println(result);
+    }
+
+    @Test
+    void testQueryWithSdk() {
+        QryRouteAll qryRouteAll = new QryRouteAll();
+        COMPConnectionContext result = qryRouteAll.queryWithSdk("13739798862");
+        System.out.println(result.getResponseContext());
+    }
+}