package com.ssm.service.system;

import java.util.List;

import com.ssm.model.system.SysMenu;
import com.ssm.model.system.SysRole;
import com.ssm.model.system.SysUser;
import com.ssm.util.page.PagedResult;

public interface SysRoleService {
	public PagedResult<SysRole> queryByRoleName(String roleName,Integer pageNo,
			Integer pageSize);


	public void insertSysRole(SysRole role);


	public int updateRoleByRoleId(SysRole role);


	public void deleteRoleByRoleId(Integer roleId);


	public SysRole selectSysRoleByRoleId(Integer roleId);


	public List<SysMenu> selectMenusByRoleId(Integer roleId);
	
	public List<SysMenu> selectMenusLevelLT2ByRoleId(Integer roleId);

	public Integer addRoleRelevancePer(Integer roleId, Integer menuId);


	public Integer selectRoleRelevancePer(Integer roleId, Integer menuId);


	public PagedResult<SysUser> selectUserByRoleId(Integer roleId,Integer pageNo,Integer pageSizeSelect,String userName ,String employeeNo);


	public Integer deleteUserByRole(Integer roleId, Integer userId);
	
	/**
	 * 用户管理 ---》分配角色
	 * 查询所有角色 ，并将它所拥有的菜单 整合到他的 menuList属性中
	 * @return
	 */
	public List<SysRole> selectRoleAndMenuList();
	/**
	 * 根据用户id 查询用户拥有的角色
	 * @param userId
	 * @return
	 */
	public List<SysRole> findUserRoleByUserId(int userId);


	public List<SysMenu> selectButtonByRoleId(Integer roleId);


	public List<SysMenu> selectPageMenusByRole(Integer roleId);


	public void deletePerPageByRoleIdAndMenuId(Integer menuid, Integer roleId);


	public List<SysMenu> selectButtonMenusByRole(Integer roleId);


	public void deleteButtonMenusByMenuIdAndRoleId(Integer menuid,
			Integer roleId);
	
	public List<SysMenu> selectPageMenusByRoleId(Integer roleId);
	
	public List<SysMenu> selectButtonMenusByRoleId(Integer roleId);
	
	List<SysMenu> selectChildMenusByPageMenuId(Integer menuId);
	
	public Integer selectReByMenuIdAndRoleId(Integer menuId, Integer roleId);
	
	SysRole selectByRoleName(String roleName);
}
