dyh-service/dyh-base/src/main/java/cn/huge/base/common/utils/AesUtils.java | ●●●●● patch | view | raw | blame | history | |
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridCompanyController.java | ●●●●● patch | view | raw | blame | history | |
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCompanyDTO.java | ●●●●● patch | view | raw | blame | history | |
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyRequestVo.java | ●●●●● patch | view | raw | blame | history | |
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyVo.java | ●●●●● patch | view | raw | blame | history | |
dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCompanyService.java | ●●●●● patch | view | raw | blame | history |
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编码 * dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/controller/GridCompanyController.java
New file @@ -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); } } dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/dto/GridCompanyDTO.java
New file @@ -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; } } dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyRequestVo.java
New file @@ -0,0 +1,9 @@ package cn.huge.module.grid.domain.vo; import lombok.Data; @Data public class GridCompanyRequestVo { private HeadVo headVo; private GridCompanyVo bodyVo; } dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/domain/vo/GridCompanyVo.java
New file @@ -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; } dyh-service/dyh-sys/src/main/java/cn/huge/module/grid/service/GridCompanyService.java
New file @@ -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; } }