1.根据父id,将列表整理为树状结构
if (CollUtil.isNotEmpty(sysMenuList)) {
//使用java8转为树状图结构
Map<Long, List<SysMenu>> longListMap = sysMenuList.stream().collect(Collectors.groupingBy(SysMenu::getParentId));
sysMenuList.forEach(schMenu -> schMenu.setChildren(longListMap.get(schMenu.getId())));
sysMenuList = sysMenuList.stream().filter(schMenu -> schMenu.getParentId() == 0).collect(Collectors.toList());
}
2.数据根据id去重
sysMenus = sysMenus.stream()
.collect(Collectors
.collectingAndThen(Collectors
.toCollection(() -> new TreeSet<>(Comparator.comparing(SysMenu::getId))), ArrayList::new)
);
3.字符串转list
List<String> excludePathList = Arrays.stream(excludePath.split(","))
.filter(s -> StringUtils.isNotBlank(s))
.collect(Collectors.toList());
dao
1.时间范围筛选
AND NOW() BETWEEN msg_pack.buy_time AND msg_pack.expire_time