From 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 13 一月 2026 10:00:37 +0800
Subject: [PATCH] 优化
---
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 96 insertions(+), 0 deletions(-)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java
new file mode 100644
index 0000000..5dfd1a8
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalkStream.java
@@ -0,0 +1,96 @@
+package com.doumee.core.dingTalk;
+
+import com.dingtalk.open.app.api.GenericEventListener;
+import com.dingtalk.open.app.api.OpenDingTalkStreamClientBuilder;
+import com.dingtalk.open.app.api.message.GenericOpenDingTalkEvent;
+import com.dingtalk.open.app.api.security.AuthClientCredential;
+import com.dingtalk.open.app.stream.protocol.event.EventAckStatus;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.dao.CompanyMapper;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.service.business.CompanyService;
+import com.doumee.service.business.MemberService;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.mp.config.WxMpConfigStorage;
+import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import shade.com.alibaba.fastjson2.JSONObject;
+
+/**
+ * 閽夐拤 璁㈤槄浜嬩欢閫氱煡
+ *
+ * @Author : Rk
+ * @create 2025/9/24 17:14
+ */
+@Slf4j
+@Configuration
+public class DingTalkStream {
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private MemberService memberService;
+
+ @Autowired
+ private CompanyService companyService;
+
+
+ @Bean
+ public void DingTalkStreamRun() throws Exception {
+ String appKey = systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.APP_KEY).getCode();
+ String appSecret = systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.APP_SECRET).getCode();
+
+ OpenDingTalkStreamClientBuilder
+ .custom()
+ .credential(new AuthClientCredential(appKey, appSecret))
+ //娉ㄥ唽浜嬩欢鐩戝惉
+ .registerAllEventListener(new GenericEventListener() {
+ @Override
+ public EventAckStatus onEvent(GenericOpenDingTalkEvent event) {
+ try {
+ //浜嬩欢鍞竴Id
+ String eventId = event.getEventId();
+ log.error("閽夐拤鎺ㄩ�佷簨浠禝d:{}"+eventId);
+ //浜嬩欢绫诲瀷
+ String eventType = event.getEventType();
+ log.error("閽夐拤鎺ㄩ�佷簨浠剁被鍨�:{}"+eventType);
+ // org_dept_create 閮ㄩ棬鏂板缓 {"timeStamp":"1758783935796","eventId":"0c779adba04143958a3960e8e36bbce5","deptId":[1040735458]}
+ // org_dept_modify 閮ㄩ棬淇敼 {"timeStamp":"1758785791639","eventId":"6c2d8c7a61a7419e8928fda3effb3bf4","deptId":[1040735458]}
+ // org_dept_remove 閮ㄩ棬鍒犻櫎 {"timeStamp":"1758785817760","eventId":"47e289f334e041719ed354052da474de","deptId":[1040735458]}
+
+ // user_add_org 鍛樺伐娣诲姞
+ // user_modify_org 鍛樺伐淇敼 {"timeStamp":"1758786235842","diffInfo":[{"prev":{"extFields":"{}","hiredDate":"2022-03-30","name":"浠诲悍","telephone":"145","remark":"","workPlace":"鑾茶姳绉戝垱鍥� F401","jobNumber":"","email":"rk@doumee.com"},"curr":{"extFields":"{}","hiredDate":"2022-03-30","name":"浠诲悍","telephone":"145","remark":"","workPlace":"鑾茶姳绉戝垱鍥� F401","jobNumber":"","email":"rk@doumee.com"},"userid":"1568490244651036"}],"eventId":"e54d8991aed14c669e22e460459433f6","optStaffId":"045831294126209983","userId":["1568490244651036"]}
+ // user_leave_org 鍛樺伐鍒犻櫎
+
+ //浜嬩欢浜х敓鏃堕棿
+ Long bornTime = event.getEventBornTime();
+ log.error("閽夐拤鎺ㄩ�佷簨浠朵骇鐢熸椂闂�:{}"+bornTime);
+ //鑾峰彇浜嬩欢浣�
+ JSONObject bizData = event.getData();
+ log.error("閽夐拤鎺ㄩ�佷簨浠惰鎯�:{}"+bizData);
+
+ if(eventType.startsWith("org")){
+ companyService.ddPushCompanyInfo(eventType,bizData);
+ }else if(eventType.startsWith("user")){
+ memberService.ddPushMemberInfo(eventType,bizData);
+ }
+ //澶勭悊浜嬩欢
+// process(bizData);
+ //娑堣垂鎴愬姛
+ return EventAckStatus.SUCCESS;
+ } catch (Exception e) {
+ //娑堣垂澶辫触
+ return EventAckStatus.LATER;
+ }
+ }
+ })
+ .build().start();
+ }
+
+
+
+}
--
Gitblit v1.9.3