package com.iamberry.cms.service.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.iamberry.wechat.core.entity.admin.AdminChildHavePermission;
import com.iamberry.wechat.core.entity.admin.AdminChildPermissionErmissions;
import com.iamberry.wechat.core.entity.admin.AdminChildPermissions;

/**
 * description : 对应所有的二级管理员权限
 * @author 何秀刚
 * create date : 2015年12月10日
 */
public interface AdminChildPermissionsMapper {
	
	/**
	 * 根据二级管理ID，获取此二级管理员所有的权限
	 * @param id
	 * @return
	 */
	public List<AdminChildPermissionErmissions> selectAdminChildHavePermissionById(Integer id);
	
	/**
	 * 根据一级管理员ID，获取此管理员的菜单
	 * @param id
	 * @return
	 */
	public List<AdminChildPermissions> selectAdminMenuInfoByAdminId(Integer id);
	
	/**
	 * 根据二级管理员的ID，获取此管理员的菜单
	 * @param id
	 * @return
	 */
	public List<AdminChildPermissions> selectAdinChildPermissionByAdminChildId(Integer id);
	
	/**
	 * 根据二级管理员的ID，获取菜单权限 
	 * @param id
	 * @return
	 */
	public List<AdminChildPermissionErmissions> selectAdminChildPermissionEntityById(Integer id);
	
	/**
	 * 获取所有的一级菜单权限
	 * @return
	 */
	public List<AdminChildPermissions> selectAllPermission();

	/**
	 * 根据二级管理员的ID，获取拥有的所有权限 
	 * @return
	 */
	public List<AdminChildHavePermission> selectPermissionById(Integer id);
	
	/**
	 * 根据二级管理员的ID，新增管理员权限
	 * @return
	 */
	public Integer insertPermissionById(@Param("adminChildHavePermission") AdminChildHavePermission adminChildHavePermission);
	
	/**
	 * 根据二级管理ID，删除所有二级权限
	 * @return
	 */
	public Integer deletePermissionById(Integer adminChildId);
}
