fix(快捷入口): 80281

This commit is contained in:
yjz
2024-01-18 11:55:04 +08:00
parent cd2786a8e1
commit c283ea49e7
@@ -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<LawsHomeQuickAcc
// 删除旧数据
remove(new LambdaQueryWrapper<LawsHomeQuickAccess>()
.eq(LawsHomeQuickAccess::getUserId, sysUser.getId()));
// 全部菜单
List<SysPermission> menuAllList = sysPermissionService.list();
// 获取拥有权限的菜单列表
List<SysPermission> sysPermissionList = queryPermissionMenuList("");
List<String> menuIdList = sysPermissionList.stream().map(SysPermission::getId).collect(Collectors.toList());
// 保存新数据
List<LawsHomeQuickAccess> lawsHomeQuickAccessList = new ArrayList<>();
if (StringUtils.isNotBlank(permissionIdList)){
String[] menuId = permissionIdList.split(",");
List<String> 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<SysPermission> 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);
}
}