|
@@ -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));
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|