Sfoglia il codice sorgente

钉钉接口修改

yingp 6 anni fa
parent
commit
86d69e7193

+ 8 - 2
dingtalk-sdk/src/main/java/com/usoftchina/dingtalk/sdk/AddrBookSdk.java

@@ -9,6 +9,8 @@ import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 通讯录
@@ -164,7 +166,7 @@ public class AddrBookSdk extends BaseSdk {
      *
      * @param agentCode    应用code
      * @param departmentId 部门ID
-     * @param fetchChild 包含下级部门的
+     * @param fetchChild   包含下级部门的
      * @return
      */
     public List<OapiUserListbypageResponse.Userlist> getUserList(String agentCode, long departmentId, boolean fetchChild) {
@@ -185,8 +187,12 @@ public class AddrBookSdk extends BaseSdk {
         if (fetchChild) {
             List<Long> subList = getSubDepartmentIdList(agentCode, departmentId);
             if (!CollectionUtils.isEmpty(subList)) {
+                Set<String> userIdSet = userList.stream().map(user -> user.getUserid()).collect(Collectors.toSet());
                 for (Long subId : subList) {
-                    userList.addAll(getUserList(agentCode, subId, fetchChild));
+                    List<OapiUserListbypageResponse.Userlist> tempList = getUserList(agentCode, subId, fetchChild);
+                    if (!CollectionUtils.isEmpty(tempList)) {
+                        userList.addAll(tempList.stream().filter(user -> !userIdSet.contains(user.getUserid())).collect(Collectors.toList()));
+                    }
                 }
             }
         }