From 6ae0901878f342a9c1025c8edc302bdf03f58a6d Mon Sep 17 00:00:00 2001
From: xusd <hugeinfo123>
Date: Wed, 18 Sep 2024 17:37:00 +0800
Subject: [PATCH] 新增获取企业信息接口
---
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCompanyService.java | 73 ++++++++++++++++++
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCompanyDTO.java | 32 ++++++++
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyVo.java | 33 ++++++++
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridCompanyController.java | 28 +++++++
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyRequestVo.java | 9 ++
dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/AesUtils.java | 45 ++++++++++
6 files changed, 217 insertions(+), 3 deletions(-)
diff --git a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/AesUtils.java b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/AesUtils.java
index 81bf49d..573f867 100644
--- a/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/AesUtils.java
+++ b/dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/AesUtils.java
@@ -2,10 +2,17 @@
import cn.huge.base.common.exception.BaseException;
import com.thoughtworks.xstream.core.util.Base64Encoder;
+import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.binary.Hex;
-import javax.crypto.Cipher;
+import javax.crypto.*;
+import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
/**
* @title: aes加密工具
@@ -29,8 +36,13 @@
*/
public static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";
+ private static final String iv = "1qaz#EDC123456(,";
+ private static final String Algorithm = "AES";
+ private static final String AlgorithmProvider = "AES/CBC/PKCS5Padding";
+
/**
* 加密
+ *
* @param content
* @return
* @throws Exception
@@ -51,6 +63,7 @@
/**
* 加密
+ *
* @param content
* @return
* @throws Exception
@@ -71,6 +84,7 @@
/**
* 加密
+ *
* @param data 返回数据
* @return ReturnBo
* @throws Exception
@@ -78,7 +92,7 @@
public static byte[] encodeByte(Object data) {
try {
//加密
- byte[] raw =AES_PASSWORD.getBytes();
+ byte[] raw = AES_PASSWORD.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
@@ -92,6 +106,7 @@
/**
* 解密
+ *
* @param content
* @return
* @throws Exception
@@ -113,6 +128,7 @@
/**
* 解密
+ *
* @param content
* @return
* @throws Exception
@@ -128,12 +144,35 @@
byte[] contentByte = new Base64().decode(content);
byte[] result = cipher.doFinal(contentByte);
//AES解密
- return new String(result,"utf-8");
+ return new String(result, "utf-8");
} catch (Exception e) {
throw new BaseException("AesUtils.decode", e);
}
}
+
+ public static String decrypt(String enc, String uniqueKey) throws NoSuchPaddingException, NoSuchAlgorithmException, UnsupportedEncodingException, InvalidAlgorithmParameterException, InvalidKeyException, DecoderException, IllegalBlockSizeException, BadPaddingException {
+ byte[] key = uniqueKey.getBytes();
+ SecretKey secretKey = new SecretKeySpec(key, Algorithm);
+ IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes("utf-8"));
+ Cipher cipher = Cipher.getInstance(AlgorithmProvider);
+ cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
+ byte[] hexBytes = hexStringToBytes(enc);
+ byte[] plainBytes = cipher.doFinal(hexBytes);
+ return new String(plainBytes, "UTF-8");
+ }
+
+ /**
+ * 将16进制字符串转换为byte数组
+ *
+ * @param hexString
+ * @return
+ */
+ private static byte[] hexStringToBytes(String hexString) throws DecoderException {
+ return Hex.decodeHex(hexString);
+ }
+
+
/**
* 字节数组转Base64编码
*
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridCompanyController.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridCompanyController.java
new file mode 100644
index 0000000..c5fbdc9
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridCompanyController.java
@@ -0,0 +1,28 @@
+package cn.huge.module.grid.controller;
+
+import cn.huge.base.common.bo.R;
+import cn.huge.module.grid.domain.dto.GridCompanyDTO;
+import cn.huge.module.grid.domain.vo.GridCompanyVo;
+import cn.huge.module.grid.domain.vo.GridTokenVo;
+import cn.huge.module.grid.domain.vo.GridUserVo;
+import cn.huge.module.grid.service.GridCompanyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/api/thrid/grid/company")
+public class GridCompanyController {
+ @Resource
+ private GridCompanyService gridCompanyService;
+
+ @PostMapping("/get-company-list")
+ public R<GridCompanyDTO> getCompanyList(@RequestBody GridCompanyVo gridCompanyVo) throws Exception {
+ return gridCompanyService.getCompanyList(gridCompanyVo);
+ }
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCompanyDTO.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCompanyDTO.java
new file mode 100644
index 0000000..19ada28
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCompanyDTO.java
@@ -0,0 +1,32 @@
+package cn.huge.module.grid.domain.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class GridCompanyDTO {
+ private long current;
+ private long size;
+ private long total;
+ private long pages;
+ private List<UnitDTO> records;
+
+ @Data
+ public static class UnitDTO {
+ private String id;
+ private String name;
+ private String socialCreditCode;
+ private String businessRegAddress;
+ private String state;
+ private String gridCode;
+ private String gridName;
+ private String legalRepresent;
+ private String idCardType;
+ private String idNumber;
+ private String legalPersonTelephone;
+
+ }
+
+
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyRequestVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyRequestVo.java
new file mode 100644
index 0000000..57a5877
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyRequestVo.java
@@ -0,0 +1,9 @@
+package cn.huge.module.grid.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class GridCompanyRequestVo {
+ private HeadVo headVo;
+ private GridCompanyVo bodyVo;
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyVo.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyVo.java
new file mode 100644
index 0000000..e158209
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyVo.java
@@ -0,0 +1,33 @@
+package cn.huge.module.grid.domain.vo;
+
+import lombok.Data;
+
+@Data
+public class GridCompanyVo {
+ /**
+ * 综合查询
+ */
+ private String integratedQuery;
+ /**
+ * 自助申报状态
+ */
+ private Integer state;
+ /**
+ * 网格编码
+ */
+ private String gridCode;
+ /**
+ * 是否需要返回总数
+ */
+ private Boolean needCount;
+ /**
+ * 页码
+ */
+
+ private int page;
+ /**
+ * 页面size
+ */
+
+ private int pageSize;
+}
diff --git a/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCompanyService.java b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCompanyService.java
new file mode 100644
index 0000000..1a14f5a
--- /dev/null
+++ b/dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCompanyService.java
@@ -0,0 +1,73 @@
+package cn.huge.module.grid.service;
+
+import cn.huge.base.common.bo.R;
+import cn.huge.base.common.utils.AesUtils;
+import cn.huge.base.common.utils.HttpClientUtils;
+import cn.huge.module.grid.domain.dto.GridCompanyDTO;
+import cn.huge.module.grid.domain.vo.*;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.List;
+import java.util.UUID;
+
+import static cn.huge.base.common.utils.AesUtils.KEY_ALGORITHM;
+
+@Slf4j
+@Service
+public class GridCompanyService {
+ @Value("${grid.url:http://219.137.166.84:8061}")
+ private String gridUrl;
+ @Value("${grid.username:mtxt0011}")
+ private String userName;
+ @Value("${grid.password}")
+ private String passWord;
+
+ public R<GridCompanyDTO> getCompanyList(@RequestBody GridCompanyVo gridCompanyVo) throws Exception {
+ HeadVo headVo = initHeadVo();
+ GridCompanyRequestVo requestVo = new GridCompanyRequestVo();
+ requestVo.setHeadVo(headVo);
+ requestVo.setBodyVo(gridCompanyVo);
+ log.info("xsd:{}", JSON.toJSONString(requestVo));
+ log.info("xsd:{}", gridUrl + "/sbss/unit/getList");
+ String s = null;
+ try {
+ s = HttpClientUtils.httpPostRaw(gridUrl + "/sbss/unit/getList", JSON.toJSONString(requestVo), new HashMap<>(), "utf-8");
+ } catch (Exception e) {
+ log.info("xsderror:{}", e);
+ throw new RuntimeException(e);
+ }
+ log.info("xsd:{}", s);
+ JSONObject object = JSONObject.parseObject(s);
+ if (object.getInteger("code") != null && object.getInteger("code") == 0) {
+ GridCompanyDTO data = object.getObject("data", GridCompanyDTO.class);
+ List<GridCompanyDTO.UnitDTO> records = data.getRecords();
+ for(GridCompanyDTO.UnitDTO item :records){
+ item.setLegalRepresent(AesUtils.decrypt(item.getLegalRepresent(),"eb4KhdJRyDwS4ndTBc2NTDNaSEP6KbwQ"));
+
+ }
+ return R.ok(data);
+ } else {
+ return R.fail("获取企业信息失败");
+ }
+ }
+
+ public HeadVo initHeadVo() {
+ HeadVo headVo = new HeadVo();
+ headVo.setUsername(userName);
+ headVo.setPassword(passWord);
+ headVo.setRequestId(UUID.randomUUID().toString());
+ headVo.setSource("string");
+ return headVo;
+ }
+
+}
--
Gitblit v1.8.0