فهرست منبع

不展示无邮箱的员工信息

24282 2 سال پیش
والد
کامیت
5335045af2

+ 1 - 1
hx-mail/src/main/java/com/fjhx/mail/controller/message/InfoController.java

@@ -30,7 +30,7 @@ public class InfoController {
      */
     @PostMapping("/getUserList")
     public List<SysUser> getUserList() {
-        return infoService.getUserList();
+        return infoService.getExistMailUserList();
     }
 
     /**

+ 5 - 0
hx-mail/src/main/java/com/fjhx/mail/service/message/InfoService.java

@@ -23,4 +23,9 @@ public interface InfoService {
      */
     void deleteMail(DeleteMailDto dto);
 
+    /**
+     * 获取存在邮箱的用户
+     */
+    List<SysUser> getExistMailUserList();
+
 }

+ 27 - 0
hx-mail/src/main/java/com/fjhx/mail/service/message/impl/InfoServiceImpl.java

@@ -146,6 +146,33 @@ public class InfoServiceImpl implements InfoService {
         }
     }
 
+    @Override
+    public List<SysUser> getExistMailUserList() {
+        List<SysUser> userList = getUserList();
+
+        if (userList.size() == 0) {
+            return userList;
+        }
+
+        List<Long> userIdList = userList.stream().map(SysUser::getUserId).collect(Collectors.toList());
+
+        List<Long> existMailUserIdList = new ArrayList<>();
+
+        List<Long> enterpriseUserId = enterpriseMailboxService.listObject(EnterpriseMailbox::getUserId,
+                q -> q.in(EnterpriseMailbox::getUserId, userIdList));
+
+        List<Long> personalUserId = personalMailboxService.listObject(PersonalMailbox::getUserId,
+                q -> q.in(PersonalMailbox::getUserId, userIdList));
+
+        existMailUserIdList.addAll(enterpriseUserId);
+        existMailUserIdList.addAll(personalUserId);
+
+        return userList.stream()
+                .filter(item -> existMailUserIdList.contains(item.getUserId()))
+                .collect(Collectors.toList());
+
+    }
+
     private void subordinateDeptId(Long deptId, Set<Long> deptSet, Map<Long, List<SysDept>> parentDeptMap) {
         deptSet.add(deptId);