From f9645150381f80ea4f8471cc18f1d9e3d947a090 Mon Sep 17 00:00:00 2001 From: wonder Date: Wed, 29 Oct 2025 16:38:56 +0800 Subject: [PATCH] =?UTF-8?q?=20=E2=9C=A8Feat:=20=E5=AE=9E=E7=8E=B0=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8D=A1=E7=89=87=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hezhaohui/lark/handler/EventListener.java | 21 +++++++++++----- .../java/cn/hezhaohui/lark/util/BeanUtil.java | 25 +++++++++++++++++++ 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 lark/src/main/java/cn/hezhaohui/lark/util/BeanUtil.java diff --git a/lark/src/main/java/cn/hezhaohui/lark/handler/EventListener.java b/lark/src/main/java/cn/hezhaohui/lark/handler/EventListener.java index a09c1e3..ab5dd13 100644 --- a/lark/src/main/java/cn/hezhaohui/lark/handler/EventListener.java +++ b/lark/src/main/java/cn/hezhaohui/lark/handler/EventListener.java @@ -1,14 +1,18 @@ package cn.hezhaohui.lark.handler; import cn.hezhaohui.common.AppConstant; -import com.lark.oapi.core.request.EventReq; +import cn.hezhaohui.common.CardEnum; +import cn.hezhaohui.entity.Weather; +import cn.hezhaohui.lark.client.WeatherClient; +import cn.hezhaohui.lark.util.BeanUtil; +import cn.hezhaohui.lark.util.LarkUtil; import com.lark.oapi.core.utils.Jsons; -import com.lark.oapi.event.CustomEventHandler; import com.lark.oapi.event.EventDispatcher; +import com.lark.oapi.service.application.ApplicationService; +import com.lark.oapi.service.application.v6.model.P2BotMenuV6; import com.lark.oapi.service.im.ImService; import com.lark.oapi.service.im.v1.model.P2MessageReceiveV1; import com.lark.oapi.ws.Client; -import java.nio.charset.StandardCharsets; public class EventListener { @@ -20,10 +24,15 @@ public class EventListener { System.out.printf("[ onP2MessageReceiveV1 access ], data: %s\n", Jsons.DEFAULT.toJson(event.getEvent())); } }) - .onCustomizedEvent("这里填入你要自定义订阅的 event 的 key,例如 out_approval", new CustomEventHandler() { + .onP2BotMenuV6(new ApplicationService.P2BotMenuV6Handler() { @Override - public void handle(EventReq event) throws Exception { - System.out.printf("[ onCustomizedEvent access ], type: message, data: %s\n", new String(event.getBody(), StandardCharsets.UTF_8)); + public void handle(P2BotMenuV6 event) throws Exception { + String eventKey = event.getEvent().getEventKey(); + if (eventKey.equals("weather")) { + WeatherClient weatherClient = BeanUtil.getBean(WeatherClient.class); + Weather weather = weatherClient.getWeather(); + LarkUtil.sendCard(CardEnum.CARD_WEATHER, weather); + } } }) .build(); diff --git a/lark/src/main/java/cn/hezhaohui/lark/util/BeanUtil.java b/lark/src/main/java/cn/hezhaohui/lark/util/BeanUtil.java new file mode 100644 index 0000000..55765fa --- /dev/null +++ b/lark/src/main/java/cn/hezhaohui/lark/util/BeanUtil.java @@ -0,0 +1,25 @@ +package cn.hezhaohui.lark.util; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class BeanUtil implements ApplicationContextAware { + + private static ApplicationContext context; + public static T getBean(Class beanClass) { + return context.getBean(beanClass); + } + public static T getBean(String name, Class beanClass) { + return context.getBean(name, beanClass); + } + public static Object getBean(String name) { + return context.getBean(name); + } + @Override + public void setApplicationContext(ApplicationContext appContext) { + context = appContext; + } + +}