Forráskód Böngészése

将之前的企业税票查询功能(1.模糊查询;2.根据id获取企业详细信息 )封装成TicketQueryUtils。

user4 5 éve
szülő
commit
11b5e13a35

+ 255 - 0
src/main/java/com/jeeplus/common/utils/TicketQueryUtils.java

@@ -0,0 +1,255 @@
+package com.jeeplus.common.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.jeeplus.common.config.Global;
+
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLSession;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+名称:企业开票税号查询
+ * 功能:
+ * 1、根据关键字查询相关企业,或者根据企业信息的id查询企业的详细信息;
+ * 2、可以查到企业的名称、联系方式等基本信息;
+ * 3、可以查到公司纳税人识别号、注册地址等开发票需要的详细信息。
+ *
+ * 状态:
+ * 	    错误码	说明
+ *  	300001	请求header中没有设置apikey
+ *  	300002	api不存在或url无法解析
+ *  	300003	apikey不存在,请输入正确的apikey
+ *  	300004	服务剩余次数不足,请再次购买
+ *  	300005	未设置ip白名单
+ *  	300006	IP白名单中不包含您的IP
+ *  	300007	系统繁忙稍候再试
+ *  	300008	访问次数超载
+ *  	300009	未找到节流信息
+ *  	300010	header参数中缺少需签名的参数值
+ *  	300011	缺少需验证的参数列表
+ *  	300012	签名信息不匹配
+ *  	300013	header中缺少参数appkey
+ *  	300014	header中缺少参数appsecret
+ *  	300015	api已过期,请另行购买
+ *  	300017	要求必填参数为不能为空
+ *  	300018	api没有授权
+ */
+public class TicketQueryUtils {
+    private static final String ApiCode = Global.getYyApiCode();
+    private static final String searchByNameUrl = Global.getYyMhUrl();
+    private static final String ticketInfoQueryUrl = Global.getYyShUrl();
+
+    private static final String DEF_CHATSET = "UTF-8";
+    private static final int DEF_CONN_TIMEOUT = 30000;
+    private static final int DEF_READ_TIMEOUT = 30000;
+    private static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
+
+
+    /**
+     * 根据关键字查询相关企业
+     * @param keyword
+     * @return
+     */
+    public static String enterpriseSearchByName(String keyword){
+        String result =null;
+        String method = "GET";
+        String paramFormat = "form";
+        Map<String, Object> params = new HashMap<String, Object>();//请求参数
+        params.put("keyword", keyword);
+
+        Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
+        headerParams.put("apicode", ApiCode);//APICODE
+        try {
+            result = net(searchByNameUrl, params, headerParams, method, paramFormat);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    /**
+     * 根据id查询企业税号
+     * @param id
+     * @return
+     */
+    public static String enterpriseTicketInfoQueryById(String id){
+        String result =null;
+        String method = "GET";
+        String paramFormat = "form";
+        Map<String, Object> params = new HashMap<String, Object>();//请求参数
+        params.put("id", id);
+
+        Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
+        headerParams.put("apicode", ApiCode);//APICODE
+
+        try {
+            result = net(ticketInfoQueryUrl, params, headerParams, method, paramFormat);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    private static final HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
+        public boolean verify(String hostname, SSLSession session) {
+            return true;
+        }
+    };
+
+    /**
+     *
+     * @param strUrl 请求地址
+     * @param params 请求参数
+     * @param method 请求方法
+     * @return  网络请求字符串
+     * @throws Exception
+     */
+    public static String net(String strUrl, Map<String,Object> params, Map<String,Object> headerParams, String method, String paramFormat) throws Exception {
+        HttpURLConnection conn = null;
+        BufferedReader reader = null;
+        String rs = null;
+        try {
+            String contentType = null;
+            if(headerParams.containsKey("Content-Type"))
+                contentType = headerParams.get("Content-Type").toString();
+
+            StringBuffer sb = new StringBuffer();
+            if(method==null || method.equals("GET")){
+                strUrl = strUrl+"?"+urlencode(params);
+            }
+
+            trustAllHttpsCertificates();
+            HttpsURLConnection.setDefaultHostnameVerifier(DO_NOT_VERIFY);
+
+            URL url = new URL(strUrl);
+            conn = (HttpURLConnection) url.openConnection();
+            if(method==null || method.equals("GET")){
+                conn.setRequestMethod("GET");
+            }else{
+                conn.setRequestMethod("POST");
+                conn.setDoOutput(true);
+            }
+            conn.setRequestProperty("User-agent", userAgent);
+            for (String i : headerParams.keySet()) {
+                conn.setRequestProperty(i, headerParams.get(i).toString());
+            }
+            if("form".equals(paramFormat) && !"application/x-www-form-urlencoded".equals(contentType) && !"application/xml".equals(contentType)) {
+                conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
+            }
+            conn.setUseCaches(false);
+            conn.setConnectTimeout(DEF_CONN_TIMEOUT);
+            conn.setReadTimeout(DEF_READ_TIMEOUT);
+            conn.setInstanceFollowRedirects(false);
+            conn.connect();
+            if (params!= null && method.equals("POST")) {
+                try {
+                    OutputStream out = conn.getOutputStream();
+                    if("form".equals(paramFormat)) {
+                        if("application/x-www-form-urlencoded".equals(contentType))
+                            out.write(urlencode(params).getBytes("utf-8"));
+                        else if("application/xml".equals(contentType))
+                            out.write(xmlencode(params).getBytes("utf-8"));
+                        else
+                            out.write(jsonencode(params).getBytes("utf-8"));
+                    } else
+                        out.write(params.toString().getBytes("utf-8"));
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+            InputStream is = conn.getInputStream();
+            reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
+            String strRead = null;
+            while ((strRead = reader.readLine()) != null) {
+                sb.append(strRead);
+            }
+            rs = sb.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if (reader != null) {
+                reader.close();
+            }
+            if (conn != null) {
+                conn.disconnect();
+            }
+        }
+        return rs;
+    }
+
+    //将map型转为请求参数型
+    public static String urlencode(Map<String,Object>data) {
+        StringBuilder sb = new StringBuilder();
+        for (Map.Entry i : data.entrySet()) {
+            try {
+                if(("").equals(i.getKey())) {
+                    sb.append(URLEncoder.encode(i.getValue()+"","UTF-8"));
+                } else {
+                    sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
+                }
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+        return sb.toString();
+    }
+
+    //将map型转为请求参数型
+    public static String jsonencode(Map<String,Object>data) {
+        JSONObject jparam = new JSONObject();
+        for (Map.Entry i : data.entrySet())
+            jparam.put((String) i.getKey(), i.getValue());
+
+        return jparam.toString();
+    }
+
+    //将map型转为请求参数型
+    public static String xmlencode(Map<String,Object>data) {
+        StringBuffer xmlData = new StringBuffer();
+        xmlData.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+        for (Map.Entry i : data.entrySet())
+            xmlData.append("<" + i.getKey() + ">" + i.getValue() + "</" + i.getKey() + ">");
+
+        return xmlData.toString();
+    }
+
+    static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
+        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+            return null;
+        }
+
+        public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
+            return true;
+        }
+
+        public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
+            return true;
+        }
+
+        public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
+                throws java.security.cert.CertificateException {
+            return;
+        }
+
+        public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
+                throws java.security.cert.CertificateException {
+            return;
+        }
+    }
+
+    private static void trustAllHttpsCertificates() throws Exception {
+        javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
+        javax.net.ssl.TrustManager tm = new miTM();
+        trustAllCerts[0] = tm;
+        javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
+        sc.init(null, trustAllCerts, null);
+        javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+    }
+}

+ 0 - 165
src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java

@@ -70,11 +70,6 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
     @Autowired
     private AreaDao areaDao;
 
-    private static final String DEF_CHATSET = "UTF-8";
-    private static final int DEF_CONN_TIMEOUT = 30000;
-    private static final int DEF_READ_TIMEOUT = 30000;
-    private static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
-
     public WorkClientInfo get(String id) {
 	    if(StringUtils.isBlank(id)){
 	        return new WorkClientInfo();
@@ -571,164 +566,4 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
         page.setList(workClientBankDao.findList(workClientBank));
         return page;
     }
-
-    //企业开票税号查询
-
-    private static final HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
-        public boolean verify(String hostname, SSLSession session) {
-            return true;
-        }
-    };
-
-    /**
-     *
-     * @param strUrl 请求地址
-     * @param params 请求参数
-     * @param method 请求方法
-     * @return  网络请求字符串
-     * @throws Exception
-     */
-    public static String net(String strUrl, Map<String,Object> params, Map<String,Object> headerParams, String method, String paramFormat) throws Exception {
-        HttpURLConnection conn = null;
-        BufferedReader reader = null;
-        String rs = null;
-        try {
-            String contentType = null;
-            if(headerParams.containsKey("Content-Type"))
-                contentType = headerParams.get("Content-Type").toString();
-
-            StringBuffer sb = new StringBuffer();
-            if(method==null || method.equals("GET")){
-				strUrl = strUrl+"?"+urlencode(params);
-            }
-
-            trustAllHttpsCertificates();
-            HttpsURLConnection.setDefaultHostnameVerifier(DO_NOT_VERIFY);
-
-            URL url = new URL(strUrl);
-            conn = (HttpURLConnection) url.openConnection();
-            if(method==null || method.equals("GET")){
-                conn.setRequestMethod("GET");
-            }else{
-                conn.setRequestMethod("POST");
-                conn.setDoOutput(true);
-            }
-            conn.setRequestProperty("User-agent", userAgent);
-            for (String i : headerParams.keySet()) {
-                conn.setRequestProperty(i, headerParams.get(i).toString());
-            }
-            if("form".equals(paramFormat) && !"application/x-www-form-urlencoded".equals(contentType) && !"application/xml".equals(contentType)) {
-                conn.setRequestProperty("Content-Type", "application/json;charset=utf-8");
-            }
-            conn.setUseCaches(false);
-            conn.setConnectTimeout(DEF_CONN_TIMEOUT);
-            conn.setReadTimeout(DEF_READ_TIMEOUT);
-            conn.setInstanceFollowRedirects(false);
-            conn.connect();
-            if (params!= null && method.equals("POST")) {
-                try {
-                    OutputStream out = conn.getOutputStream();
-                    if("form".equals(paramFormat)) {
-                        if("application/x-www-form-urlencoded".equals(contentType))
-                            out.write(urlencode(params).getBytes("utf-8"));
-                        else if("application/xml".equals(contentType))
-                            out.write(xmlencode(params).getBytes("utf-8"));
-                        else
-                            out.write(jsonencode(params).getBytes("utf-8"));
-                    } else
-                        out.write(params.toString().getBytes("utf-8"));
-
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-            InputStream is = conn.getInputStream();
-            reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
-            String strRead = null;
-            while ((strRead = reader.readLine()) != null) {
-                sb.append(strRead);
-            }
-            rs = sb.toString();
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            if (reader != null) {
-                reader.close();
-            }
-            if (conn != null) {
-                conn.disconnect();
-            }
-        }
-        return rs;
-    }
-
-    //将map型转为请求参数型
-    public static String urlencode(Map<String,Object>data) {
-        StringBuilder sb = new StringBuilder();
-        for (Map.Entry i : data.entrySet()) {
-            try {
-                if(("").equals(i.getKey())) {
-                    sb.append(URLEncoder.encode(i.getValue()+"","UTF-8"));
-                } else {
-                    sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
-                }
-            } catch (UnsupportedEncodingException e) {
-                e.printStackTrace();
-            }
-        }
-        return sb.toString();
-    }
-
-    //将map型转为请求参数型
-    public static String jsonencode(Map<String,Object>data) {
-        JSONObject jparam = new JSONObject();
-        for (Map.Entry i : data.entrySet())
-            jparam.put((String) i.getKey(), i.getValue());
-
-        return jparam.toString();
-    }
-
-    //将map型转为请求参数型
-    public static String xmlencode(Map<String,Object>data) {
-        StringBuffer xmlData = new StringBuffer();
-        xmlData.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
-        for (Map.Entry i : data.entrySet())
-            xmlData.append("<" + i.getKey() + ">" + i.getValue() + "</" + i.getKey() + ">");
-
-        return xmlData.toString();
-    }
-
-    static class miTM implements javax.net.ssl.TrustManager, javax.net.ssl.X509TrustManager {
-        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
-            return null;
-        }
-
-        public boolean isServerTrusted(java.security.cert.X509Certificate[] certs) {
-            return true;
-        }
-
-        public boolean isClientTrusted(java.security.cert.X509Certificate[] certs) {
-            return true;
-        }
-
-        public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType)
-                throws java.security.cert.CertificateException {
-            return;
-        }
-
-        public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType)
-                throws java.security.cert.CertificateException {
-            return;
-        }
-    }
-
-    private static void trustAllHttpsCertificates() throws Exception {
-        javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
-        javax.net.ssl.TrustManager tm = new miTM();
-        trustAllCerts[0] = tm;
-        javax.net.ssl.SSLContext sc = javax.net.ssl.SSLContext.getInstance("SSL");
-        sc.init(null, trustAllCerts, null);
-        javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
-    }
-
 }

+ 4 - 34
src/main/java/com/jeeplus/modules/workclientinfo/web/WorkClientInfoController.java

@@ -14,6 +14,7 @@ import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.TicketQueryUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
@@ -65,10 +66,6 @@ public class WorkClientInfoController extends BaseController {
 	@Autowired
 	private HttpServletRequest request;
 
-	private static final String ApiCode = Global.getYyApiCode();
-	private static final String searchByNameUrl = Global.getYyMhUrl();
-	private static final String ticketInfoQueryUrl = Global.getYyShUrl();
-
 	@ModelAttribute
 	public WorkClientInfo get(@RequestParam(required=false) String id) {
 		WorkClientInfo entity = null;
@@ -582,24 +579,11 @@ public class WorkClientInfoController extends BaseController {
 	 */
 	@ResponseBody
 	@RequestMapping("enterpriseSearchByName")
-	public Object enterpriseSearchByName(String keyword){
+	public String enterpriseSearchByName(String keyword){
 		if(StringUtils.isBlank(keyword)){
 			return null;
 		}
-		String result =null;
-		String method = "GET";
-		String paramFormat = "form";
-		Map<String, Object> params = new HashMap<String, Object>();//请求参数
-		params.put("keyword", keyword);
-
-		Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
-		headerParams.put("apicode", ApiCode);//APICODE
-		try {
-			result = workClientInfoService.net(searchByNameUrl, params, headerParams, method, paramFormat);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
+		return  TicketQueryUtils.enterpriseSearchByName(keyword);
 	}
 
 	/**
@@ -613,20 +597,6 @@ public class WorkClientInfoController extends BaseController {
 		if(StringUtils.isBlank(id)){
 			return null;
 		}
-		String result =null;
-		String method = "GET";
-		String paramFormat = "form";
-		Map<String, Object> params = new HashMap<String, Object>();//请求参数
-		params.put("id", id);
-
-		Map<String, Object> headerParams = new HashMap<String, Object>();//请求头参数
-		headerParams.put("apicode", ApiCode);//APICODE
-
-		try {
-			result = workClientInfoService.net(ticketInfoQueryUrl, params, headerParams, method, paramFormat);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
+		return TicketQueryUtils.enterpriseTicketInfoQueryById(id);
 	}
 }