update 使用 in 优化 or 提升索引命中率

feature/model
疯狂的狮子li 3 years ago
parent 2285a94958
commit e480f616e0

@ -44,11 +44,14 @@ public class SysDataScopeServiceImpl implements ISysDataScopeService {
@Override
public String getDeptAndChild(Long deptId) {
List<SysDept> list = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
.select(SysDept::getDeptId)
.eq(SysDept::getDeptId, deptId)
.or()
.apply(DataBaseHelper.findInSet(deptId, "ancestors")));
List<Long> ids = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList());
ids.add(deptId);
List<SysDept> list = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
.select(SysDept::getDeptId)
.in(SysDept::getDeptId, ids));
if (CollUtil.isNotEmpty(list)) {
return list.stream().map(d -> Convert.toStr(d.getDeptId())).collect(Collectors.joining(","));
}

@ -82,9 +82,9 @@ public class SysUserServiceImpl implements ISysUserService {
List<SysDept> deptList = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
.select(SysDept::getDeptId)
.apply(DataBaseHelper.findInSet(user.getDeptId(), "ancestors")));
w.eq("u.dept_id", user.getDeptId())
.or()
.in("u.dept_id", deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()));
List<Long> ids = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList());
ids.add(user.getDeptId());
w.in("u.dept_id", ids);
});
return wrapper;
}

Loading…
Cancel
Save