package com.palmnest.dao;

import com.palmnest.model.AppFunction;
import com.palmnest.model.Role;
import com.palmnest.model.User;

import java.util.List;

/**
 * 系统功能管理底层DAO接口
 *
 * @author yb
 * @since 2014-05-28
 */
public interface AppFunctionDao extends GenericDao<AppFunction, Integer> {

	public User getUserById(long id);

	public AppFunction getFuctionBySysCode(String id, String sysCode);

	public List<AppFunction> getFunctionListByRole(Long roleId, String isApp);

	public List<AppFunction> getFunctionListByRole(String roleIds);

	/**
	 * 根据端口获取功能列表
	 *
	 * @param port 0-PC 1-APP
	 * @return
	 */
	public List<AppFunction> getAll(Integer port);

	/**
	 * 根据端口与权限类型获取功能列表
	 *
	 * @param port      0-PC 1-APP
	 * @param rightType 0-一级 1-二级 2-按钮
	 * @return
	 */
	public List<AppFunction> getAll(Integer port, Integer rightType);

	/**
	 * 根据父级功能id和角色id查询该角色所拥有的三级功能权限集合
	 *
	 * @param parentFuncId 父级功能id
	 * @param roleId       角色id
	 * @return
	 */
	public List<AppFunction> getLevel3Function(Integer parentFuncId, Long roleId);

	public AppFunction getFuctionByPerms(String id, String perms);

	// ------------- ---------------------
	public List<Role> getRoleList(String funcId);

	public List<AppFunction> getLevel3Function(String funcId);
	// ------------- ---------------------
}
