From bc89d8cc35ff1dc16a2add357f70af1cca848c01 Mon Sep 17 00:00:00 2001
From: zxc <1272811460@qq.com>
Date: Wed, 14 Sep 2022 15:43:39 +0800
Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E8=AF=A6?=
 =?UTF-8?q?=E6=83=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../com/epmet/dto/OpenSyncBizDataDTO.java     |  2 +
 .../form/ExemptLoginUserDetailFormDTO.java    | 28 +++++++
 .../epmet-third/epmet-third-server/pom.xml    |  5 ++
 .../dingtalk/CallbackController.java          | 13 ++++
 .../com/epmet/dao/OpenSyncBizDataDao.java     |  7 ++
 .../epmet/entity/OpenSyncBizDataEntity.java   |  2 +
 .../com/epmet/service/DingTalkService.java    | 14 ++++
 .../service/impl/DingTalkServiceImpl.java     | 78 +++++++++++++++++++
 .../resources/mapper/OpenSyncBizDataDao.xml   | 12 +++
 9 files changed, 161 insertions(+)
 create mode 100644 epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ExemptLoginUserDetailFormDTO.java
 create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/DingTalkService.java
 create mode 100644 epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java
diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/OpenSyncBizDataDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/OpenSyncBizDataDTO.java
index b94711e55e..12dac445f0 100644
--- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/OpenSyncBizDataDTO.java
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/OpenSyncBizDataDTO.java
@@ -27,6 +27,8 @@ public class OpenSyncBizDataDTO implements Serializable {
      */
 	private String subscribeId;
 
+    private String suiteKey;
+
     /**
      * 第三方企业应用的corpid
      */
diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ExemptLoginUserDetailFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ExemptLoginUserDetailFormDTO.java
new file mode 100644
index 0000000000..7e84993d2f
--- /dev/null
+++ b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ExemptLoginUserDetailFormDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2022/9/14 14:52
+ * @DESC
+ */
+@Data
+public class ExemptLoginUserDetailFormDTO implements Serializable {
+
+    private static final long serialVersionUID = -4333806195203619201L;
+
+    public interface ExemptLoginUserDetailForm{}
+
+    @NotBlank(message = "code不能为空",groups = ExemptLoginUserDetailForm.class)
+    private String code;
+
+    @NotBlank(message = "corpId不能为空",groups = ExemptLoginUserDetailForm.class)
+    private String corpId;
+
+    @NotBlank(message = "miniAppId不能为空",groups = ExemptLoginUserDetailForm.class)
+    private String miniAppId;
+}
diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml
index a70d2ac789..d3abda724e 100644
--- a/epmet-module/epmet-third/epmet-third-server/pom.xml
+++ b/epmet-module/epmet-third/epmet-third-server/pom.xml
@@ -167,6 +167,11 @@
             commons-codec
             1.15
         
+        
+            com.aliyun
+            alibaba-dingtalk-service-sdk
+            2.0.0
+        
     
 
     
diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java
index 5940ce57f5..89bcfb3dbd 100644
--- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java
+++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/dingtalk/CallbackController.java
@@ -4,10 +4,14 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyun.dingtalk.util.DingCallbackCrypto;
 import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
 import com.epmet.dao.OpenSyncBizDataDao;
 import com.epmet.dto.DingMiniInfoDTO;
+import com.epmet.dto.form.ExemptLoginUserDetailFormDTO;
 import com.epmet.entity.OpenSyncBizDataEntity;
 import com.epmet.redis.DingDingCallbackRedis;
+import com.epmet.service.DingTalkService;
 import com.epmet.service.OpenSyncBizDataService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
@@ -56,6 +60,8 @@ public class CallbackController {
     private OpenSyncBizDataDao openSyncBizDataDao;
     @Autowired
     private DingDingCallbackRedis dingCallbackRedis;
+    @Autowired
+    private DingTalkService dingTalkService;
 
     @PostMapping(value = "dingCallback")
     public Object dingCallback(
@@ -99,6 +105,7 @@ public class CallbackController {
                     List list = new ArrayList<>();
                     bizData.forEach(b -> {
                         OpenSyncBizDataEntity e = new OpenSyncBizDataEntity();
+                        e.setSuiteKey(suiteKey);
                         e.setSubscribeId(b.get("subscribe_id").toString());
                         e.setCorpId(b.get("corp_id").toString());
                         e.setBizId(b.get("biz_id").toString());
@@ -125,4 +132,10 @@ public class CallbackController {
             return "fail";
         }
     }
+
+    @PostMapping("getExemptLoginUserDetail")
+    public Result