perf:钉钉对接调整

This commit is contained in:
曾文豪
2024-07-26 16:12:29 +08:00
parent 6c6d713c01
commit d52edbb23c
2 changed files with 39 additions and 9 deletions

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.TypeReference; import cn.hutool.core.lang.TypeReference;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
@@ -15,7 +16,10 @@ import com.tiesheng.util.service.TsCacheService;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.util.*; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
/** /**
@@ -57,18 +61,22 @@ public class PlatformDingConfig {
* @return * @return
*/ */
public <T> DingResponse<T> doRequest(String service, String url, JSONObject body, TypeReference<DingResponse<T>> typeReference) { public <T> DingResponse<T> doRequest(String service, String url, JSONObject body, TypeReference<DingResponse<T>> typeReference) {
String accessToken = getAccessToken(service);
if (StrUtil.contains(url, "?")) { if (StrUtil.contains(url, "?")) {
url = url + "&access_token=" + getAccessToken(service); url = url + "&access_token=" + accessToken;
} else { } else {
url = url + "?access_token=" + getAccessToken(service); url = url + "?access_token=" + accessToken;
} }
HttpResponse execute; HttpRequest request;
if (body == null) { if (body == null) {
execute = HttpUtil.createGet(url).execute(); request = HttpUtil.createGet(url);
} else { } else {
execute = HttpUtil.createPost(url).body(body.toString()).execute(); request = HttpUtil.createPost(url).body(body.toString());
} }
request.header("x-acs-dingtalk-access-token", accessToken);
HttpResponse execute = request.execute();
if (execute.isOk()) { if (execute.isOk()) {
DingResponse<T> bean = JSONUtil.toBean(execute.body(), typeReference, true); DingResponse<T> bean = JSONUtil.toBean(execute.body(), typeReference, true);
@@ -264,7 +272,8 @@ public class PlatformDingConfig {
* 发送工作通知 * 发送工作通知
* *
* @param service * @param service
* @param content * @param title
* @param markdown
* @param actionUrl * @param actionUrl
* @param userIds * @param userIds
* @return * @return
@@ -280,8 +289,11 @@ public class PlatformDingConfig {
JSONObject actionCard = new JSONObject(); JSONObject actionCard = new JSONObject();
actionCard.set("title", title); actionCard.set("title", title);
actionCard.set("markdown", markdown); actionCard.set("markdown", markdown);
actionCard.set("single_title", "点击查看");
actionCard.set("single_url", actionUrl); if (StrUtil.isNotEmpty(actionUrl)) {
actionCard.set("single_title", "点击查看");
actionCard.set("single_url", actionUrl);
}
JSONObject msg = new JSONObject(); JSONObject msg = new JSONObject();
msg.set("msgtype", "action_card"); msg.set("msgtype", "action_card");

View File

@@ -7,6 +7,8 @@ public class DingResponse<T> {
private String errcode; private String errcode;
private String errmsg; private String errmsg;
private String ticket; private String ticket;
private String taskId;
private String requestId;
private Long expiresIn; private Long expiresIn;
private T result; private T result;
@@ -61,4 +63,20 @@ public class DingResponse<T> {
public void setExpiresIn(Long expiresIn) { public void setExpiresIn(Long expiresIn) {
this.expiresIn = expiresIn; this.expiresIn = expiresIn;
} }
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
} }