hqtToken
This commit is contained in:
@@ -1,12 +1,23 @@
|
|||||||
package com.cool.store.service.impl;
|
package com.cool.store.service.impl;
|
||||||
|
|
||||||
|
import com.cool.store.dto.HqtTokenDTO;
|
||||||
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
|
import com.cool.store.exception.ServiceException;
|
||||||
import com.cool.store.request.ConfirmQuotationRequest;
|
import com.cool.store.request.ConfirmQuotationRequest;
|
||||||
import com.cool.store.request.HqtBuildRequest;
|
import com.cool.store.request.HqtBuildRequest;
|
||||||
import com.cool.store.request.HqtPartnerAcceptanceRequest;
|
import com.cool.store.request.HqtPartnerAcceptanceRequest;
|
||||||
import com.cool.store.service.HqtAPIService;
|
import com.cool.store.service.HqtAPIService;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import okhttp3.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: WangShuo
|
* @Author: WangShuo
|
||||||
* @Date: 2025/07/23/14:05
|
* @Date: 2025/07/23/14:05
|
||||||
@@ -14,21 +25,72 @@ import org.springframework.stereotype.Service;
|
|||||||
* @注释:
|
* @注释:
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class HqtAPIServiceImpl implements HqtAPIService {
|
public class HqtAPIServiceImpl implements HqtAPIService {
|
||||||
|
@Value("${hqt.token.url}")
|
||||||
|
private String hqtTokenUrl;
|
||||||
|
|
||||||
|
@Value("${hqt.token.username}")
|
||||||
|
private String hqtUsername;
|
||||||
|
|
||||||
|
@Value("${hqt.token.grant_type}")
|
||||||
|
private String hqtGrantType;
|
||||||
|
|
||||||
|
@Value("${hqt.token.client.id}")
|
||||||
|
private String hqtClientId;
|
||||||
|
@Value("${hqt.token.client.secret}")
|
||||||
|
private String hqtClientSecret;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
OkHttpClient okHttpClient;
|
||||||
|
@Resource
|
||||||
|
ObjectMapper objectMapper;
|
||||||
@Override
|
@Override
|
||||||
//@Async
|
//@Async
|
||||||
public void pushHqtBuild(HqtBuildRequest request) {
|
public void pushHqtBuild(HqtBuildRequest request) {
|
||||||
|
HqtTokenDTO hqtToken = this.getHqtToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
// @Async
|
// @Async
|
||||||
public void confirmQuotation(ConfirmQuotationRequest request) {
|
public void confirmQuotation(ConfirmQuotationRequest request) {
|
||||||
|
HqtTokenDTO hqtToken = this.getHqtToken();
|
||||||
}
|
}
|
||||||
//@Async
|
//@Async
|
||||||
@Override
|
@Override
|
||||||
public void hqtPartnerAcceptance(HqtPartnerAcceptanceRequest request) {
|
public void hqtPartnerAcceptance(HqtPartnerAcceptanceRequest request) {
|
||||||
|
HqtTokenDTO hqtToken = this.getHqtToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HqtTokenDTO getHqtToken() {
|
||||||
|
String url = hqtTokenUrl + "/hecom-tenancy/oauth/token";
|
||||||
|
String auth = hqtClientId + ":" + hqtClientSecret;
|
||||||
|
String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
|
||||||
|
RequestBody formBody = new FormBody.Builder()
|
||||||
|
.add("grant_type", hqtGrantType)
|
||||||
|
.add("username", hqtUsername)
|
||||||
|
.build();
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.post(formBody)
|
||||||
|
.addHeader("Authorization", "Basic " + encodedAuth)
|
||||||
|
.addHeader("Host", "tc.cloud.hecom.cn")
|
||||||
|
.addHeader("Content-Type", "application/json")
|
||||||
|
.build();
|
||||||
|
try (Response response = okHttpClient.newCall(request).execute()) {
|
||||||
|
if (!response.isSuccessful()) {
|
||||||
|
log.info("HTTP请求失败,msg: " + response.message());
|
||||||
|
throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR,
|
||||||
|
"HTTP请求失败,状态码: " + response.code());
|
||||||
|
}
|
||||||
|
String responseBody = response.body().string();
|
||||||
|
HqtTokenDTO hqtTokenDTO = objectMapper.readValue(responseBody, HqtTokenDTO.class);
|
||||||
|
return hqtTokenDTO;
|
||||||
|
} catch (ServiceException e) {
|
||||||
|
throw e;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("API调用异常 - URL: {}, 错误: {}", url, e.getMessage(), e);
|
||||||
|
throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR, "接口调用异常: " + e.getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.fasterxml.jackson.databind.JavaType;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import okhttp3.*;
|
import okhttp3.*;
|
||||||
|
import okio.Buffer;
|
||||||
import org.apache.poi.ss.formula.functions.T;
|
import org.apache.poi.ss.formula.functions.T;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -268,14 +269,15 @@ public class PushServiceImpl implements PushService {
|
|||||||
String url = hqtTokenUrl + "/hecom-tenancy/oauth/token";
|
String url = hqtTokenUrl + "/hecom-tenancy/oauth/token";
|
||||||
String auth = hqtClientId + ":" + hqtClientSecret;
|
String auth = hqtClientId + ":" + hqtClientSecret;
|
||||||
String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
|
String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
|
||||||
Map<String,String> requestBody = new HashMap<>();
|
RequestBody formBody = new FormBody.Builder()
|
||||||
requestBody.put("grant_type",hqtGrantType);
|
.add("grant_type", hqtGrantType)
|
||||||
requestBody.put("username",hqtUsername);
|
.add("username", hqtUsername)
|
||||||
String jsonString = JSONObject.toJSONString(requestBody);
|
.build();
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.post(RequestBody.create(MediaType.parse("application/json"),jsonString))
|
.post(formBody)
|
||||||
.header("Authorization", "Basic " + encodedAuth)
|
.addHeader("Authorization", "Basic " + encodedAuth)
|
||||||
|
.addHeader("Host", "tc.cloud.hecom.cn")
|
||||||
.addHeader("Content-Type", "application/json")
|
.addHeader("Content-Type", "application/json")
|
||||||
.build();
|
.build();
|
||||||
try (Response response = okHttpClient.newCall(request).execute()) {
|
try (Response response = okHttpClient.newCall(request).execute()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user