diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java index 6a6dbc1c..990748e9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java @@ -23,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @@ -170,24 +167,30 @@ public class LawsHomeQuickAccessServiceImpl extends ServiceImpl() .eq(LawsHomeQuickAccess::getUserId, sysUser.getId())); - + // 全部菜单 + List menuAllList = sysPermissionService.list(); // 获取拥有权限的菜单列表 List sysPermissionList = queryPermissionMenuList(""); - List menuIdList = sysPermissionList.stream().map(SysPermission::getId).collect(Collectors.toList()); // 保存新数据 List lawsHomeQuickAccessList = new ArrayList<>(); if (StringUtils.isNotBlank(permissionIdList)){ String[] menuId = permissionIdList.split(","); + List errorList = new ArrayList<>(); for (String permissionId : menuId) { - long count = menuIdList.stream().filter(v -> v.contains(permissionId)).count(); + long count = sysPermissionList.stream().filter(v -> v.getId().equals(permissionId)).count(); if (count == 0){ - throw new JeroBootException("不能保存没有权限的菜单!"); + Optional optional = menuAllList.stream().filter(v -> v.getId().equals(permissionId)).findFirst(); + optional.ifPresent(v -> errorList.add(v.getName())); } LawsHomeQuickAccess lawsHomeQuickAccess = new LawsHomeQuickAccess(); lawsHomeQuickAccess.setUserId(sysUser.getId()); lawsHomeQuickAccess.setPermissionId(permissionId); lawsHomeQuickAccessList.add(lawsHomeQuickAccess); } + if (!errorList.isEmpty()){ + String join = String.join("、", errorList); + throw new JeroBootException(join + ",不能保存没有权限的菜单!"); + } saveBatch(lawsHomeQuickAccessList); } }