package com.vci.server.portal.delegate; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.vci.server.portal.cache.UICacheNames; import com.vci.server.portal.entity.PLActionEntity; import com.vci.server.portal.service.PLActionEntityService; import com.vci.server.portal.service.PLTypeActionEntityService; import com.vci.server.portal.tools.ServerTool; import com.vci.server.portal.tools.UICacheDataFetcher; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.VCIError; import com.vci.corba.portal.data.Constraint; import com.vci.corba.portal.data.PLAction; import com.vci.corba.portal.data.PLActionCls; import com.vci.corba.portal.data.PLActionParam; import com.vci.corba.portal.data.PLCommandParameter; import com.vci.corba.portal.data.PLPageDefination; import com.vci.corba.portal.data.PLUILayout; import com.vci.corba.portal.data.PLTabButton; import com.vci.corba.portal.data.PLTabPage; import com.vci.corba.portal.data.PortalVI; public class PortalServiceServeCacheDelegate extends PortalServiceServerDelegate implements PortalServiceServerDelegateInterface{ private PLActionEntityService plActionEntityService = null; private PLTypeActionEntityService plTypeActionEntityService = null; public PortalServiceServeCacheDelegate() { plActionEntityService = PLActionEntityService.getInstance(); plTypeActionEntityService = PLTypeActionEntityService.getInstance(); } @Override public PortalVI[] getPortalVIArrayByTypeName(String typeName) throws Throwable { return UICacheDataFetcher.getInstance().getPortalVIArrayByTypeName(typeName); } @Override public PortalVI[] getPagePortalVIArrayByTypeName(String typeName, long startPage, long endPage) throws Throwable { return UICacheDataFetcher.getInstance().getPagePortalVIArrayByTypeName(typeName, startPage, endPage); } @Override public PortalVI[] getPagePortalVIArrayByCondition(String typeName, short sheetType, String sheetName, long startPage, long endPage) throws Throwable { return UICacheDataFetcher.getInstance().getPagePortalVIArrayByCondition(typeName, sheetType, sheetName, startPage, endPage); } public int getPortalVICountByTypeName(String typeName) throws Throwable { return UICacheDataFetcher.getInstance().getPortalVICountByTypeName(typeName); } @Override public int getPortalVICountByCondition(String typeName, int sheetType, String sheetName) throws Throwable { return UICacheDataFetcher.getInstance().getPortalVICountByCondition(typeName, sheetType, sheetName); } @Override public PortalVI getPortalVIById(String id) throws Throwable { return UICacheDataFetcher.getInstance().getPortalVIById(id); } @Override public PortalVI getPortalVIBySymbol(String symbol) throws Throwable { return UICacheDataFetcher.getInstance().getPortalVIBySymbol(symbol); } @Override public boolean savePLAction(PLAction plAction) throws Throwable { boolean success = super.savePLAction(plAction); if (success) { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.ACTION); } return success; } @Override public boolean updatePLAction(PLAction plAction) throws Throwable { boolean success = super.updatePLAction(plAction); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTION); } return success; } @Override public boolean deletePLAction(PLAction plAction) throws Throwable { boolean success = super.deletePLAction(plAction); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTION); } return success; } @Override public boolean deletePLActionByID(String id) throws Throwable { boolean success = super.deletePLActionByID(id); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTION); } return success; } @Override public boolean savePLCommandParameter(PLCommandParameter plCommandParameter) throws Throwable { boolean success = super.savePLCommandParameter(plCommandParameter); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTIONPARAM); } return success; } @Override public boolean batchSavePLCommandParameter( PLCommandParameter[] plCommandParameters) throws Throwable { boolean success = super.batchSavePLCommandParameter(plCommandParameters); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTIONPARAM); } return success; } @Override public boolean updatePLCommandParameter( PLCommandParameter plCommandParameter) throws Throwable { boolean success = super.updatePLCommandParameter(plCommandParameter); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTIONPARAM); } return success; } @Override public boolean deletePLCommandParameter( PLCommandParameter plCommandParameter) throws Throwable { boolean success = super.deletePLCommandParameter(plCommandParameter); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTIONPARAM); } return success; } @Override public boolean deletePLCommandParameterByID(String id) throws Throwable { boolean success = super.deletePLCommandParameterByID(id); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTIONPARAM); } return success; } @Override public boolean deletePLCommandParameterByTabButtonId(String id) throws Throwable { boolean success = super.deletePLCommandParameterByTabButtonId(id); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.ACTIONPARAM); } return success; } @Override public boolean savePLUILayout( PLUILayout plUILayout) throws Throwable { boolean success = super.savePLUILayout(plUILayout); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.UICONTEXT); } return success; } @Override public boolean batchSavePLUILayout( PLUILayout[] plPageLayoutDefinations) throws Throwable { boolean success = super.batchSavePLUILayout(plPageLayoutDefinations); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.UICONTEXT); } return success; } @Override public boolean updatePLUILayout( PLUILayout plUILayout) throws Throwable { boolean success = super.updatePLUILayout(plUILayout); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.UICONTEXT); } return success; } @Override public boolean deletePLUILayout( PLUILayout plUILayout) throws Throwable { boolean success = super.deletePLUILayout(plUILayout); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.UICONTEXT); } return success; } @Override public boolean deletePLUILayoutByID(String id) throws Throwable { boolean success = super.deletePLUILayoutByID(id); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.UICONTEXT); } return success; } @Override public boolean savePLTabButton(PLTabButton plTabButton) throws Throwable { boolean success = super.savePLTabButton(plTabButton); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTON); } return success; } /** * 保存按钮及参数 */ @Override public boolean savePLTabButtonAndParams(PLTabButton[] plTabButton, PLCommandParameter[] btnParams) throws Throwable{ boolean success = super.savePLTabButtonAndParams(plTabButton, btnParams); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTON); UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTONPARAM); } return success; } @Override public boolean batchSavePLTabButton(PLTabButton[] plTabButtons) throws Throwable { boolean success = super.batchSavePLTabButton(plTabButtons); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTON); } return success; } @Override public boolean updatePLTabButton(PLTabButton plTabButton) throws Throwable { boolean success = super.updatePLTabButton(plTabButton); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTON); } return success; } @Override public boolean deletePLTabButton(PLTabButton plTabButton) throws Throwable { boolean success = super.deletePLTabButton(plTabButton); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTON); } return success; } @Override public boolean deletePLTabButtonByID(String id) throws Throwable { boolean success = super.deletePLTabButtonByID(id); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.BUTTON); } return success; } @Override public boolean savePLTabPage(PLTabPage plTabPage) throws Throwable { boolean success = super.savePLTabPage(plTabPage); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.TABPAGE); } return success; } @Override public boolean batchSavePLTabPage(PLTabPage[] plTabPages) throws Throwable { boolean success = super.batchSavePLTabPage(plTabPages); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.TABPAGE); } return success; } @Override public boolean updatePLTabPage(PLTabPage plTabPage) throws Throwable { boolean success = super.updatePLTabPage(plTabPage); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.TABPAGE); } return success; } @Override public boolean deletePLTabPage(PLTabPage plTabPage) throws Throwable { boolean success = super.deletePLTabPage(plTabPage); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.TABPAGE); } return success; } @Override public boolean deletePLTabPageByID(String id) throws Throwable { boolean success = super.deletePLTabPageByID(id); if (success) { UICacheDataFetcher.getInstance().resetObjType(UICacheNames.TABPAGE); } return success; } @Override public PLAction getPLActionById(String plOId) throws Throwable { return UICacheDataFetcher.getInstance().getPLActionById(plOId); } @Override public PLAction[] getAllPLAction() throws Throwable { return UICacheDataFetcher.getInstance().getActions(); } @Override public PLCommandParameter getPLCommandParameterById(String plOId) throws Throwable { return UICacheDataFetcher.getInstance().getPLCommandParameterById(plOId); } @Override public PLCommandParameter[] getPLCommandParametersByCommandOId( String plCommandOId) throws Throwable { List list = UICacheDataFetcher.getInstance().getCommandParameters(plCommandOId); if (list != null) { return list.toArray(new PLCommandParameter[0]); } else { return new PLCommandParameter[0]; } } @Override public PLUILayout getPLUILayoutById(String plOId) throws Throwable { return UICacheDataFetcher.getInstance().getPLUILayoutById(plOId); } @Override public PLUILayout[] getPLUILayoutEntity( String contentStr) throws Throwable { return UICacheDataFetcher.getInstance().getPLUILayoutEntity(contentStr); } @Override public PLUILayout[] getPLUILayoutsByRelatedType( String plRelatedType) throws Throwable { List list = UICacheDataFetcher.getInstance().getContext(plRelatedType); if (list != null) { return list.toArray(new PLUILayout[0]); } else { return new PLUILayout[0]; } } @Override public PLUILayout[] getPLUILayoutEntity( String plRelatedType, String code) throws Throwable { List list = UICacheDataFetcher.getInstance().getContext(plRelatedType); if (list != null) { List clist = new ArrayList(); for (PLUILayout context : list) { if (context.plCode.equals(code)) { clist.add(context); break; } } return clist.toArray(new PLUILayout[0]); } else { return new PLUILayout[0]; } } @Override public PLTabPage getPLTabPageById(String plOId) throws Throwable { return UICacheDataFetcher.getInstance().getPLTabPageById(plOId); } @Override public PLTabPage[] getPLTabPagesByPageDefinationOId( String contextId) throws Throwable { List list = UICacheDataFetcher.getInstance().getTabs(contextId); if (list != null) { return list.toArray(new PLTabPage[0]); } else { return new PLTabPage[0]; } } @Override public PLTabPage[] getTabPagesByContextIdAndType(String contextId, int type) throws Throwable { List list = UICacheDataFetcher.getInstance().getTabs(contextId); if (list != null) { List clist = new ArrayList(); for (PLTabPage tab : list) { if (tab.plareatype == type) { clist.add(tab); } } return clist.toArray(new PLTabPage[0]); } else { return new PLTabPage[0]; } } @Override public PLTabButton getPLTabButtonById(String plOId) throws Throwable { return UICacheDataFetcher.getInstance().getPLTabButtonById(plOId); } @Override public PLTabButton[] getPLTabButtonsByTableOId(String plTableOId) throws Throwable { List list = UICacheDataFetcher.getInstance().getButtons(plTableOId); if (list != null) { return list.toArray(new PLTabButton[0]); } else { return new PLTabButton[0]; } } @Override public boolean savePLPageDefination(PLPageDefination plPageDefination) throws Throwable { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.PAGECOMPONENT, plPageDefination); return super.savePLPageDefination(plPageDefination); } @Override public boolean batchSavePLPageDefination( PLPageDefination[] plPageDefinations) throws Throwable { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.PAGECOMPONENT, plPageDefinations); return super.batchSavePLPageDefination(plPageDefinations); } @Override public boolean updatePLPageDefination(PLPageDefination plPageDefination) throws Throwable { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.PAGECOMPONENT, plPageDefination); return super.updatePLPageDefination(plPageDefination); } @Override public boolean deletePLPageDefination(PLPageDefination plPageDefination) throws Throwable { UICacheDataFetcher.getInstance().delCacheObj(UICacheNames.PAGECOMPONENT, plPageDefination); return super.deletePLPageDefination(plPageDefination); } @Override public boolean deletePLPageDefinationByID(String id) throws Throwable { UICacheDataFetcher.getInstance().delCacheObj(UICacheNames.PAGECOMPONENT, id); return super.deletePLPageDefinationByID(id); } @Override public PLPageDefination getPLPageDefinationById(String plOId) throws Throwable { return UICacheDataFetcher.getInstance().getPLPageDefinationById(plOId); } @Override public PLPageDefination[] getPLPageDefinationsByPageContextOId( String tabId) throws Throwable { List list = UICacheDataFetcher.getInstance().getComopnent(tabId); if (list != null) { return list.toArray(new PLPageDefination[0]); } else { return new PLPageDefination[0]; } } @Override public PLTabPage[] getPLTabPagesByTypeANDCode(String type, String code) throws Throwable { List contextList = UICacheDataFetcher.getInstance().getContext(type); if (contextList == null) { return new PLTabPage[0]; } PLUILayout cContext = null; for (PLUILayout context : contextList) { if (context.plCode.equals(code)) { cContext = context; break; } } if (cContext == null) { return new PLTabPage[0]; } return this.getPLTabPagesByPageDefinationOId(cContext.plOId); } @Override public PortalVI getPortalVIByTypeNameAndVIName(String typeName, String viName) throws Throwable { PortalVI[] vis = UICacheDataFetcher.getInstance().getPortalVIArrayByTypeName(typeName); if (vis == null) { return ServerTool.getDefaultPortalVI(); } for (PortalVI vi : vis) { if (vi.viName.equals(viName) && vi.typeName.equals(typeName)) { return vi; } } return ServerTool.getDefaultPortalVI(); } @Override public PLAction[] getPLActionsByConsArray(Constraint[] consArray) throws Throwable { List list = plActionEntityService.getPLActionEntitysByConsMap(consArray); List list_ = new ArrayList(); for(int i = 0; i < list.size(); i++){ PLActionEntity obj = list.get(i); PLAction obj_ = ServerTool.getPLAction(obj); if(obj_ != null){ list_.add(obj_); } } return list_.toArray(new PLAction[0]); } @Override public PLActionCls[] getPLActionClsArray() throws VCIError { return UICacheDataFetcher.getInstance().getActionCls(); } @Override public String creaetePLActionCls(PLActionCls cls) { if (StringUtils.isBlank(cls.id)) cls.id =ObjectUtility.getNewObjectID36(); UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.ACTIONCLS, cls); return super.creaetePLActionCls(cls); } @Override public String editPLActionCls(PLActionCls cls) { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.ACTIONCLS, cls); return super.editPLActionCls(cls); } @Override public String deletePLActionClsById(String id) { UICacheDataFetcher.getInstance().delCacheObj(UICacheNames.ACTIONCLS, id); return super.deletePLActionClsById(id); } @Override public PLActionParam[] getPLActionParamArrayByActionId(String actionId) throws VCIError { return UICacheDataFetcher.getInstance().getPLActionParamArrayByActionId(actionId); } @Override public String createPLActionParam(PLActionParam param) { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.ACTIONPARAM, param); return super.createPLActionParam(param); } @Override public String createPLActionParamBatch(PLActionParam[] params) { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.ACTIONPARAM, params); return super.createPLActionParamBatch(params); } @Override public String editPLActionParam(PLActionParam param) { UICacheDataFetcher.getInstance().updateCacheObj(UICacheNames.ACTIONPARAM, param); return super.editPLActionParam(param); } @Override public String deletePLActionParam(String id) { UICacheDataFetcher.getInstance().delCacheObj(UICacheNames.ACTIONPARAM, id); return super.deletePLActionParam(id); } @Override public boolean copyComptToTabPage(String[] comptOids, PLTabPage plTabPage) throws Throwable { boolean success = super.copyComptToTabPage(comptOids, plTabPage); if (success) UICacheDataFetcher.getInstance().resetObjType(UICacheNames.PAGECOMPONENT); return success; } @Override public boolean copyTabPageToPageLayout(String[] tabPageOids, PLUILayout plUILayout, short areaType) throws Throwable { boolean success = super.copyTabPageToPageLayout(tabPageOids, plUILayout, areaType); if (success) UICacheDataFetcher.getInstance().resetObjType(UICacheNames.TABPAGE); return success; } // @Override // public boolean savePLTypeActionEntity(PLTypeAction plTypeAction) // throws Throwable { // return plTypeActionEntityService.savePLTypeActionEntity(ServerTool.getPLTypeActionEntity(plTypeAction)); // } // // @Override // public boolean deletePLTypeActionEntityByTypeAndAction(String type, // String actionoId) throws Throwable { // return plTypeActionEntityService.deletePLTypeActionEntityByTypeAndAction(type, actionoId); // } @Override public PLAction[] getAllPLActionEntityByType(String type) throws Throwable { //TODO 后期确定是否需要更改为缓存模式 List list = plTypeActionEntityService.getAllPLActionEntityByType(type); List list_ = new ArrayList(); for(int i = 0; i < list.size(); i++){ PLActionEntity obj = list.get(i); PLAction obj_ = ServerTool.getPLAction(obj); if(obj_ != null){ list_.add(obj_); } } return list_.toArray(new PLAction[0]); } // @Override // public boolean judgeUpdateButton(int type, String viName, String typeName) // throws Throwable { // boolean flag = false; // PLTabButtonEntityService service = PLTabButtonEntityService.getInstance(); // flag=service.judgeUpdateButton(type, viName, typeName); // return flag; // } // // @Override // public boolean judgeDeleteButton(String id, String typeName) // throws Throwable { // boolean flag = false; // PLTabButtonEntityService service = PLTabButtonEntityService.getInstance(); // flag=service.judgeDeleteButton(id, typeName); // return flag; // } @Override public PLUILayout[] getAllPLUILayouts() throws Throwable { return UICacheDataFetcher.getInstance().getPageLayouts(); } @Override public PLTabPage[] getAllPLTabPages() throws Throwable { return UICacheDataFetcher.getInstance().getTabPages(); } @Override public PLPageDefination[] getAllPLPageDefinations() throws Throwable { return UICacheDataFetcher.getInstance().getPageDefinations(); } @Override public PLTabButton[] getAllPLTabButtons() throws Throwable { return UICacheDataFetcher.getInstance().getButtons(); } @Override public PLCommandParameter[] getAllPLCommandParameters() throws Throwable { return UICacheDataFetcher.getInstance().getCommandParams(); } @Override public PortalVI[] getAllPortalVI() throws Throwable { return UICacheDataFetcher.getInstance().getPortalVis(); } @Override public PLPageDefination[] getAllPLPageDefinationsWithNoConf() throws Throwable { return UICacheDataFetcher.getInstance().getPageDefinationNoConfs(); } @Override public PortalVI[] getPortalVIBySymbolAndTypeName(String viName, String typeName) throws Throwable { PortalVI[] pvs = UICacheDataFetcher.getInstance().getPortalVIArrayByTypeName(typeName); List list = new ArrayList(); for (PortalVI pv : pvs) { if (pv.viName.indexOf(viName) >= 0) { list.add(pv); } } return list.toArray(new PortalVI[list.size()]); } }