package com.palmnest.service.estateserve;

import com.palmnest.application.dto.OutTreeDTO;
import com.palmnest.model.AppFunction;
import com.palmnest.model.AppMenu;
import com.palmnest.model.estateserve.ServiceFunctionRelation;
import com.palmnest.service.GenericManager;

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

/**
 * Created by HXT on 2018/8/13.
 */
public interface ServeConfigService extends GenericManager<ServiceFunctionRelation, Long> {
	/**
	 * 保存服务功能关系
	 *
	 * @param serverId 服务id
	 * @param port     哪个端 0-PC 1-APP
	 * @param funcIds  功能id集合
	 */
	public void saveUpdate(Integer serverId, Integer port, String[] funcIds);

	/**
	 * 查询指定服务对应端的功能列表(功能树)
	 *
	 * @param serverId 服务id
	 * @param port     哪个端 0-PC 1-APP
	 * @return
	 */
	public List<OutTreeDTO> getFunctionTreeById(Integer serverId, Integer port);

	/**
	 * 初始化菜单树
	 *
	 * @param funIds
	 * @return
	 */
	public List<OutTreeDTO> getMenuTreeById(String funIds);

	/**
	 * 根据功能id查询对应菜单
	 *
	 * @param funIds
	 * @return
	 */
	public List<AppMenu> getMenuByFunid(String funIds);

	/**
	 * 获取服务列表
	 *
	 * @return
	 */
	public List<Map<String, Object>> getServiceList();

	/**
	 * 获取服务功能列表
	 *
	 * @param serverId 服务id 基础服务时 传入-1
	 * @param port     哪个端 0-PC 1-APP
	 * @return
	 */
	public List<AppFunction> getServiceFunctionList(Integer serverId, Integer port);

	/**
	 * 根据项目id查询对应功能列表
	 *
	 * @param projectId 项目id
	 * @param port      哪个端 0-PC 1-APP null-全部端
	 * @return
	 */
	public List<Map<String, Object>> getProjectFunctionList(Integer projectId, Integer port);
}
