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; + } + +}