Selaa lähdekoodia

fix 新增第三方查询企业信息

Administrator 3 vuotta sitten
vanhempi
commit
287502360e

+ 17 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/BmProjectController.java

@@ -252,7 +252,7 @@ public class BmProjectController extends BaseController {
      * 首页-统计数字(只根据当前登录人的部门)
      */
     @PostMapping("/indexInfo")
-    public AjaxResult  indexInfo (BmProject bmProject) {
+    public AjaxResult indexInfo(BmProject bmProject) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long deptId = -1L;
         if (ObjectUtil.isNotNull(loginUser)) {
@@ -272,6 +272,21 @@ public class BmProjectController extends BaseController {
             }
         }
         bmProject.setDeptId(deptId);
-      return   bmProjectService.indexInfo(bmProject);
+        return bmProjectService.indexInfo(bmProject);
+    }
+
+
+    /**
+     * 通过企查查,查询企业信息
+     *
+     * @param searchKey
+     * @return
+     */
+    @GetMapping("/qichachaSearch/{searchKey}")
+    public AjaxResult qichachaSearch(@PathVariable("searchKey") String searchKey) {
+        if (StringUtils.isNotBlank(searchKey)){
+            return bmProjectService.qichachaSearch(searchKey);
+        }
+        return AjaxResult.success();
     }
 }

+ 1 - 0
ruoyi-common/pom.xml

@@ -47,6 +47,7 @@
             <artifactId>jimureport-font</artifactId>
             <version>1.1.0</version>
         </dependency>
+        <!--本地积木-->
 <!--        <dependency>
             <groupId>com.boman</groupId>
             <artifactId>boman-report</artifactId>

+ 40 - 51
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -14,11 +14,10 @@ import org.apache.commons.lang3.time.DateFormatUtils;
 
 /**
  * 时间工具类
- * 
+ *
  * @author ruoyi
  */
-public class DateUtils extends org.apache.commons.lang3.time.DateUtils
-{
+public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
     public static String YYYY = "yyyy";
 
     public static String YYYY_MM = "yyyy-MM";
@@ -29,35 +28,32 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
 
     public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
-    
+
     private static String[] parsePatterns = {
-            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", 
+            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
             "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
             "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM",
             "EEE MMM dd HH:mm:ss zzz yyyy"};
 
     /**
      * 获取当前Date型日期
-     * 
+     *
      * @return Date() 当前日期
      */
-    public static Date getNowDate()
-    {
+    public static Date getNowDate() {
         return new Date();
     }
 
     /**
      * 获取当前日期, 默认格式为yyyy-MM-dd
-     * 
+     *
      * @return String
      */
-    public static String getDate()
-    {
+    public static String getDate() {
         return dateTimeNow(YYYY_MM_DD);
     }
 
-    public static String getDateNow()
-    {
+    public static String getDateNow() {
         return dateTimeNow(YYYYMMDD);
     }
 
@@ -66,44 +62,34 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
      *
      * @return String
      */
-    public static String getYear()
-    {
+    public static String getYear() {
         return dateTimeNow(YYYY);
     }
 
-    public static final String getTime()
-    {
+    public static final String getTime() {
         return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
     }
 
-    public static final String dateTimeNow()
-    {
+    public static final String dateTimeNow() {
         return dateTimeNow(YYYYMMDDHHMMSS);
     }
 
-    public static final String dateTimeNow(final String format)
-    {
+    public static final String dateTimeNow(final String format) {
         return parseDateToStr(format, new Date());
     }
 
-    public static final String dateTime(final Date date)
-    {
+    public static final String dateTime(final Date date) {
         return parseDateToStr(YYYY_MM_DD, date);
     }
 
-    public static final String parseDateToStr(final String format, final Date date)
-    {
+    public static final String parseDateToStr(final String format, final Date date) {
         return new SimpleDateFormat(format).format(date);
     }
 
-    public static final Date dateTime(final String format, final String ts)
-    {
-        try
-        {
+    public static final Date dateTime(final String format, final String ts) {
+        try {
             return new SimpleDateFormat(format).parse(ts);
-        }
-        catch (ParseException e)
-        {
+        } catch (ParseException e) {
             throw new RuntimeException(e);
         }
     }
@@ -111,8 +97,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     /**
      * 日期路径 即年/月/日 如2018/08/08
      */
-    public static final String datePath()
-    {
+    public static final String datePath() {
         Date now = new Date();
         return DateFormatUtils.format(now, "yyyy/MM/dd");
     }
@@ -120,8 +105,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     /**
      * 日期路径 即年/月/日 如20180808
      */
-    public static final String dateTime()
-    {
+    public static final String dateTime() {
         Date now = new Date();
         return DateFormatUtils.format(now, "yyyyMMdd");
     }
@@ -129,18 +113,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     /**
      * 日期型字符串转化为日期 格式
      */
-    public static Date parseDate(Object str)
-    {
-        if (str == null)
-        {
+    public static Date parseDate(Object str) {
+        if (str == null) {
             return null;
         }
-        try
-        {
+        try {
             return parseDate(str.toString(), parsePatterns);
-        }
-        catch (ParseException e)
-        {
+        } catch (ParseException e) {
             return null;
         }
     }
@@ -149,6 +128,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
 
     /**
      * "EEE MMM dd HH:mm:ss zzz yyyy", Locale.US
+     *
      * @param str
      * @return
      */
@@ -163,12 +143,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         }
         return null;
     }
-    
+
     /**
      * 获取服务器启动时间
      */
-    public static Date getServerStartDate()
-    {
+    public static Date getServerStartDate() {
         long time = ManagementFactory.getRuntimeMXBean().getStartTime();
         return new Date(time);
     }
@@ -176,8 +155,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
     /**
      * 计算两个时间差
      */
-    public static String getDatePoor(Date endDate, Date nowDate)
-    {
+    public static String getDatePoor(Date endDate, Date nowDate) {
         long nd = 1000 * 24 * 60 * 60;
         long nh = 1000 * 60 * 60;
         long nm = 1000 * 60;
@@ -197,6 +175,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
 
     /**
      * LocalDate转Date
+     *
      * @param localDate
      * @return
      */
@@ -210,12 +189,22 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
 
     /**
      * Date转LocalDate
+     *
      * @param date
      */
     public static LocalDate date2LocalDate(Date date) {
-        if(null == date) {
+        if (null == date) {
             return null;
         }
         return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
     }
+
+    /**
+     * 获取时间戳
+     *
+     * @return
+     */
+    public static String getUnix() {
+        return Long.toString(System.currentTimeMillis() / 1000L);
+    }
 }

+ 82 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java

@@ -10,6 +10,7 @@ import java.net.SocketTimeoutException;
 import java.net.URL;
 import java.net.URLConnection;
 import java.security.cert.X509Certificate;
+import java.util.Map;
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.HttpsURLConnection;
 import javax.net.ssl.SSLContext;
@@ -104,6 +105,87 @@ public class HttpUtils
         return result.toString();
     }
 
+
+    /**
+     * 向指定 URL 发送GET方法的请求
+     *
+     * @param url 发送请求的 URL
+     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendGetMap(String url, String param,Map<String,String> map)
+    {
+        return sendGetMap(url, param, Constants.UTF8,map);
+    }
+
+    /**
+     * 向指定 URL 发送GET方法的请求(接收一个MAP头信息)
+     *
+     * @param url 发送请求的 URL
+     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @param contentType 编码类型
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendGetMap(String url, String param, String contentType, Map<String,String> map)
+    {
+        StringBuilder result = new StringBuilder();
+        BufferedReader in = null;
+        try
+        {
+            String urlNameString = url + "?" + param;
+            log.info("sendGet - {}", urlNameString);
+            URL realUrl = new URL(urlNameString);
+            URLConnection connection = realUrl.openConnection();
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            if (map != null && map.size() > 0){
+                for (String key : map.keySet()) {
+                    connection.setRequestProperty(key,map.get(key));
+                }
+            }
+            connection.connect();
+            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
+            String line;
+            while ((line = in.readLine()) != null)
+            {
+                result.append(line);
+            }
+            log.info("recv - {}", result);
+        }
+        catch (ConnectException e)
+        {
+            log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
+        }
+        catch (SocketTimeoutException e)
+        {
+            log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e);
+        }
+        catch (IOException e)
+        {
+            log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e);
+        }
+        catch (Exception e)
+        {
+            log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e);
+        }
+        finally
+        {
+            try
+            {
+                if (in != null)
+                {
+                    in.close();
+                }
+            }
+            catch (Exception ex)
+            {
+                log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
+            }
+        }
+        return result.toString();
+    }
+
     /**
      * 向指定 URL 发送POST方法的请求
      *

+ 1 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -117,6 +117,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/common/uploadBase").anonymous()
                 .antMatchers("/bmProjectReport/report").anonymous()
                 .antMatchers("/jmreport/**").anonymous()
+                .antMatchers("/bmProject/project/qichachaSearch/**").anonymous()
                 /*以下为测试新增,上线删除*/
 
                 // 除上面外的所有请求全部需要鉴权认证

+ 80 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/project/BmProjectServiceImpl.java

@@ -4,8 +4,11 @@ import java.math.BigDecimal;
 import java.util.*;
 
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.exceptions.ClientException;
+import com.google.gson.JsonObject;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysUser;
@@ -14,6 +17,8 @@ import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.SendSmsUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.common.utils.sign.Md5Utils;
 import com.ruoyi.system.domain.TextMessageLog;
 import com.ruoyi.system.domain.project.*;
 import com.ruoyi.system.domain.vo.BmDeptPlanVo;
@@ -25,6 +30,8 @@ import com.ruoyi.system.mapper.project.*;
 import com.ruoyi.system.service.project.IBmProjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import sun.security.provider.MD4;
+import sun.security.provider.MD5;
 
 import static com.ruoyi.common.constant.Constants.*;
 
@@ -85,6 +92,11 @@ public class BmProjectServiceImpl implements IBmProjectService {
     @Autowired
     private TextMessageLogMapper textMessageLogMapper;
 
+    /**
+     * 企查查
+     */
+    private static final String KEY = "e50f4b2011ea41a3ad489f0476160041";
+    private static final String SECRET_KEY = "BD8D23FCD36CDEE7E0B25DAB28588163";
 
     /**
      * 查询项目(添加线索)
@@ -465,4 +477,72 @@ public class BmProjectServiceImpl implements IBmProjectService {
         map.put("tc",tc);
         return AjaxResult.success(map);
     }
+
+    /**
+     * 通过企查查,查询企业信息
+     * @param searchKey
+     * @return
+     *
+     *  {
+     *   "Paging": {
+     *     "PageSize": 1,
+     *     "PageIndex": 1,
+     *     "TotalRecords": 19
+     *   },
+     *   "Result": [
+     *     {
+     *       "KeyNo": "f625a5b661058ba5082ca508f99ffe1b",
+     *       "Name": "企查查科技有限公司",
+     *       "CreditCode": "91320594088140947F",
+     *       "StartDate": "2014-03-12",
+     *       "OperName": "陈德强",
+     *       "Status": "存续",
+     *       "No": "320594000299470"
+     *     }
+     *   ],
+     *   "Status": "200",
+     *   "Message": "【有效请求】查询成功",
+     *   "OrderNumber": "FUZZYSEARCH2021070316421997519956"
+     * }
+     * key:e50f4b2011ea41a3ad489f0476160041
+     * SecretKey:BD8D23FCD36CDEE7E0B25DAB28588163
+     */
+    @Override
+    public AjaxResult qichachaSearch(String searchKey) {
+        //Headers头信息
+        Map<String,String> map = new HashMap<>();
+        StringBuilder sb = new StringBuilder();
+        String unix = DateUtils.getUnix();
+        map.put("Timespan", unix);
+        sb.append(KEY).append(unix).append(SECRET_KEY);
+        map.put("Token", Md5Utils.hash(sb.toString()).toUpperCase());
+        StringBuilder sbd = new StringBuilder();
+        sbd.append("key=").append(KEY).append("&").append("searchKey=").append(searchKey);
+        String s = HttpUtils.sendGetMap("http://api.qichacha.com/FuzzySearch/GetList",sbd.toString(),map);
+        JSONObject result = JSONObject.parseObject(s);
+        JSONArray resultOut = result.getJSONArray("Result");
+        if (resultOut != null){
+            return AjaxResult.success(resultOut);
+        }
+/*       List<Map<String,String>> list =  new ArrayList<>();
+        Map<String,String> mapHash  = new HashMap<>();
+        mapHash.put("KeyNo","dca20a8e527f6a9e0810fa27e62d6aeb");
+        mapHash.put("StartDate","2018-07-11");
+        mapHash.put("Status","存续");
+        mapHash.put("CreditCode","91340100MA2RWTYA7C");
+        mapHash.put("No","");
+        mapHash.put("OperName","江瑾");
+        mapHash.put("Name","安徽博曼网络科技有限公司");
+        list.add(mapHash);
+        Map<String,String> mapHash2  = new HashMap<>();
+        mapHash2.put("KeyNo","499ede50895e9be65d93c88dc1c67143");
+        mapHash2.put("StartDate","2018-07-11");
+        mapHash2.put("Status","存续");
+        mapHash2.put("CreditCode","91340124MA2UYAET7U");
+        mapHash2.put("No","");
+        mapHash2.put("OperName","谈家强");
+        mapHash2.put("Name","安徽博曼装饰工程有限公司");
+        list.add(mapHash2);*/
+        return AjaxResult.success(new ArrayList<>());
+    }
 }

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/project/IBmProjectService.java

@@ -111,4 +111,11 @@ public interface IBmProjectService
      * @return
      */
     AjaxResult indexInfo(BmProject bmProject);
+
+    /**
+     *通过企查查,查询企业信息
+     * @param searchKey
+     * @return
+     */
+    AjaxResult qichachaSearch(String searchKey);
 }