add ASMS对接,国内法规

This commit is contained in:
liao
2023-10-19 16:05:57 +08:00
parent d2858d4f5f
commit 34689351db
11 changed files with 135 additions and 62 deletions
@@ -1,30 +0,0 @@
package com.jero.modules.docking.asms.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import com.jero.modules.laws.common.constant.FieldCommon;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* @Author: liao
* @Date: 2023/10/17 17:36
* @Description:
*/
@Api(tags="国内法规标准")
@RestController
@RequestMapping("/asms")
public class AsmsController {
@Autowired
private AsmsPostUtil asmsPostUtil;
@GetMapping(value = "/getInfo")
public Result<Object> getInfo(String uri, Map<String, String> map) {
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(uri, map);
return Result.OK(mapList);
}
}
@@ -1,16 +1,14 @@
package com.jero.modules.docking.asms.api.controller;
package com.jero.modules.docking.asms.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@ import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
@@ -1,4 +1,4 @@
package com.jero.modules.docking.asms.api.entity;
package com.jero.modules.docking.asms.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
@@ -1,7 +1,7 @@
package com.jero.modules.docking.asms.api.mapper;
package com.jero.modules.docking.asms.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.docking.asms.api.mapper.LawsAsmsOpenApiMapper">
<resultMap id="LawsAsmsOpenApiResultMap" type="com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi">
<mapper namespace="com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper">
<resultMap id="LawsAsmsOpenApiResultMap" type="com.jero.modules.docking.asms.entity.LawsAsmsOpenApi">
<id column="id" property="id" />
<result column="api_name" property="apiName" />
<result column="api_url" property="apiUrl" />
@@ -1,6 +1,6 @@
package com.jero.modules.docking.asms.api.service;
package com.jero.modules.docking.asms.service;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -1,13 +1,11 @@
package com.jero.modules.docking.asms.api.service.impl;
package com.jero.modules.docking.asms.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.api.mapper.LawsAsmsOpenApiMapper;
import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper;
import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.ISysDictItemService;
@@ -20,7 +18,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -3,6 +3,8 @@ package com.jero.modules.docking.asms.util;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -13,10 +15,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
* @Author: liao
@@ -24,6 +23,7 @@ import java.util.Objects;
* @Description: 远程调用
*/
@Component
@Slf4j
public class AsmsPostUtil {
@Autowired
@@ -62,6 +62,7 @@ public class AsmsPostUtil {
token = resultMap.get("token");
// 将新获取的token存入redis
redisUtil.set(ASMS_SYSTEM_AUTH_TOKEN, token, expire * 60 * 60);
log.info("new token is creating: {}", token);
}
return token;
}
@@ -75,9 +76,10 @@ public class AsmsPostUtil {
**/
public List<Map<String, String>> sendGetReq(String uri, Map<String, String> map) {
// 准备请求头
String token = getToken();
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/x-www-form-urlencoded");
headers.set("X-Access-Token", getToken());
headers.set("X-Access-Token", token);
if (StringUtils.isBlank(uri)) {
throw new JeroBootException("url不能为空");
@@ -91,19 +93,32 @@ public class AsmsPostUtil {
url += "?" + s.substring(1);
}
ResponseEntity<Result> responseEntity = restTemplate.exchange(url.toString(),
HttpMethod.GET, new HttpEntity<>(null, headers), Result.class);
ResponseEntity<Result> responseEntity;
try {
log.info("request url : {}", url);
responseEntity = restTemplate.exchange(url.toString(),
HttpMethod.GET, new HttpEntity<>(null, headers), Result.class);
} catch (Exception e) {
log.info("old token is deleting: {}", token);
redisUtil.del(ASMS_SYSTEM_AUTH_TOKEN);
e.printStackTrace();
throw new JeroBootException("操作失败,请稍后重试");
}
if (!responseEntity.getBody().isSuccess()) {
throw new JeroBootException("汽车标准数字化平台:请求发送失败");
}
Map<String, Object> resultMap = (Map<String, Object>) responseEntity.getBody().getResult();
if (Objects.isNull(resultMap)) {
throw new JeroBootException("返回数据为空");
}
List<Map<String, String>> mapList = (List<Map<String, String>>) resultMap.get("records");
mapList.forEach(eMap -> {
StringBuilder sb = new StringBuilder();
eMap.forEach((k, v) -> sb.append(k + ":" + v + ","));
System.out.println(sb);
});
if (CollectionUtils.isEmpty(mapList)) {
mapList = new ArrayList<>();
Map<String, String> result = (Map<String, String>) responseEntity.getBody().getResult();
mapList.add(result);
}
log.info("返回{}条数据", mapList.size());
return mapList;
}