/** * Copyright (c) 2018 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */ package com.zt.modules.sys.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.common.constant.CacheKey; import com.zt.common.constant.Constant; import com.zt.common.service.BaseService; import com.zt.common.utils.CacheUtils; import com.zt.core.context.UserContext; import com.zt.modules.sys.dao.SysRoleMenuDao; import com.zt.modules.sys.dto.RoleDto; import com.zt.modules.sys.model.SysRoleMenu; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; /** * 角色与菜单对应关系 * * @author hehz */ @Service public class SysRoleMenuService extends BaseService { @Autowired private SysRoleUserService sysRoleUserService; @Transactional(rollbackFor = Exception.class) public void saveOrUpdate(Long roleId, List menuIdList) { List list = menuIdList.stream().map(menuId -> new SysRoleMenu(roleId, menuId)) .collect(Collectors.toList()); this.saveRelatedDatas("role_id", roleId, "menu_id", list); CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存 } /** * 根据角色ID,获取菜单ID列表 */ public List getRoleMenuIds(Long roleId) { List list = baseDao.getByRoleId(roleId).stream().map(d -> d.getMenuId()).collect(Collectors.toList()); return list; } /** * 根据角色id,删除角色菜单关系 * * @param roleIds * 角色ids */ @Transactional(rollbackFor = Exception.class) public void deleteByRoleIds(Long[] roleIds) { this.deleteLogic(baseDao.selectList(new QueryWrapper().lambda() .in(SysRoleMenu::getRoleId, roleIds))); CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存 } /** * 根据菜单id,删除角色菜单关系 * * @param menuId * 菜单id */ @Transactional(rollbackFor = Exception.class) public void deleteByMenuId(Long menuId) { baseDao.delete(new QueryWrapper().lambda().eq(SysRoleMenu::getMenuId, menuId)); CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存 } public List roleMenu() { List roles = sysRoleUserService.getUserRoles(UserContext.getUser().getId()); List sysRoleMenu = null; for (RoleDto role : roles) { RoleDto roleDto = new RoleDto(); roleDto.setId(role.getId()); sysRoleMenu = baseDao.roleMenu(roleDto); } return sysRoleMenu; } }