/* ================================================================== * 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.um.service; import java.util.List; import com.jinhe.tss.um.UMConstants; import com.jinhe.tss.um.entity.Application; import com.jinhe.tss.um.entity.Operation; import com.jinhe.tss.um.entity.ResourceType; import com.jinhe.tss.um.entity.ResourceTypeRoot; import com.jinhe.tss.um.permission.dispaly.ResourceTreeNode; import com.jinhe.tss.um.permission.filter.PermissionFilter4Sort; import com.jinhe.tss.um.permission.filter.PermissionTag; public interface IApplicationService{ /** * <p> * 获得用户对应用资源的权限 * 只判断对应用系统的权限 * 1.有操作权限就可查看 * 2.有管理权限就可作任何操作 * </p> * @param applicationId * @return */ List<?> getOperationsByResourceId(Long appId); /** * <p> * 根据应用系统id获得一个应用系统 * </p> * @param applicationId * @return */ Application getApplication(String applicationId); /** * 根据id删除应用系统 * @param id */ void removeApplication(Long id); /** * <p> * 删除资源类型 * </p> * @param id */ void removeResourceType(Long id); /** * <p> * 根据id删除操作选项 * </p> * * @param id */ void removeOperation(Long id); /** * <p> * 更新资源类型 * 连同资源类型根节点ID一起更新 * 还要更新作为根节点的资源 * </p> * @param resourceType * @return */ Object updateResourceType(ResourceType resourceType); /** * <p> * 保存资源类型 * 同时还要为该类型资源建立一个根节点 * 以资源类型名字作为根节点名字 * </p> * @param resourceType * @return */ Object createResourceType(ResourceType resourceType); /** * <p> * 创建或修改Application信息 * </p> * * @param application */ void saveApplication(Application application); /** * <p> * 创建或修改Operation信息 * </p> * * @param operation */ void updateOperation(Operation operation); /** * <p> * 新建权限选项 * 创建新的权限选项的时候需要让管理员角色拥有此权限. * 约束: * 1.用户类型 * 2.主用户组类型 * 3.辅助用户组类型 * 4.其他用户组类型 * 5.应用系统类型 * 6.功能菜单类型 * 7.自注册用户组资源类型 * </p> * @param operation * @return */ Operation saveOperation(Operation operation); /** * 根据ID查询应用系统 * @param id * @return */ Application getApplicationById(Long id); /** * <p> * 获取应用系统和资源类型 * </p> * @return */ Object[] findApplicationAndResourceType(); /** * <p> * 根据资源类型的id获取资源 * </p> * * @param userId * @param resourceTypeId * @param applicationId * @return List */ List<ResourceTreeNode> findResoucrcesByResourceType(String resourceTypeId, String applicationId); /** * <p> * 根据ID查询资源类型 * </p> * * @param id * @return Object */ ResourceType getResourceTypeById(Long id); /** * <p> * 根据ID查询操作选项 * </p> * * @param id * @return Object */ Operation getOperationById(Long id); /** * <p> * 获得一个应用系统的一个资源类型的根节点 * </p> * @param applicationId * @param resourceTypeId * @return */ ResourceTypeRoot findResourceTypeRoot(String applicationId,String resourceTypeId); @PermissionTag( operation = UMConstants.APPLICATION_SORT_OPERRATION, resourceType = UMConstants.APPLICATION_RESOURCE_TYPE_ID, filter = PermissionFilter4Sort.class ) void sortApplication(Long appId, Long toAppId, int direction, Long userId); /** * 获得登陆用户可访问的应用系统名称列表 */ @PermissionTag( operation = UMConstants.APPLICATION_VIEW_OPERRATION, resourceType = UMConstants.APPLICATION_RESOURCE_TYPE_ID ) List<?> getApplications(); }