package com.xzx.gc.role.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.entity.*; import com.xzx.gc.model.RoleDataAccessFunction; import com.xzx.gc.model.admin.CoreFunctionModel; import com.xzx.gc.model.admin.MoneyModel; import com.xzx.gc.model.dto.LazyEntity; import com.xzx.gc.model.query.FunctionQuery; import com.xzx.gc.role.mapper.CoreMenuMapper; import com.xzx.gc.role.mapper.CoreRoleMenuMapper; import com.xzx.gc.role.mapper.RoleFunctionConsoleMapper; import com.xzx.gc.role.rbac.tree.FunctionItem; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; import java.util.*; /** * @author lijiazhi * */ @Service @Transactional public class FunctionConsoleService{ @Autowired RoleFunctionConsoleMapper roleFunctionConsoleDao; @Autowired CoreRoleMenuMapper sysRoleMenuDao; @Autowired CorePlatformService platformService; /** * 得到角色对应的所有功能点 * @param roleId * @return */ public List getFunctionByRole(Long roleId){ return roleFunctionConsoleDao.getFunctionIdByRole(roleId); } public void updateSysRoleFunction(Long roleId,List adds,List dels){ for(Long del:dels){ //同时,需要删除与此功能关联的菜单 CoreRoleMenu sysRoleMenu = querySysRoleMenu(roleId,del); if(sysRoleMenu!=null){ sysRoleMenuDao.deleteByPrimaryKey(sysRoleMenu.getId()); } } List sysRoleMenuList = querySysRoleMenuList(roleId); for (CoreRoleMenu menu:sysRoleMenuList) { sysRoleMenuDao.deleteByPrimaryKey(menu.getId()); } for(Long add:adds){ //同时,需要增加菜单 CoreRoleMenu roleMenu = new CoreRoleMenu(); roleMenu.setMenuId(add); roleMenu.setRoleId(roleId); sysRoleMenuDao.insert(roleMenu); } //} //清楚缓存 platformService.clearFunctionCache(); } private CoreRoleMenu querySysRoleMenu(Long roleId,Long menuId){ Example example = new Example(CoreRoleMenu.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("menuId",menuId); criteria.andEqualTo("roleId",roleId); /* CoreRoleMenu query= new CoreRoleMenu(); query.setMenuId(menuId); query.setRoleId(roleId);*/ List menus = sysRoleMenuDao.selectByExample(example); return menus.isEmpty()?null:menus.get(0); } private List querySysRoleMenuList(Long roleId){ Example example = new Example(CoreRoleMenu.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("roleId",roleId); List menus = sysRoleMenuDao.selectByExample(example); return menus; } public List getFunctionByRoleMenu(Long roleId){ return roleFunctionConsoleDao.getFunctionByRoleMenu(roleId); } }