d9e1300e by xiaojie

【数据资产】

1、新增外部调用模块
1 parent dd72cfec
......@@ -52,6 +52,11 @@
<version>${cabr-package.version}</version>
</dependency>
<dependency>
<groupId>com.csbr.qingcloud</groupId>
<artifactId>csbr-cloud-external</artifactId>
<version>${cabr-package.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
......
package com.csbr.qingcloud.portal.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @program:
* @description: 数据港配置
* @author: yio
* @create: 2024-05-31 14:16
**/
@Component
@ConfigurationProperties(prefix = "dataport")
@Data
public class DataPortConfig {
private String username;
private String password;
private String authKey;
private String registerAuthKey;
private String requestUri;
private String operatorRegisterUri;
private String enterpriseRegisterUri;
private String operatorUpdateUri;
private String enterpriseUpdateUri;
private String connectorRegisterUri;
private String destroyConnector;
}
package com.csbr.qingcloud.portal.domain.vo.dataPort;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* @program:
* @description: 数据港返回结果
* @author: makejava
* @create: 2025-09-05 10:35
**/
@Data
@Schema(title = "数据港返回结果")
public class DataPortRes<T> implements Serializable {
/**
* 返回码
*/
@Schema(description = "返回码")
private Integer code;
/**
* 返回描述
*/
@Schema(description = "返回描述")
private String message;
/**
* 数据
*/
@Schema(description = "数据")
private T data;
public DataPortRes(Integer code, T data){
this.code = code;
this.data = data;
}
public DataPortRes(Integer code, String message){
this.code = code;
this.message = message;
}
/**
* 返回成功
* @param data
* @param <T>
* @return
*/
public static <T> DataPortRes<T> success(T data) {
return new DataPortRes<T>(200, data);
}
/**
* 返回失败
* @param message
* @return
*/
public static DataPortRes fail(String message) {
return new DataPortRes(500, message);
}
}
......@@ -6,9 +6,9 @@ import com.alibaba.fastjson.JSONObject;
import com.csbr.cloud.common.enums.RedisKeyEnum;
import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.distributelock.util.RedisUtil;
import com.csbr.qingcloud.portal.config.DataPortConfig;
import com.csbr.cloud.external.config.DataPortConfig;
import com.csbr.cloud.external.util.DataPortConnectUtil;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorAdditionalRSVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityRSVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorVerifiableRSVO;
import com.csbr.qingcloud.portal.domain.vo.dataPort.*;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
......@@ -18,7 +18,6 @@ import com.csbr.qingcloud.portal.mybatis.service.MfTdsConnectorIdentityService;
import com.csbr.qingcloud.portal.service.DataPortService;
import com.csbr.qingcloud.portal.service.TdsConnectorAdditionalService;
import com.csbr.qingcloud.portal.service.TdsConnectorVerifiableService;
import com.csbr.qingcloud.portal.util.DataPortConnectUtil;
import com.csbr.qingcloud.portal.util.InvokeUtil;
import com.csbr.qingcloud.portal.util.ZQConfig;
import jakarta.annotation.Resource;
......@@ -28,7 +27,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @program: daop-projects
......
package com.csbr.qingcloud.portal.util;
import com.alibaba.fastjson.JSONObject;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.exception.CsbrSystemException;
import com.csbr.qingcloud.portal.config.DataPortConfig;
import com.csbr.qingcloud.portal.domain.vo.dataPort.DataPortRes;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
/**
* @program: daop-projects
* @description:
* @author: xiaojie
* @create: 2025-10-11 11:01
**/
@Slf4j
@Component
public class DataPortConnectUtil {
@Resource
private DataPortConfig dataPortConfig;
@Autowired
private RestTemplate restTemplate;
/**
* 获取数据港token
* @return
*/
public String getToken() {
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/json");
headers.set("authKey", dataPortConfig.getAuthKey());
JSONObject params = new JSONObject();
params.put("username", dataPortConfig.getUsername());
params.put("password", dataPortConfig.getPassword());
HttpEntity<JSONObject> request = new HttpEntity<>(params, headers);
DataPortRes dataPortRes = restTemplate.postForObject(
dataPortConfig.getRequestUri() + "/api/user/singleLogin/getThreeUserToken"
, request, DataPortRes.class);
if (ObjectUtils.isEmpty(dataPortRes)) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, "获取token失败.");
}
if (200 != dataPortRes.getCode() && 201 != dataPortRes.getCode()) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, dataPortRes.getMessage());
}
return (String) dataPortRes.getData();
}
/**
* 调用数据港接口(authKey调用)
* @return
*/
public Object postByAuthKey(Object obj, String uri) {
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/json");
headers.set("authKey", dataPortConfig.getRegisterAuthKey());
HttpEntity<Object> request = new HttpEntity<>(obj, headers);
DataPortRes dataPortRes = restTemplate.postForObject(
dataPortConfig.getRequestUri() + uri
, request, DataPortRes.class);
log.info("======调用数据港接口(authKey调用)======, {}", dataPortRes);
if (ObjectUtils.isEmpty(dataPortRes)) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, "调用数据港接口失败.");
}
if (200 != dataPortRes.getCode() && 201 != dataPortRes.getCode()) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, dataPortRes.getMessage());
}
return dataPortRes.getData();
}
/**
* 调用数据港接口(Authorization调用)
* @return
*/
public Object postByAuthorization(Object obj, String uri) {
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/json");
headers.set("Authorization", getToken());
HttpEntity<Object> request = new HttpEntity<>(obj, headers);
DataPortRes dataPortRes = restTemplate.postForObject(
dataPortConfig.getRequestUri() + uri
, request, DataPortRes.class);
log.info("======调用数据港接口(Authorization调用)======, {}", dataPortRes);
if (ObjectUtils.isEmpty(dataPortRes)) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, "调用数据港接口失败.");
}
if (200 != dataPortRes.getCode() && 201 != dataPortRes.getCode()) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, dataPortRes.getMessage());
}
return dataPortRes.getData();
}
}
\ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!