package com.hnshituo.core.auth.service;

import java.util.List;

import com.hnshituo.basic.service.BaseService;
import com.hnshituo.core.auth.vo.Department;

public interface DepartmentService extends BaseService<Department, String> {
	/**
	 * 输出组织数据
	 * 本功能受权限控制，登录用户所在角色拥有哪些权限，则显示哪些组织
	 * @return
	 */
	public List<Department> findTree();
	
	/**
	 * 根据父组织的ID查询所有该ID下所有子组织的数据
	 * @param pid
	 * @return
	 */
	public List<Department> doQueryByPidTree(Department t);
	
	/**
	 * 根据ID查询所有该ID及旗下所有子组织的数据
	 * @param pid
	 * @return
	 */
	public List<Department> doQueryByIdTree(Department t);
	
	/**
	 * 检查组织名称是否合法
	 * 如检查是否重名
	 * @param name
	 * @return
	 */
	public boolean validateName(String name);
	
	/**
	 * 一般查询
	 * */
	public List<Department> doQueryWeb(Department t);
	
	/**
	 * 新增
	 * */
	public Department doAddWeb(Department t) throws Exception;
	
	/**
	 * 修改
	 * */
	public Department doUpdateWeb(Department t) throws Exception;
	
	/**
	 * 删除
	 * */
	public Department doDeleteWeb(Department t) throws Exception;
	
}
