Commit 9d0c7827 by 宋珺琪

服务概述接口(重庆)

parent 107fa145
package com.founder.commonutils.model.newPublicEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@Data
@TableName("sk_Interface")
@ApiModel(value="服务概述接口表", description="")
public class PortEntity {
@TableId(type = IdType.INPUT)
@TableField("id")
private String id ;
@TableField("first_module")
private String firstModule ;
@TableField("second_module")
private String secondModule;
@TableField("api_name")
private String apiName;
@TableField("url")
private String url;
@TableField("method")
private String method;
@TableField("headers")
private String headers;
@TableField("default_params")
private String defaultParams;
@TableField("call_time")
private String callTime;
@TableField("return_param")
private String returnParam;
@TableField("state")
private String state; // 0未测试 1成功 2未成功
@TableField("is_delete")
private String isDelete;//0未删除 1删除
}
package com.founder.commonutils.util;
import org.apache.cxf.helpers.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.entity.StringEntity;
......@@ -397,4 +400,109 @@ public class HttpUtil {
public static boolean ckeckEmpty(String string) {
return (null == string) || ("".equals(string));
}
public static String fwdoPost(String url, Map<String, String> map,String token) throws Exception {
String result = "";
CloseableHttpClient client = null;
CloseableHttpResponse response = null;
RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(550000).setConnectTimeout(550000)
.setConnectionRequestTimeout(550000).setStaleConnectionCheckEnabled(true).build();
client = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
// client = HttpClients.createDefault();
URIBuilder uriBuilder = new URIBuilder(url);
HttpPost httpPost = new HttpPost(uriBuilder.build());
httpPost.setHeader("Connection", "Keep-Alive");
httpPost.setHeader("Charset", "UTF-8");
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
httpPost.setHeader("Authorization",token);
Iterator<Entry<String, String>> it = map.entrySet().iterator();
List<NameValuePair> params = new ArrayList<NameValuePair>();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue());
params.add(pair);
}
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
try {
response = client.execute(httpPost);
if (response != null) {
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
result = EntityUtils.toString(resEntity, "UTF-8");
}
}
} catch (ClientProtocolException e) {
throw new RuntimeException("创建连接失败" + e);
} catch (IOException e) {
throw new RuntimeException("创建连接失败" + e);
}
return result;
}
public static String fwdoPostJson(String url, String json,String token) {
// 创建Httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
// 创建Http Post请求
HttpPost httpPost = new HttpPost(url);
// 创建请求内容
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
httpPost.setHeader("Authorization", token);
// 执行http请求
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
response.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return resultString;
}
public static String fwdoGet(String url, Map<String, String> params,String token) {
String apiUrl = url;
StringBuffer param = new StringBuffer();
int i = 0;
for (String key : params.keySet()) {
if (i == 0)
param.append("?");
else
param.append("&");
param.append(key).append("=").append(params.get(key));
i++;
}
apiUrl += param;
String result = null;
HttpClient httpClient = null;
httpClient = HttpClients.createDefault();
try {
HttpGet httpGet = new HttpGet(apiUrl);
httpGet.setHeader("Authorization", token);
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
result = IOUtils.toString(instream, "UTF-8");
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
package com.founder.publicapi.controller.PortServiceController;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.newPublicEntity.PortEntity;
import com.founder.commonutils.model.newPublicEntity.SysUser;
import com.founder.commonutils.model.newPublicEntity.Token;
import com.founder.commonutils.util.*;
import com.founder.publicapi.mapper.mysqlMapper.PortMapper;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import com.founder.servicebase.service.SysUserService;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
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;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Type;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static com.founder.commonutils.util.AesEncryptUtil.desEncrypt;
@RestController
@RequestMapping("/portservive")
@Api(tags = "服务概述")
public class PortController {
@Autowired
PortMapper portMapper;
@Resource
private SysUserService sysUserService;
@Scheduled(cron = "0 0 01 * * ?")
public void poets() throws Exception {
QueryWrapper<PortEntity> wrapper = new QueryWrapper<>();
wrapper.eq("is_delete","0");
List<PortEntity> portEntities = portMapper.selectList(wrapper);
String token = gettoken("admin");
for (PortEntity port : portEntities) {
if (StringUtils.isEmpty(port.getHeaders())){
port.setHeaders("application/json");
}
port.setState("0");
if ( !port.getUrl().contains("47.92.48.137:1003")){
port.setReturnParam("接口不通");
port.setState("2");
}else if (port.getUrl().contains("export") ||port.getUrl().contains("Export")||port.getApiName().equals("上传文件")||port.getApiName().equals("下载文件")||port.getApiName().equals("消息群发")||port.getApiName().equals("消息单发")){
port.setState("1");
}else {
if (port.getMethod().equals("post") && port.getHeaders().equals("application/json")) {
String s = HttpUtil.fwdoPostJson(port.getUrl(), port.getDefaultParams(), token);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") || s.contains("\"message\":\"成功\"") || s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
} else if (port.getMethod().equals("post") && port.getHeaders().equals("form-data")) {
//String 转为Map
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(port.getDefaultParams(),type);
System.out.println(result);
String s = HttpUtil.fwdoPost(port.getUrl(), result, token);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") || s.contains("\"message\":\"成功\"")|| s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
} else if (port.getMethod().equals("get") && port.getHeaders().equals("form-data")) {
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(port.getDefaultParams(),type);
String s = HttpUtil.fwdoGet(port.getUrl(), result, token);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") ||s.contains("\"message\":\"成功\"")|| s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
}else if (port.getMethod().equals("post") && port.getHeaders().equals("x-www-form-urlencoded")){
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(port.getDefaultParams(),type);
String s = HttpUtil.fwdoPost(port.getUrl(), result, token);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") || s.contains("\"message\":\"成功\"")|| s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
}
}
port.setCallTime(nowTime());
portMapper.updateById(port);
}
}
@PostMapping("text")
public MapRestResult text() throws Exception {
QueryWrapper<PortEntity> wrapper = new QueryWrapper<>();
wrapper.eq("is_delete","0");
wrapper.eq("state",0);
List<PortEntity> portEntities = portMapper.selectList(wrapper);
String token = gettoken("admin");
ArrayList list = new ArrayList<>();
for (PortEntity port : portEntities) {
if (StringUtils.isEmpty(port.getHeaders())){
port.setHeaders("application/json");
}
port.setState("0");
if ( !port.getUrl().contains("47.92.48.137:1003")){
port.setReturnParam("接口不通");
port.setState("2");
}else if (port.getUrl().contains("export") ||port.getUrl().contains("Export")||port.getApiName().equals("上传文件")||port.getApiName().equals("下载文件")||port.getApiName().equals("消息群发")||port.getApiName().equals("消息单发")){
port.setState("1");
}else {
if (port.getMethod().equals("post") && port.getHeaders().equals("application/json")) {
String s = HttpUtil.fwdoPostJson(port.getUrl(), port.getDefaultParams(), token);
list.add(s);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") || s.contains("\"message\":\"成功\"") || s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
} else if (port.getMethod().equals("post") && port.getHeaders().equals("form-data")) {
//String 转为Map
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(port.getDefaultParams(),type);
System.out.println(result);
String s = HttpUtil.fwdoPost(port.getUrl(), result, token);
list.add(s);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") || s.contains("\"message\":\"成功\"")|| s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
} else if (port.getMethod().equals("get") && port.getHeaders().equals("form-data")) {
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(port.getDefaultParams(),type);
String s = HttpUtil.fwdoGet(port.getUrl(), result, token);
list.add(s);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") ||s.contains("\"message\":\"成功\"")|| s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
}else if (port.getMethod().equals("post") && port.getHeaders().equals("x-www-form-urlencoded")){
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(port.getDefaultParams(),type);
String s = HttpUtil.fwdoPost(port.getUrl(), result, token);
list.add(s);
port.setReturnParam(s);
if (s.contains("\"status\":200") || s.contains("\"msg\":\"成功\"") || s.contains("\"message\":\"成功\"")|| s.contains("\"code\":200")) {
port.setState("1");
} else port.setState("2");
}
}
port.setCallTime(nowTime());
portMapper.updateById(port);
}
return new MapRestResult(200,"ok",list);
}
@PostMapping("portAdd")
@ApiOperation(value = "接口入库")
@OperLog(message = "接口入库", operation = OperationType.ADD)
public MapRestResult portAdd(@RequestBody List<PortEntity> portEntity){
//入库前先把库里边所有的删除
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.select("id");
List<PortEntity> list = portMapper.selectList(wrapper);
List<String> collect = list.stream().map(PortEntity::getId).collect(Collectors.toList());
if (list.size()>0){
int i = portMapper.deleteBatchIds(collect);
}
Map map = new HashMap<>();
List error = new ArrayList<>();
List secceed = new ArrayList<>();
for (PortEntity entity : portEntity) {
// String id = genUniqueKey();
// entity.setId(id);
int insert = portMapper.insert(entity);
if ( insert > 0 ){
secceed.add(entity.getApiName());
}else {
error.add(entity.getApiName());
}
}
map.put("成功",secceed);
map.put("失败",error);
return new MapRestResult(200,"ok",map);
}
@PostMapping("portDelete")
@ApiOperation(value = "接口删除")
@OperLog(message = "接口删除", operation = OperationType.DELETE)
public MapRestResult portDelete(@RequestBody List<PortEntity> portEntity){
Map map = new HashMap<>();
List error = new ArrayList<>();
List secceed = new ArrayList<>();
for (PortEntity entity : portEntity) {
entity.setIsDelete("0");
int i = portMapper.updateById(entity);
if ( i > 0 ){
secceed.add(entity.getApiName());
}else {
error.add(entity.getApiName());
}
}
map.put("成功",secceed);
map.put("失败",error);
return new MapRestResult(200,"ok",map);
}
@PostMapping("portQueryIs")
@ApiOperation(value = "接口查询调用是否成功")
@OperLog(message = "接口查询调用是否成功", operation = OperationType.QUERY)
public MapRestResult portQueryIs(){
QueryWrapper<PortEntity> wrapper = new QueryWrapper<>();
wrapper.eq("is_delete","0");
List<PortEntity> list = portMapper.selectList(wrapper);
// 根据状态分组
Map<String, List<PortEntity>> collect = list.stream().collect(
Collectors.groupingBy(PortEntity::getState, Collectors.toList()));
return new MapRestResult(200,"ok",collect);
}
@PostMapping("export")
@ApiOperation(value = "接口查询调用是否成功导出")
@OperLog(message = "接口查询调用是否成功导出", operation = OperationType.QUERY)
public void export(HttpServletResponse response) throws Exception {
QueryWrapper<PortEntity> wrapper = new QueryWrapper<>();
wrapper.eq("is_delete","0");
wrapper.orderByDesc("state");
List<PortEntity> list = portMapper.selectList(wrapper);
for (PortEntity portEntity : list) {
if (StringUtils.isNotEmpty(portEntity.getState())){
if (portEntity.getState().equals("0")){
portEntity.setState("未测试");
}else if (portEntity.getState().equals("1")){
portEntity.setState("成功");
}else if (portEntity.getState().equals("2")){
portEntity.setState("失败");
}
}
}
ExportExcelUtil<PortEntity> exportExcelUtil = new ExportExcelUtil<>();
String[] headersName = {"一级模块","二级模块","接口名称","请求路径","请求方式","调用时间","是否成功"};
String[] headersField = {"firstModule","secondModule","apiName","url","method","callTime","state"};
exportExcelUtil.exportExcel("DataStatistics", headersName, headersField, list, response,"服务概述导出");
}
public static Map<String,String> StringFoMap (String str) {
Gson gson = new Gson();
Type type = new TypeToken<Map<String, String>>() {
}.getType();
Map<String,String> result = gson.fromJson(str,type);
return result;
}
public static String test(String str) throws Exception {
Date now = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String today = simpleDateFormat.format(now);
String KEY = "maplogin" + today;
String IV = "map_vues" + today;
return AesEncryptUtil.encrypt(str,KEY,IV);
}
public String gettoken(String user) throws Exception {
String admin = test(user);
//使用AES-128-CBC加密模式
Date now = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
String today = simpleDateFormat.format(now);
String KEY = "maplogin" + today;
String IV = "map_vues" + today;
String username = desEncrypt(admin, KEY, IV).trim();
String password = desEncrypt(admin, KEY, IV).trim();
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("USERNAME", username);
queryWrapper.eq("PASSWORD", DigestUtil.encrypt(password));
queryWrapper.eq("SCBZ", 0);
SysUser one = sysUserService.getOne(queryWrapper);
JwtUser util = new JwtUser();
//密码加密与刑专一致
Token tokenEntity=new Token(one.getUsername(),one.getIp(), DigestUtil.encrypt(password));
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(tokenEntity);
//用户JWT生成token
String token = util.createJWT(jsonObject.toString());
return token;
}
/*
生成唯一主键
格式:时间+随机数
*/
public static String genUniqueKey() {
Random random = new Random();
Integer number = random.nextInt(9000) + 1000;
return "JK"+System.currentTimeMillis() + String.valueOf(number);
}
/**
* 当前时间
* @return
*/
public String nowTime(){
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(date);
}
}
package com.founder.publicapi.mapper.mysqlMapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.founder.commonutils.model.newPublicEntity.PortEntity;
public interface PortMapper extends BaseMapper<PortEntity> {
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment