/* ================================================================== * 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.search; import java.util.HashMap; import java.util.List; import java.util.Map; import com.jinhe.tss.component.support.web.webwork.PTActionSupport; import com.jinhe.tss.core.exception.BusinessException; import com.jinhe.tss.core.util.EasyUtils; import com.jinhe.tss.core.web.dispaly.grid.GridDataEncoder; import com.jinhe.tss.core.web.dispaly.tree.TreeEncoder; import com.jinhe.tss.core.web.dispaly.xform.XFormEncoder; import com.jinhe.tss.core.web.rmi.HttpInvokerProxyFactory; import com.jinhe.tss.um.UMConstants; import com.jinhe.tss.um.service.IApplicationService; public class GeneralSearchAction extends PTActionSupport { private static final long serialVersionUID = -6992019819464112210L; private String applicationId; private String resourceTypeId; private Long groupId; private Long roleId; private GeneralSearchService service; private RemoteSearchService remoteService; private IApplicationService applicationService; public String getAllApplications(){ Map<String, Object> map = new HashMap<String, Object>(); map.put("groupId", groupId); XFormEncoder xFormEncoder = new XFormEncoder(UMConstants.SEARCH_PERMISSION_XFORM_TEMPLET_PATH, map); String[] applicationOptions = EasyUtils.generateComboedit(applicationService.getApplications(), "applicationId", "name", "|"); xFormEncoder.setColumnAttribute("applicationId", "editortext", applicationOptions[1]); xFormEncoder.setColumnAttribute("applicationId", "editorvalue", applicationOptions[0]); return print("GeneralSearchPermissionInfo", xFormEncoder); } /** * <p> * 根据应用id获得资源类型 * </p> * @return */ public String getResourceTypes(){ StringBuffer sb = new StringBuffer(); sb.append("<column name=\"resourceTypeId\" caption=\"资源类型\" mode=\"string\" editor=\"comboedit\" "); String[] resourceTypeOptions = EasyUtils.generateComboedit(service.getResourceTypeListByApp(applicationId), "resourceTypeId", "name", "|"); sb.append(" editorvalue=\"").append(resourceTypeOptions[0]).append("\" "); sb.append(" editortext=\"").append(resourceTypeOptions[1]).append("\"/>"); return print("ResourceType", sb); } /** * <p> * 查询授权信息 * </p> * @return */ public String searchPermission() { if ( EasyUtils.isNullOrEmpty(applicationId) ) throw new BusinessException("请选择应用系统"); if ( EasyUtils.isNullOrEmpty(resourceTypeId) ) throw new BusinessException("请选择资源类型"); RemoteSearchService localService; if (UMConstants.TSS_APPLICATION_ID.equals(applicationId)) { localService = remoteService; // 调用本地的RemoteSearchService } else { // 调用其他系统的GeneralSearchService HttpInvokerProxyFactory factory = new HttpInvokerProxyFactory(); factory.setAppCode(applicationId.toUpperCase()); factory.setServiceUrl(UMConstants.GENERAL_SEARCH_SERVICE_URL); factory.setServiceInterface(RemoteSearchService.class); localService = (RemoteSearchService) factory.getObject(); } List<?> data = localService.searchPermission(groupId, applicationId, resourceTypeId); TreeEncoder treeEncoder = new TreeEncoder(data); treeEncoder.setNeedRootNode(false); return print("GeneralSearchPermissionList", treeEncoder); } /** * <p> * 查询一个其他用户组下面的用户和主用户组的对应关系 * </p> * @return */ public String searchMapping(){ List<?> users = service.searchOtherUserMappingInfo(groupId); GridDataEncoder gridEncoder = new GridDataEncoder(users, UMConstants.GENERAL_SEARCH_MAPPING_GRID_TEMPLET_PATH); return print("GeneralSearchMappingGrid", gridEncoder); } /** * <p> * 一个组下面所有用户的因转授而获得的角色的情况 * </p> * @return */ public String searchUserStrategyInfo(){ List<?> list = service.searchUserStrategyInfoByGroupId(groupId); GridDataEncoder gridEncoder = new GridDataEncoder(list, UMConstants.GENERAL_SEARCH_USER_STRATEGY_INFO_GRID_TEMPLET_PATH); return print("GeneralSearchUserStrategyInfoGrid", gridEncoder); } /** * 根据用户组查询组下用户(需是登陆用户可见的用户)的角色授予情况 * @return */ public String searchRolesInfo(){ List<?> list = service.searchUserRolesMapping(groupId); GridDataEncoder gridEncoder = new GridDataEncoder(list, UMConstants.GENERAL_SEARCH_ROLE_GRID_TEMPLET_PATH); return print("GeneralSearchRoleGrid", gridEncoder); } /** * 拥有同一个角色的所有用户列表 * @return */ public String searchUserInfoByRole(){ List<?> list = service.searchUsersByRole(roleId); GridDataEncoder gridEncoder = new GridDataEncoder(list,UMConstants.GENERAL_SEARCH_USER_GRID_TEMPLET_PATH); return print("GeneralSearchUserGrid",gridEncoder); } public String searchUsersByGroup(){ List<?> list = service.searchUsersByGroup(groupId); GridDataEncoder gridEncoder = new GridDataEncoder(list,UMConstants.GENERAL_SYN_GRID_TEMPLET_PATH); return print("GeneralSearchSyncGrid", gridEncoder); } public void setApplicationId(String applicationId) { this.applicationId = applicationId; } public void setResourceTypeId(String resourceTypeId) { this.resourceTypeId = resourceTypeId; } public void setGroupId(Long groupId) { this.groupId = groupId; } public void setRoleId(Long roleId) { this.roleId = roleId; } public void setService(GeneralSearchService service) { this.service = service; } public void setRemoteService(RemoteSearchService remoteService) { this.remoteService = remoteService; } public void setApplicationService(IApplicationService applicationService) { this.applicationService = applicationService; } }