浏览代码

:zap: user list

shc 9 月之前
父节点
当前提交
a0ffff2b68

+ 17 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserAreaServiceImpl.java

@@ -3,6 +3,7 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserArea;
 import com.qunzhixinxi.hnqz.admin.mapper.SysUserAreaMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysUserAreaService;
@@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -79,7 +81,20 @@ public class SysUserAreaServiceImpl extends ServiceImpl<SysUserAreaMapper, SysUs
      */
     @Override
     public List<Long> listAreaUser(Collection<Long> areaIds) {
-        return this.list(Wrappers.<SysUserArea>lambdaQuery().in(SysUserArea::getAreaId, areaIds)).stream().map(SysUserArea::getUserId).distinct().collect(Collectors.toList());
+
+        List<Long> source = new ArrayList<>(areaIds);
+
+        int size = areaIds.size();
+        int p;
+        if (size < 300){
+            p = 1;
+        } else {
+            p = size % 300 == 0 ? size / 300 : size / 300 + 1;
+        }
+
+        List<List<Long>> list = Lists.partition(source, p);
+
+        return list.stream().flatMap(l -> this.list(Wrappers.<SysUserArea>lambdaQuery().in(SysUserArea::getAreaId, l)).stream()).map(SysUserArea::getUserId).distinct().collect(Collectors.toList());
     }
 
     /**
@@ -92,6 +107,7 @@ public class SysUserAreaServiceImpl extends ServiceImpl<SysUserAreaMapper, SysUs
     public void delUserArea(Long userId) {
         this.remove(Wrappers.<SysUserArea>lambdaQuery().eq(SysUserArea::getUserId, userId));
     }
+
 }