📄 contentmanagementservices.java
字号:
//String createdByUserLogin = userLoginId; //String lastModifiedByUserLogin = userLoginId; //Timestamp createdDate = UtilDateTime.nowTimestamp(); //Timestamp lastModifiedDate = UtilDateTime.nowTimestamp(); // Do update and create permission checks on DataResource if warranted. //boolean updatePermOK = false; //boolean createPermOK = false; boolean dataResourceExists = true; if (Debug.infoOn()) Debug.logInfo("in persist... dataResourceTypeId(0):" + dataResourceTypeId, null); if (UtilValidate.isNotEmpty(dataResourceTypeId) ) { Map dataResourceResult = new HashMap(); try { dataResourceResult = persistDataResourceAndDataMethod(dctx, context); } catch (GenericServiceException e) { return ServiceUtil.returnError(e.getMessage()); } catch (GenericEntityException e) { return ServiceUtil.returnError(e.getMessage()); } catch (Exception e) { return ServiceUtil.returnError(e.getMessage()); } String errorMsg = ServiceUtil.getErrorMessage(dataResourceResult); if (UtilValidate.isNotEmpty(errorMsg)) { return ServiceUtil.returnError(errorMsg); } dataResourceId = (String)dataResourceResult.get("dataResourceId"); results.put("dataResourceId", dataResourceId); results.put("drDataResourceId", dataResourceId); context.put("dataResourceId", dataResourceId); content.put("dataResourceId", dataResourceId); context.put("drDataResourceId", dataResourceId); } // Do update and create permission checks on Content if warranted. context.put("skipPermissionCheck", null); // Force check here boolean contentExists = true; if (Debug.infoOn()) Debug.logInfo("in persist... contentTypeId" + contentTypeId + " dataResourceTypeId:" + dataResourceTypeId + " contentId:" + contentId + " dataResourceId:" + dataResourceId, null); if (UtilValidate.isNotEmpty(contentTypeId) ) { if (UtilValidate.isEmpty(contentId)) { contentExists = false; } else { try { GenericValue val = delegator.findByPrimaryKey("Content", UtilMisc.toMap("contentId", contentId)); if (val == null) contentExists = false; } catch(GenericEntityException e) { return ServiceUtil.returnError(e.getMessage()); } } //List targetOperations = new ArrayList(); //context.put("targetOperations", targetOperations); context.putAll(content); if (contentExists) { //targetOperations.add("CONTENT_UPDATE"); Map contentContext = new HashMap(); ModelService contentModel = dispatcher.getDispatchContext().getModelService("updateContent"); contentContext.putAll(contentModel.makeValid(context, "IN")); contentContext.put("userLogin", userLogin); contentContext.put("displayFailCond", bDisplayFailCond); contentContext.put("skipPermissionCheck", context.get("skipPermissionCheck")); Map thisResult = dispatcher.runSync("updateContent", contentContext); if (ServiceUtil.isError(thisResult) || ServiceUtil.isFailure(thisResult)) { return ServiceUtil.returnError("Error updating content (updateContent) in persistContentAndAssoc", null, null, thisResult); } //Map thisResult = ContentServices.updateContentMethod(dctx, context); } else { //targetOperations.add("CONTENT_CREATE"); Map contentContext = new HashMap(); ModelService contentModel = dispatcher.getDispatchContext().getModelService("createContent"); contentContext.putAll(contentModel.makeValid(context, "IN")); contentContext.put("userLogin", userLogin); contentContext.put("displayFailCond", bDisplayFailCond); contentContext.put("skipPermissionCheck", context.get("skipPermissionCheck")); Debug.logInfo("In persistContentAndAssoc calling createContent with content: " + contentContext, module); Map thisResult = dispatcher.runSync("createContent", contentContext); if (ServiceUtil.isError(thisResult) || ServiceUtil.isFailure(thisResult)) { return ServiceUtil.returnError("Error creating content (createContent) in persistContentAndAssoc", null, null, thisResult); } //Map thisResult = ContentServices.createContentMethod(dctx, context); contentId = (String) thisResult.get("contentId"); } results.put("contentId", contentId); context.put("contentId", contentId); context.put("caContentId", contentId); // Add ContentPurposes if this is a create operation if (contentId != null && !contentExists) { try { if (contentPurposeList != null) { for (int i=0; i < contentPurposeList.size(); i++) { String contentPurposeTypeId = (String)contentPurposeList.get(i); GenericValue contentPurpose = delegator.makeValue("ContentPurpose", UtilMisc.toMap("contentId", contentId, "contentPurposeTypeId", contentPurposeTypeId) ); contentPurpose.create(); } } } catch(GenericEntityException e) { return ServiceUtil.returnError(e.getMessage()); } } } else if (UtilValidate.isNotEmpty(dataResourceTypeId) && UtilValidate.isNotEmpty(contentId)) { // If dataResource was not previously existing, then update the associated content with its id if (UtilValidate.isNotEmpty(dataResourceId) && !dataResourceExists) { Map map = new HashMap(); map.put("userLogin", userLogin); map.put("dataResourceId", dataResourceId); map.put("contentId", contentId); if (Debug.infoOn()) Debug.logInfo("in persist... context:" + context, module); Map r = ContentServices.updateContentMethod(dctx, map); boolean isError = ModelService.RESPOND_ERROR.equals(r.get(ModelService.RESPONSE_MESSAGE)); if (isError) return ServiceUtil.returnError( (String)r.get(ModelService.ERROR_MESSAGE)); } } // If parentContentIdTo or parentContentIdFrom exists, create association with newly created content String contentAssocTypeId = (String)context.get("contentAssocTypeId"); if (UtilValidate.isEmpty(contentAssocTypeId)) contentAssocTypeId = (String)context.get("caContentAssocTypeId"); if (Debug.infoOn()) Debug.logInfo("CREATING contentASSOC contentAssocTypeId:" + contentAssocTypeId, null); if (contentAssocTypeId != null && contentAssocTypeId.length() > 0 ) { if (Debug.infoOn()) Debug.logInfo("in persistContentAndAssoc, deactivateExistin:" + deactivateExisting, null); Map contentAssocContext = new HashMap(); contentAssocContext.put("userLogin", userLogin); contentAssocContext.put("displayFailCond", bDisplayFailCond); contentAssocContext.put("skipPermissionCheck", context.get("skipPermissionCheck")); Map thisResult = null; try { contentAssoc.setPKFields(context); contentAssoc.setNonPKFields(context); GenericValue contentAssocPK = (GenericValue)contentAssoc.clone(); GenericValue contentAssocExisting = null; if (contentAssocPK.isPrimaryKey()) contentAssocExisting = delegator.findByPrimaryKeyCache("ContentAssoc", contentAssocPK); if (contentAssocExisting == null) { ModelService contentAssocModel = dispatcher.getDispatchContext().getModelService("createContentAssoc"); Map ctx = contentAssocModel.makeValid(contentAssoc, "IN"); contentAssocContext.putAll(ctx); thisResult = dispatcher.runSync("createContentAssoc", contentAssocContext); String errMsg = ServiceUtil.getErrorMessage(thisResult); if (ServiceUtil.isError(thisResult) || ServiceUtil.isFailure(thisResult) || UtilValidate.isNotEmpty(errMsg)) { return ServiceUtil.returnError(errMsg); } results.put("contentIdTo", thisResult.get("contentIdTo")); results.put("contentIdFrom", thisResult.get("contentIdFrom")); //results.put("contentId", thisResult.get("contentIdFrom")); results.put("contentAssocTypeId", thisResult.get("contentAssocTypeId")); results.put("fromDate", thisResult.get("fromDate")); results.put("sequenceNum", thisResult.get("sequenceNum")); results.put("caContentIdTo", thisResult.get("contentIdTo")); results.put("caContentAssocTypeId", thisResult.get("contentAssocTypeId")); results.put("caFromDate", thisResult.get("fromDate")); results.put("caSequenceNum", thisResult.get("sequenceNum")); } else { if ("true".equalsIgnoreCase(deactivateExisting)) { // TODO: DEJ20060221 Does something need to be done here? //Map deactivateContext = UtilMisc.toMap("contentId", contentId, "contentAssocTypeId", contentAssocTypeId ); } ModelService contentAssocModel = dispatcher.getDispatchContext().getModelService("updateContentAssoc"); Map ctx = contentAssocModel.makeValid(contentAssoc, "IN"); contentAssocContext.putAll(ctx); thisResult = dispatcher.runSync("updateContentAssoc", contentAssocContext); String errMsg = ServiceUtil.getErrorMessage(thisResult); if (ServiceUtil.isError(thisResult) || ServiceUtil.isFailure(thisResult) || UtilValidate.isNotEmpty(errMsg)) { return ServiceUtil.returnError(errMsg); } } } catch (GenericEntityException e) { throw new GenericServiceException(e.getMessage()); } catch (Exception e2) { throw new GenericServiceException(e2.getMessage()); } String errMsg = ServiceUtil.getErrorMessage(thisResult); if (UtilValidate.isNotEmpty(errMsg)) { return ServiceUtil.returnError(errMsg); } } context.remove("skipPermissionCheck"); context.put("contentId", origContentId); context.put("dataResourceId", origDataResourceId); context.remove("dataResource"); Debug.logInfo("results:" + results, module); return results; } /** Service for update publish sites with a ContentRole that will tie them to the passed in party. */ public static Map updateSiteRoles(DispatchContext dctx, Map context) { LocalDispatcher dispatcher = dctx.getDispatcher(); GenericDelegator delegator = dctx.getDelegator(); GenericValue userLogin = (GenericValue)context.get("userLogin"); //String userLoginPartyId = userLogin.getString("partyId"); Map results = new HashMap(); // siteContentId will equal "ADMIN_MASTER", "AGINC_MASTER", etc. // Remember that this service is called in the "multi" mode, // with a new siteContentId each time. // siteContentId could also have been name deptContentId, since this same // service is used for updating department roles, too. String siteContentId = (String)context.get("contentId"); String partyId = (String)context.get("partyId"); if (UtilValidate.isEmpty(siteContentId) || UtilValidate.isEmpty(partyId)) return results; //Debug.logInfo("updateSiteRoles, context(0):" + context, module); List siteRoles = null; try { siteRoles = delegator.findByAndCache("RoleType", UtilMisc.toMap("parentTypeId", "BLOG")); } catch(GenericEntityException e) { return ServiceUtil.returnError( e.getMessage()); } Iterator siteRoleIter = siteRoles.iterator(); while (siteRoleIter.hasNext()) { Map serviceContext = new HashMap(); serviceContext.put("partyId", partyId); serviceContext.put("contentId", siteContentId); serviceContext.put("userLogin", userLogin); Debug.logInfo("updateSiteRoles, serviceContext(0):" + serviceContext, module); GenericValue roleType = (GenericValue)siteRoleIter.next(); String siteRole = (String)roleType.get("roleTypeId"); // BLOG_EDITOR, BLOG_ADMIN, etc. String cappedSiteRole = ModelUtil.dbNameToVarName(siteRole); if (Debug.infoOn()) Debug.logInfo("updateSiteRoles, cappediteRole(1):" + cappedSiteRole, module); String siteRoleVal = (String)context.get(cappedSiteRole); if (Debug.infoOn()) Debug.logInfo("updateSiteRoles, siteRoleVal(1):" + siteRoleVal, module); if (Debug.infoOn()) Debug.logInfo("updateSiteRoles, context(1):" + context, module); Object fromDate = context.get(cappedSiteRole + "FromDate"); if (Debug.infoOn()) Debug.logInfo("updateSiteRoles, fromDate(1):" + fromDate, module); serviceContext.put("roleTypeId", siteRole); if (siteRoleVal != null && siteRoleVal.equalsIgnoreCase("Y")) { // for now, will assume that any error is due to duplicates - ignore //return ServiceUtil.returnError(e.getMessage()); if (fromDate == null ) { try { Map newContext = new HashMap(); newContext.put("contentId", serviceContext.get("contentId")); newContext.put("partyId", serviceContext.get("partyId")); newContext.put("roleTypeId", serviceContext.get("roleTypeId")); newContext.put("userLogin", userLogin); Map permResults = dispatcher.runSync("deactivateAllContentRoles", newContext); serviceContext.put("fromDate", UtilDateTime.nowTimestamp()); if (Debug.infoOn()) Debug.logInfo("updateSiteRoles, serviceContext(1):" + serviceContext, module);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -