From 44607b5e1b83e3008a8177a3d8642266586076ec Mon Sep 17 00:00:00 2001 From: Wonder Date: Tue, 28 Oct 2025 12:21:10 +0800 Subject: [PATCH] =?UTF-8?q?=20=F0=9F=94=A7Chore:=20=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hezhaohui/common/CardConstant.java | 8 ---- .../java/cn/hezhaohui/common/CardEnum.java | 21 +++++++++ lark/pom.xml | 6 +++ .../java/cn/hezhaohui/lark/Application.java | 2 + .../java/cn/hezhaohui/lark/util/LarkUtil.java | 43 ++++++++++++++++++- .../cn/hezhaohui/lark/util/LarkUtilTest.java | 13 ++++++ 6 files changed, 83 insertions(+), 10 deletions(-) delete mode 100644 common/src/main/java/cn/hezhaohui/common/CardConstant.java create mode 100644 common/src/main/java/cn/hezhaohui/common/CardEnum.java diff --git a/common/src/main/java/cn/hezhaohui/common/CardConstant.java b/common/src/main/java/cn/hezhaohui/common/CardConstant.java deleted file mode 100644 index a0a8a14..0000000 --- a/common/src/main/java/cn/hezhaohui/common/CardConstant.java +++ /dev/null @@ -1,8 +0,0 @@ -package cn.hezhaohui.common; - -public class CardConstant { - - public static final String CARD_WEATHER_ID = "AAqxas5etOJDx"; - public static final String CARD_WEATHER_VERSION = "1.0.5"; - -} diff --git a/common/src/main/java/cn/hezhaohui/common/CardEnum.java b/common/src/main/java/cn/hezhaohui/common/CardEnum.java new file mode 100644 index 0000000..b4162b9 --- /dev/null +++ b/common/src/main/java/cn/hezhaohui/common/CardEnum.java @@ -0,0 +1,21 @@ +package cn.hezhaohui.common; + +public enum CardEnum { + CARD_WEATHER("AAqxas5etOJDx", "1.0.5"); + + private final String id; + private final String versionName; + + CardEnum(String id, String versionName) { + this.id = id; + this.versionName = versionName; + } + + public String getId() { + return id; + } + + public String getVersionName() { + return versionName; + } +} diff --git a/lark/pom.xml b/lark/pom.xml index 381b254..0e573f0 100644 --- a/lark/pom.xml +++ b/lark/pom.xml @@ -17,6 +17,12 @@ spring-boot-starter-web + + cn.hezhaohui + weather + 1.0.0 + + com.larksuite.oapi oapi-sdk diff --git a/lark/src/main/java/cn/hezhaohui/lark/Application.java b/lark/src/main/java/cn/hezhaohui/lark/Application.java index 3710db5..7b2380b 100644 --- a/lark/src/main/java/cn/hezhaohui/lark/Application.java +++ b/lark/src/main/java/cn/hezhaohui/lark/Application.java @@ -2,10 +2,12 @@ package cn.hezhaohui.lark; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; import static cn.hezhaohui.lark.handler.EventListener.larkClientStart; @SpringBootApplication +@ComponentScan(basePackages = "cn.hezhaohui") public class Application { public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); diff --git a/lark/src/main/java/cn/hezhaohui/lark/util/LarkUtil.java b/lark/src/main/java/cn/hezhaohui/lark/util/LarkUtil.java index 3dc0e58..76098a3 100644 --- a/lark/src/main/java/cn/hezhaohui/lark/util/LarkUtil.java +++ b/lark/src/main/java/cn/hezhaohui/lark/util/LarkUtil.java @@ -1,6 +1,7 @@ package cn.hezhaohui.lark.util; import cn.hezhaohui.common.AppConstant; +import cn.hezhaohui.common.CardEnum; import cn.hutool.core.util.IdUtil; import cn.hutool.json.JSONUtil; import com.google.gson.JsonParser; @@ -52,7 +53,45 @@ public class LarkUtil { System.out.println(Jsons.DEFAULT.toJson(resp.getData())); } - public static void sendCard(String cardId, String dataJson) { - // TODO + public static void sendCard(CardEnum cardEnum, Object object) throws Exception { + // 构建client + Client client = Client.newBuilder(AppConstant.APP_ID, AppConstant.APP_SECRET).build(); + + // Json 包装 + Map data = new HashMap<>(); + data.put("template_id", cardEnum.getId()); + data.put("template_version_name", cardEnum.getVersionName()); + if (object != null) { + data.put("template_variable", object); + + } + Map content = new HashMap<>(); + content.put("type", "template"); + content.put("data", data); + + + // 创建请求对象 + CreateMessageReq req = CreateMessageReq.newBuilder() + .receiveIdType("open_id") + .createMessageReqBody(CreateMessageReqBody.newBuilder() + .receiveId(AppConstant.APP_USER_OPEN_ID) + .msgType("interactive") + .content(JSONUtil.toJsonStr(content)) + .uuid(IdUtil.randomUUID()) + .build()) + .build(); + + // 发起请求 + CreateMessageResp resp = client.im().v1().message().create(req); + + // 处理服务端错误 + if(!resp.success()) { + System.out.println(String.format("code:%s,msg:%s,reqId:%s, resp:%s", + resp.getCode(), resp.getMsg(), resp.getRequestId(), Jsons.createGSON(true, false).toJson(JsonParser.parseString(new String(resp.getRawResponse().getBody(), StandardCharsets.UTF_8))))); + return; + } + + // 业务数据处理 + System.out.println(Jsons.DEFAULT.toJson(resp.getData())); } } diff --git a/lark/src/test/java/cn/hezhaohui/lark/util/LarkUtilTest.java b/lark/src/test/java/cn/hezhaohui/lark/util/LarkUtilTest.java index 664196e..5afe7f9 100644 --- a/lark/src/test/java/cn/hezhaohui/lark/util/LarkUtilTest.java +++ b/lark/src/test/java/cn/hezhaohui/lark/util/LarkUtilTest.java @@ -1,12 +1,25 @@ package cn.hezhaohui.lark.util; +import cn.hezhaohui.common.CardEnum; +import cn.hezhaohui.util.SpringContextUtil; +import cn.hezhaohui.util.WeatherUtil; +import jakarta.annotation.Resource; import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; +@SpringBootTest class LarkUtilTest { + @Resource + private SpringContextUtil springContextUtil; @Test void sendText() throws Exception { LarkUtil.sendText("你好"); } + + @Test + void sendCard() throws Exception { + LarkUtil.sendCard(CardEnum.CARD_WEATHER, WeatherUtil.getWeather()); + } } \ No newline at end of file