/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.portal.service;
import java.util.List;
import com.jinhe.tss.component.log.Logable;
import com.jinhe.tss.portal.PortalConstants;
import com.jinhe.tss.portal.entity.Navigator;
import com.jinhe.tss.um.permission.filter.PermissionTag;
public interface INavigatorService {
/**
* 获取所有门户菜单
* @return
*/
@PermissionTag(
operation = PortalConstants.MENU_VIEW_OPERRATION,
resourceType = PortalConstants.MENU_RESOURCE_TYPE)
List<?> getAllNavigator();
/**
* 新建一个菜单或菜单项
* @param entity
* @return
*/
@Logable(operateTable="门户菜单", operateType="新建/修改", operateInfo=" 新建/修改了 ${returnVal} 节点 ")
Navigator saveMenu(Navigator entity);
/**
* 删除一个菜单或者菜单项
* @param id
*/
@Logable(operateTable="门户菜单", operateType="删除", operateInfo=" 删除了 ID为 ${args[0]} 的 节点 ")
void deleteMenu(Long id);
/**
* 停/启用一个菜单或者菜单项
* @param id
* @param disabled
*/
@Logable(operateTable="门户菜单", operateType="停用/启用", operateInfo="<#if args[1]=1>停用<#else>启用</#if>了(ID: ${args[0]})节点 ")
void disable(Long id,Integer disabled);
/**
* 获取一个菜单或者菜单项
* @param id
* @return
*/
Navigator getNavigatorInfo(Long id);
/**
* 菜单项排序
* @param id
* @param targetId
* @param direction
*/
void sort(Long id, Long targetId, int direction);
/**
* 获取一个门户的所有菜单
* @param id
* @return
*/
List<?> getMenusByPortal(Long id);
/**
* 移动菜单项
* @param id
* @param targetId
* @param portalId
*/
void moveMenu(Long id, Long targetId, Long portalId);
/**
* 生成一个菜单下所有菜单项集合的XML格式数据。
* 注:本方法主要供门户取菜单调用,比较频繁,需要对其进行缓存,然后修改菜单的时候刷新该缓存。
* 另外因为菜单是授权的,不同用户看到的菜单有可能不一样,所以菜单缓存只针对匿名用户进行缓存。
*
* @param id
* @return
*/
String getMenuXML(Long id);
}