|
@@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jzg.commons.entity.po.SysMenu;
|
|
import com.jzg.commons.entity.po.SysMenu;
|
|
|
import com.jzg.commons.entity.po.SysSystemMenu;
|
|
import com.jzg.commons.entity.po.SysSystemMenu;
|
|
|
|
|
+import com.jzg.commons.entity.po.SysUserRole;
|
|
|
import com.jzg.commons.entity.vo.SystemMenuVo;
|
|
import com.jzg.commons.entity.vo.SystemMenuVo;
|
|
|
import com.jzg.commons.util.idgen.IdGenerate;
|
|
import com.jzg.commons.util.idgen.IdGenerate;
|
|
|
import com.jzg.mapper.SysMenuMapper;
|
|
import com.jzg.mapper.SysMenuMapper;
|
|
|
import com.jzg.mapper.SysSystemMenuMapper;
|
|
import com.jzg.mapper.SysSystemMenuMapper;
|
|
|
|
|
+import com.jzg.mapper.SysUserRoleMapper;
|
|
|
import com.jzg.service.SysMenuService;
|
|
import com.jzg.service.SysMenuService;
|
|
|
import com.jzg.service.SysUserService;
|
|
import com.jzg.service.SysUserService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -34,6 +36,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
|
|
|
|
|
private final SysSystemMenuMapper sysSystemMenuMapper;
|
|
private final SysSystemMenuMapper sysSystemMenuMapper;
|
|
|
|
|
|
|
|
|
|
+ private final SysUserRoleMapper sysUserRoleMapper;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<SysMenu> findTree(String systemCode, int menuType) {
|
|
public List<SysMenu> findTree(String systemCode, int menuType) {
|
|
@@ -57,6 +61,25 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
return sysMenus;
|
|
return sysMenus;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<SysMenu> getRoleMenuTree(String systemCode, String userId) {
|
|
|
|
|
+ SysUserRole sysUserRole = sysUserRoleMapper.selectOne(new LambdaQueryWrapper<SysUserRole>()
|
|
|
|
|
+ .eq(SysUserRole::getUserId, userId));
|
|
|
|
|
+ List<SysMenu> menus = this.getMenuByRoleId(sysUserRole.getRoleId());
|
|
|
|
|
+ List<SysMenu> sysMenus = new ArrayList<>();
|
|
|
|
|
+ for (SysMenu menu : menus) {
|
|
|
|
|
+ if (menu.getParentId() == null || menu.getParentId().equalsIgnoreCase("0")) {
|
|
|
|
|
+ menu.setLevel(0);
|
|
|
|
|
+ if (!exists(sysMenus, menu)) {
|
|
|
|
|
+ sysMenus.add(menu);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ sysMenus.sort((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()));
|
|
|
|
|
+ findChildren(sysMenus, menus, 1);
|
|
|
|
|
+ return sysMenus;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public List<SysMenu> findByUser(String systemCode) {
|
|
public List<SysMenu> findByUser(String systemCode) {
|
|
|
LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<SysMenu> lqw = new LambdaQueryWrapper<>();
|
|
@@ -66,13 +89,20 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public List<String> getAllButtons() {
|
|
|
|
|
|
|
+ public List<String> getAllButtons(String userId) {
|
|
|
|
|
+
|
|
|
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<SysMenu> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(SysMenu::getType,"3");
|
|
|
|
|
|
|
+ lambdaQueryWrapper.eq(SysMenu::getType,"2");
|
|
|
List<SysMenu> sysMenus = baseMapper.selectList(lambdaQueryWrapper);
|
|
List<SysMenu> sysMenus = baseMapper.selectList(lambdaQueryWrapper);
|
|
|
|
|
+ SysUserRole sysUserRole = sysUserRoleMapper.selectOne(new LambdaQueryWrapper<SysUserRole>()
|
|
|
|
|
+ .eq(SysUserRole::getUserId, userId));
|
|
|
|
|
+ List<SysMenu> menus = this.getMenuByRoleId(sysUserRole.getRoleId());
|
|
|
|
|
+
|
|
|
List<String> perms = new ArrayList<>();
|
|
List<String> perms = new ArrayList<>();
|
|
|
sysMenus.forEach(item->{
|
|
sysMenus.forEach(item->{
|
|
|
- perms.add(item.getPerms());
|
|
|
|
|
|
|
+ if(menus.stream().anyMatch(x -> x.getId().equals(item.getId()))){
|
|
|
|
|
+ perms.add(item.getPerms());
|
|
|
|
|
+ }
|
|
|
});
|
|
});
|
|
|
return perms;
|
|
return perms;
|
|
|
}
|
|
}
|
|
@@ -121,6 +151,12 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<SysMenu> getMenuByRoleId(String roleId) {
|
|
|
|
|
+ List<SysMenu> menuByRoleId = sysMenuMapper.getMenuByRoleId(roleId);
|
|
|
|
|
+ return menuByRoleId;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
private void findChildren(List<SysMenu> SysMenus, List<SysMenu> menus, int menuType) {
|
|
private void findChildren(List<SysMenu> SysMenus, List<SysMenu> menus, int menuType) {
|
|
|
|
|
|
|
|
for (SysMenu SysMenu : SysMenus) {
|
|
for (SysMenu SysMenu : SysMenus) {
|