package com.ssj.service.sys.role.service;

import com.ssj.bean.common.framework.core.domain.Response;
import com.ssj.bean.sys.role.domain.Role;
import com.ssj.framework.core.common.service.BaseService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


import java.util.List;
import java.util.Map;


public interface RoleService extends BaseService<Role, String> {
	/**
	 * 角色管理列表
	 * @param searchParams
	 * @param pageable
	 * @return
	 */
	 Page<Map<String, Object>> findForPage(Map<String, Object> searchParams, Pageable pageable);
	 /**
	  * 验证是否存在
	  * @param name
	  * @param id
	  * @return
	  */
	public  boolean  validateRole(String name, String id);
	/**
	 * 通过角色ID 查询对应的菜单ID
	 * @param roleId
	 * @return
	 */
	List<String> getRoleMenu(String roleId);
	/**
	 *根据用户ID查询对应的角色
	 * @param adminId
	 * @return
	 */
	List<String> getAdminRole(String adminId);
	/**
	 * 保存角色权限
	 * @param id
	 * @param menuIds
	 * @return
	 */
	public Response addRoleCompetence(String id, String[] menuIds);
	/**
	 * 保存用户的角色
	 * @param id
	 * @param menuIds
	 * @return
	 */
	public Response saveAdminRole(String id, String[] roleIds);
	/**
	 * 删除角色
	 * @param id
	 * @return
	 */
	public Response deleteRole(String id);
	
	public void  saveAdminRole(String adminId, String roleId);
	/**
	 * 
	 * @Title: findForPushPage
	 * @Description: 会员即将过期推送列表
	 * @param @param params
	 * @param @param initPage
	 * @param @return    设定文件
	 * @return Page<Map<String,Object>>    返回类型
	 * @author shenhao
	 * @date 2018年1月30日 上午10:34:46
	 * @throws
	 */
	Page<Map<String, Object>> findForPushPage(Map<String, Object> params, Pageable initPage);

}
