From 8721cd7d697df4cc901031775528117eeeb86565 Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 18 Apr 2022 16:16:20 +0800 Subject: [PATCH] //update --- .../impl/MallPermissionServiceImpl.java | 14 +++++++- .../service/impl/MallUserRoleServiceImpl.java | 33 ++++++++++++++++--- .../impl/WxProjectConfigServiceImpl.java | 2 +- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java index dac7c2105..be7a8a668 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallPermissionServiceImpl.java @@ -28,6 +28,8 @@ import org.springframework.stereotype.Service; import java.util.*; +import static java.util.stream.Collectors.toList; + @Service public class MallPermissionServiceImpl implements MallPermissionService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -148,7 +150,17 @@ public class MallPermissionServiceImpl implements MallPermissionService { } else { //用户菜单列表 List menuIdList = mallUserInfoMapper.queryAllMenuId(userInfo.getId()); - return getAllMenuListByParentId(0L, menuIdList, boolNav); + //与系统权限求交集 + WxMall q = new WxMall(); + q.setTenantId(userInfo.getTenantId()); + q.setParentTenantId(userInfo.getParentTenantId()); + String sysMenus = wxMallMapper.queryMenusByTenantInfo(q); + JSONArray sysMenuIdList = JSON.parseArray(sysMenus); + List sysMenuIds = sysMenuIdList.toJavaList(Long.class); + + List menuIds = sysMenuIds.stream().filter(item -> menuIdList.contains(item)).collect(toList()); + + return getAllMenuListByParentId(0L, menuIds, boolNav); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java index 481781c5a..0678d20d9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java @@ -1,5 +1,7 @@ package com.iformall.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -7,18 +9,23 @@ import com.iformall.common.IdWorker; import com.iformall.domain.po.MallRolePermission; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.MallUserRole; +import com.iformall.domain.po.WxMall; import com.iformall.enums.EnumMenuType; import com.iformall.enums.EnumUserAdmin; import com.iformall.mapper.MallRolePermissionMapper; import com.iformall.mapper.MallUserRoleMapper; +import com.iformall.mapper.WxMallMapper; import com.iformall.service.MallUserRoleService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import static java.util.stream.Collectors.toList; + @Service public class MallUserRoleServiceImpl implements MallUserRoleService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -29,6 +36,9 @@ public class MallUserRoleServiceImpl implements MallUserRoleService { @Autowired MallRolePermissionMapper mallRolePermissionMapper; + @Autowired + WxMallMapper wxMallMapper; + @Override public PageInfo listAsPage(MallUserRole record, Integer pageIndex, Integer pageSize) { @@ -118,6 +128,7 @@ public class MallUserRoleServiceImpl implements MallUserRoleService { MallUserRole ur = new MallUserRole(); ur.setUid(userInfo.getId()); List userRoleList = mallUserRoleMapper.findList(ur); + List permissionIds = new ArrayList<>(); if (userRoleList.size() > 0) { MallUserRole userRole = userRoleList.get(0); Long roleId = userRole.getRoleId(); @@ -125,16 +136,30 @@ public class MallUserRoleServiceImpl implements MallUserRoleService { p.setRoleId(roleId); p.updateTenantInfo(userInfo); List rolePermissionList = mallRolePermissionMapper.findList(p); - String menus = ""; for (MallRolePermission rp : rolePermissionList) { - menus += rp.getPermissionId() + ","; + permissionIds.add(rp.getPermissionId()); + } + } + + String menus = ""; + if(permissionIds.size() > 0){ + //与系统权限求交集 + WxMall q = new WxMall(); + q.setTenantId(userInfo.getTenantId()); + q.setParentTenantId(userInfo.getParentTenantId()); + String sysMenus = wxMallMapper.queryMenusByTenantInfo(q); + JSONArray sysMenuIdList = JSON.parseArray(sysMenus); + List sysMenuIds = sysMenuIdList.toJavaList(Long.class); + List menuIds = sysMenuIds.stream().filter(item -> permissionIds.contains(item)).collect(toList()); + + for (Long id:menuIds) { + menus += id + ","; } if (menus.length() > 0) { menus = menus.substring(0, menus.length() - 1); } - return menus; } - return ""; + return menus; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java index e2654b38e..e4a5b4977 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProjectConfigServiceImpl.java @@ -236,7 +236,7 @@ public class WxProjectConfigServiceImpl implements WxProjectConfigService { mallRole.setAvailable("0"); mallRoleService.saveOrUpdate(mallRole); //给角色赋权限 - MallPermission mallPermission=new MallPermission(); + MallPermission mallPermission = new MallPermission(); List list = mallPermissionService.getList(mallPermission); for(MallPermission m : list){ MallRolePermission mallRolePermission = new MallRolePermission();