feat: 项目整体命名修改cache-schema-checker
All checks were successful
缓存序列化结构检查 / cache-schema-check (push) Has been skipped

This commit is contained in:
2026-07-14 11:03:34 +08:00
parent 114b053733
commit 110beb79c0
42 changed files with 197 additions and 199 deletions

View File

@@ -0,0 +1,58 @@
package com.codechecker.cache.notify;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 企业微信群机器人通知markdown 消息)。
*/
public class WeComNotifier {
private final ObjectMapper mapper = new ObjectMapper();
private final HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
/**
* @return 是否发送成功
*/
public boolean sendMarkdown(String webhookUrl, String markdown) {
if (webhookUrl == null || webhookUrl.trim().isEmpty()) {
System.err.println("[WeComNotifier] 未配置 webhook跳过通知");
return false;
}
try {
Map<String, Object> md = new LinkedHashMap<>();
md.put("content", markdown);
Map<String, Object> payload = new LinkedHashMap<>();
payload.put("msgtype", "markdown");
payload.put("markdown", md);
String body = mapper.writeValueAsString(payload);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(webhookUrl))
.timeout(Duration.ofSeconds(15))
.header("Content-Type", "application/json; charset=utf-8")
.POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
return true;
}
System.err.println("[WeComNotifier] 通知失败, HTTP " + response.statusCode() + ": " + response.body());
return false;
} catch (Exception e) {
System.err.println("[WeComNotifier] 通知异常: " + e.getMessage());
return false;
}
}
}