From dd4cd96c69061da3ff80cbfb87237b16cda8abc3 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 26 九月 2025 18:48:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wuhuyancao' into wuhuyancao

---
 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..474b586
--- /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")){
+
+                            }
+                            //澶勭悊浜嬩欢
+//                            process(bizData);
+                            //娑堣垂鎴愬姛
+                            return EventAckStatus.SUCCESS;
+                        } catch (Exception e) {
+                            //娑堣垂澶辫触
+                            return EventAckStatus.LATER;
+                        }
+                    }
+                })
+                .build().start();
+    }
+
+
+
+}

--
Gitblit v1.9.3