diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/BeanCopyUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/BeanCopyUtils.java index efcf0312..0717f355 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/BeanCopyUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/BeanCopyUtils.java @@ -14,7 +14,6 @@ import org.springframework.cglib.core.Converter; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * bean深拷贝工具(基于 cglib 性能优异) @@ -75,11 +74,11 @@ public class BeanCopyUtils { if (CollUtil.isEmpty(sourceList)) { return CollUtil.newArrayList(); } - return sourceList.stream().map(source -> { + return StreamUtils.toList(sourceList, source -> { V target = ReflectUtil.newInstanceIfPossible(desc); copy(source, target); return target; - }).collect(Collectors.toList()); + }); } /** diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/com/ruoyi/common/excel/core/DefaultExcelListener.java b/ruoyi-common/ruoyi-common-excel/src/main/java/com/ruoyi/common/excel/core/DefaultExcelListener.java index 181dc9fb..cd4c8efc 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/com/ruoyi/common/excel/core/DefaultExcelListener.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/com/ruoyi/common/excel/core/DefaultExcelListener.java @@ -6,6 +6,7 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.excel.exception.ExcelDataConvertException; import com.ruoyi.common.core.utils.JsonUtils; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.ValidatorUtils; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -14,7 +15,6 @@ import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; /** * Excel 导入监听 @@ -69,9 +69,7 @@ public class DefaultExcelListener extends AnalysisEventListener implements if (exception instanceof ConstraintViolationException) { ConstraintViolationException constraintViolationException = (ConstraintViolationException) exception; Set> constraintViolations = constraintViolationException.getConstraintViolations(); - String constraintViolationsMsg = constraintViolations.stream() - .map(ConstraintViolation::getMessage) - .collect(Collectors.joining(", ")); + String constraintViolationsMsg = StreamUtils.join(constraintViolations, ConstraintViolation::getMessage, ", "); errMsg = StrUtil.format("第{}行数据校验异常: {}", context.readRowHolder().getRowIndex() + 1, constraintViolationsMsg); if (log.isDebugEnabled()) { log.error(errMsg); diff --git a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java index b4e79bc0..a8936bc4 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/service/GenTableServiceImpl.java @@ -15,6 +15,7 @@ import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.GenConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.JsonUtils; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.file.FileUtils; import com.ruoyi.common.mybatis.core.page.PageQuery; @@ -41,8 +42,6 @@ import java.io.IOException; import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -335,13 +334,13 @@ public class GenTableServiceImpl implements IGenTableService { public void synchDb(String tableName) { GenTable table = baseMapper.selectGenTableByName(tableName); List tableColumns = table.getColumns(); - Map tableColumnMap = tableColumns.stream().collect(Collectors.toMap(GenTableColumn::getColumnName, Function.identity())); + Map tableColumnMap = StreamUtils.toIdentityMap(tableColumns, GenTableColumn::getColumnName); List dbTableColumns = genTableColumnMapper.selectDbTableColumnsByName(tableName); if (CollUtil.isEmpty(dbTableColumns)) { throw new ServiceException("同步数据失败,原表结构不存在"); } - List dbTableColumnNames = dbTableColumns.stream().map(GenTableColumn::getColumnName).collect(Collectors.toList()); + List dbTableColumnNames = StreamUtils.toList(dbTableColumns, GenTableColumn::getColumnName); List saveColumns = new ArrayList<>(); dbTableColumns.forEach(column -> { @@ -371,9 +370,9 @@ public class GenTableServiceImpl implements IGenTableService { genTableColumnMapper.insertBatch(saveColumns); } - List delColumns = tableColumns.stream().filter(column -> !dbTableColumnNames.contains(column.getColumnName())).collect(Collectors.toList()); + List delColumns = StreamUtils.filter(tableColumns, column -> !dbTableColumnNames.contains(column.getColumnName())); if (CollUtil.isNotEmpty(delColumns)) { - List ids = delColumns.stream().map(GenTableColumn::getColumnId).collect(Collectors.toList()); + List ids = StreamUtils.toList(delColumns, GenTableColumn::getColumnId); genTableColumnMapper.deleteBatchIds(ids); } } diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/impl/SysOssConfigServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/impl/SysOssConfigServiceImpl.java index 7be82309..c8d0bf57 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/impl/SysOssConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/com/ruoyi/resource/service/impl/SysOssConfigServiceImpl.java @@ -127,7 +127,7 @@ public class SysOssConfigServiceImpl implements ISysOssConfigService { } boolean flag = baseMapper.deleteBatchIds(ids) > 0; if (flag) { - list.stream().forEach(sysOssConfig -> { + list.forEach(sysOssConfig -> { RedisUtils.deleteObject(getCacheKey(sysOssConfig.getConfigKey())); }); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 177ab9ae..ec8432da 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -6,6 +6,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.excel.core.ExcelResult; @@ -38,7 +39,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; /** * 用户信息 @@ -133,13 +133,13 @@ public class SysUserController extends BaseController { userService.checkUserDataScope(userId); Map ajax = new HashMap<>(); List roles = roleService.selectRoleAll(); - ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())); ajax.put("posts", postService.selectPostAll()); if (ObjectUtil.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); ajax.put("user", sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); - ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); + ajax.put("roleIds", StreamUtils.toList(sysUser.getRoles(), SysRole::getRoleId)); } return R.ok(ajax); } @@ -237,7 +237,7 @@ public class SysUserController extends BaseController { SysUser user = userService.selectUserById(userId); List roles = roleService.selectRolesByUserId(userId); ajax.put("user", user); - ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); + ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())); return R.ok(ajax); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java index 64fcb330..89da95bf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserOnlineController.java @@ -5,6 +5,7 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.stp.StpUtil; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.log.annotation.Log; @@ -20,7 +21,6 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; /** * 在线用户监控 @@ -49,18 +49,18 @@ public class SysUserOnlineController extends BaseController { userOnlineList.add(RedisUtils.getCacheObject(CacheConstants.ONLINE_TOKEN_KEY + token)); } if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName)) { - userOnlineList = userOnlineList.stream().filter(userOnline -> + userOnlineList = StreamUtils.filter(userOnlineList, userOnline -> StringUtils.equals(ipaddr, userOnline.getIpaddr()) && StringUtils.equals(userName, userOnline.getUserName()) - ).collect(Collectors.toList()); + ); } else if (StringUtils.isNotEmpty(ipaddr)) { - userOnlineList = userOnlineList.stream().filter(userOnline -> - StringUtils.equals(ipaddr, userOnline.getIpaddr())) - .collect(Collectors.toList()); + userOnlineList = StreamUtils.filter(userOnlineList, userOnline -> + StringUtils.equals(ipaddr, userOnline.getIpaddr()) + ); } else if (StringUtils.isNotEmpty(userName)) { - userOnlineList = userOnlineList.stream().filter(userOnline -> + userOnlineList = StreamUtils.filter(userOnlineList, userOnline -> StringUtils.equals(userName, userOnline.getUserName()) - ).collect(Collectors.toList()); + ); } Collections.reverse(userOnlineList); userOnlineList.removeAll(Collections.singleton(null)); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/dubbo/RemoteDataScopeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/dubbo/RemoteDataScopeServiceImpl.java index 8aa44758..d554c729 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/dubbo/RemoteDataScopeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/dubbo/RemoteDataScopeServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.system.dubbo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.system.api.RemoteDataScopeService; import com.ruoyi.system.api.domain.SysDept; import com.ruoyi.system.domain.SysRoleDept; @@ -13,7 +14,6 @@ import org.apache.dubbo.config.annotation.DubboService; import org.springframework.stereotype.Service; import java.util.List; -import java.util.stream.Collectors; /** * 数据权限 实现 @@ -38,7 +38,7 @@ public class RemoteDataScopeServiceImpl implements RemoteDataScopeService { .select(SysRoleDept::getDeptId) .eq(SysRoleDept::getRoleId, roleId)); if (CollUtil.isNotEmpty(list)) { - return list.stream().map(rd -> Convert.toStr(rd.getDeptId())).collect(Collectors.joining(",")); + return StreamUtils.join(list, rd -> Convert.toStr(rd.getDeptId())); } return null; } @@ -48,13 +48,13 @@ public class RemoteDataScopeServiceImpl implements RemoteDataScopeService { List deptList = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .apply("find_in_set({0},ancestors) <> 0", deptId)); - List ids = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); ids.add(deptId); List list = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .in(SysDept::getDeptId, ids)); if (CollUtil.isNotEmpty(list)) { - return list.stream().map(d -> Convert.toStr(d.getDeptId())).collect(Collectors.joining(",")); + return StreamUtils.join(list, d -> Convert.toStr(d.getDeptId())); } return null; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 01ebc11f..2ae3e8dd 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.dict.utils.DictUtils; import com.ruoyi.common.mybatis.core.page.PageQuery; @@ -20,12 +21,10 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 字典 业务层处理 @@ -146,11 +145,9 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService { public void loadingDictCache() { List dictDataList = dictDataMapper.selectList( new LambdaQueryWrapper().eq(SysDictData::getStatus, UserConstants.DICT_NORMAL)); - Map> dictDataMap = dictDataList.stream().collect(Collectors.groupingBy(SysDictData::getDictType)); + Map> dictDataMap = StreamUtils.groupByKey(dictDataList, SysDictData::getDictType); dictDataMap.forEach((k, v) -> { - List dictList = v.stream() - .sorted(Comparator.comparing(SysDictData::getDictSort)) - .collect(Collectors.toList()); + List dictList = StreamUtils.sorted(v, Comparator.comparing(SysDictData::getDictSort)); DictUtils.setDictCache(k, dictList); }); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 46d370e6..44c57be7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.TableDataInfo; @@ -33,7 +34,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * 用户 业务层处理 @@ -83,7 +83,7 @@ public class SysUserServiceImpl implements ISysUserService { List deptList = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .apply("find_in_set({0},ancestors) <> 0", user.getDeptId())); - List ids = deptList.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + List ids = StreamUtils.toList(deptList, SysDept::getDeptId); ids.add(user.getDeptId()); w.in("u.dept_id", ids); }); @@ -172,7 +172,7 @@ public class SysUserServiceImpl implements ISysUserService { if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } - return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); + return StreamUtils.join(list, SysRole::getRoleName); } /** @@ -187,7 +187,7 @@ public class SysUserServiceImpl implements ISysUserService { if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } - return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); + return StreamUtils.join(list, SysPost::getPostName); } /**