Search in sources :

Example 21 with LocalDispatcher

use of org.apache.ofbiz.service.LocalDispatcher in project ofbiz-framework by apache.

the class ProductStoreWorker method isStoreInventoryRequiredAndAvailable.

/**
 * This method is used in the showcart pages to determine whether or not to show the inventory message and
 * in the productdetail pages to determine whether or not to show the item as out of stock.
 *
 * @param request ServletRequest (or HttpServletRequest of course)
 * @param product GenericValue representing the product in question
 * @param quantity Quantity desired.
 * @param wantRequired If true then inventory required must be true for the result to be true, if false must be false; if null don't care
 * @param wantAvailable If true then inventory avilable must be true for the result to be true, if false must be false; if null don't care
 */
public static boolean isStoreInventoryRequiredAndAvailable(ServletRequest request, GenericValue product, BigDecimal quantity, Boolean wantRequired, Boolean wantAvailable) {
    GenericValue productStore = getProductStore(request);
    if (productStore == null) {
        Debug.logWarning("No ProductStore found, return false for inventory check", module);
        return false;
    }
    if (product == null) {
        Debug.logWarning("No Product passed, return false for inventory check", module);
        return false;
    }
    if (quantity == null)
        quantity = BigDecimal.ONE;
    String productStoreId = productStore.getString("productStoreId");
    LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
    try {
        Boolean requiredOkay = null;
        if (wantRequired != null) {
            Map<String, Object> invReqResult = dispatcher.runSync("isStoreInventoryRequired", UtilMisc.toMap("productStoreId", productStoreId, "productId", product.get("productId"), "product", product, "productStore", productStore));
            if (ServiceUtil.isError(invReqResult)) {
                Debug.logError("Error calling isStoreInventoryRequired service, result is: " + invReqResult, module);
                return false;
            }
            requiredOkay = Boolean.valueOf(wantRequired.booleanValue() == "Y".equals(invReqResult.get("requireInventory")));
        }
        Boolean availableOkay = null;
        if (wantAvailable != null) {
            Map<String, Object> invAvailResult = dispatcher.runSync("isStoreInventoryAvailable", UtilMisc.toMap("productStoreId", productStoreId, "productId", product.get("productId"), "product", product, "productStore", productStore, "quantity", quantity));
            if (ServiceUtil.isError(invAvailResult)) {
                Debug.logError("Error calling isStoreInventoryAvailable service, result is: " + invAvailResult, module);
                return false;
            }
            availableOkay = Boolean.valueOf(wantAvailable.booleanValue() == "Y".equals(invAvailResult.get("available")));
        }
        if ((requiredOkay == null || requiredOkay.booleanValue()) && (availableOkay == null || availableOkay.booleanValue())) {
            return true;
        } else {
            return false;
        }
    } catch (GenericServiceException e) {
        String errMsg = "Fatal error calling inventory checking services: " + e.toString();
        Debug.logError(e, errMsg, module);
        return false;
    }
}
Also used : GenericValue(org.apache.ofbiz.entity.GenericValue) LocalDispatcher(org.apache.ofbiz.service.LocalDispatcher) GenericServiceException(org.apache.ofbiz.service.GenericServiceException)

Example 22 with LocalDispatcher

use of org.apache.ofbiz.service.LocalDispatcher in project ofbiz-framework by apache.

the class ICalConverter method invokeService.

protected static Map<String, Object> invokeService(String serviceName, Map<String, ? extends Object> serviceMap, Map<String, Object> context) {
    LocalDispatcher dispatcher = (LocalDispatcher) context.get("dispatcher");
    Locale locale = (Locale) context.get("locale");
    Map<String, Object> localMap = new HashMap<>();
    try {
        ModelService modelService = null;
        modelService = dispatcher.getDispatchContext().getModelService(serviceName);
        for (ModelParam modelParam : modelService.getInModelParamList()) {
            if (serviceMap.containsKey(modelParam.name)) {
                Object value = serviceMap.get(modelParam.name);
                if (UtilValidate.isNotEmpty(modelParam.type)) {
                    value = ObjectType.simpleTypeConvert(value, modelParam.type, null, null, null, true);
                }
                localMap.put(modelParam.name, value);
            }
        }
    } catch (GeneralException e) {
        String errMsg = UtilProperties.getMessage("WorkEffortUiLabels", "WorkeffortErrorWhileCreatingServiceMapForService", UtilMisc.toMap("serviceName", serviceName), locale);
        Debug.logError(e, errMsg, module);
        return ServiceUtil.returnError(errMsg + e);
    }
    if (context.get("userLogin") != null) {
        localMap.put("userLogin", context.get("userLogin"));
    }
    localMap.put("locale", context.get("locale"));
    try {
        Map<String, Object> result = dispatcher.runSync(serviceName, localMap);
        if (ServiceUtil.isError(result)) {
            return ServiceUtil.returnError(ServiceUtil.getErrorMessage(result));
        }
        return result;
    } catch (GenericServiceException e) {
        String errMsg = UtilProperties.getMessage("WorkEffortUiLabels", "WorkeffortErrorWhileInvokingService", UtilMisc.toMap("serviceName", serviceName), locale);
        Debug.logError(e, errMsg, module);
        return ServiceUtil.returnError(errMsg + e);
    }
}
Also used : Locale(java.util.Locale) LocalDispatcher(org.apache.ofbiz.service.LocalDispatcher) GeneralException(org.apache.ofbiz.base.util.GeneralException) HashMap(java.util.HashMap) ModelParam(org.apache.ofbiz.service.ModelParam) GenericServiceException(org.apache.ofbiz.service.GenericServiceException) ModelService(org.apache.ofbiz.service.ModelService)

Example 23 with LocalDispatcher

use of org.apache.ofbiz.service.LocalDispatcher in project ofbiz-framework by apache.

the class FrameImage method addImageFrame.

public static Map<String, Object> addImageFrame(DispatchContext dctx, Map<String, ? extends Object> context) throws IOException {
    Map<String, Object> result;
    LocalDispatcher dispatcher = dctx.getDispatcher();
    Delegator delegator = dctx.getDelegator();
    String imageServerPath = FlexibleStringExpander.expandString(EntityUtilProperties.getPropertyValue("catalog", "image.management.path", delegator), context);
    String imageServerUrl = FlexibleStringExpander.expandString(EntityUtilProperties.getPropertyValue("catalog", "image.management.url", delegator), context);
    String nameOfThumb = FlexibleStringExpander.expandString(EntityUtilProperties.getPropertyValue("catalog", "image.management.nameofthumbnail", delegator), context);
    GenericValue userLogin = (GenericValue) context.get("userLogin");
    String productId = (String) context.get("productId");
    String imageName = (String) context.get("imageName");
    String imageWidth = (String) context.get("imageWidth");
    String imageHeight = (String) context.get("imageHeight");
    Locale locale = (Locale) context.get("locale");
    if (UtilValidate.isEmpty(context.get("frameContentId")) || UtilValidate.isEmpty(context.get("frameDataResourceId"))) {
        result = ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "ProductImageFrameContentIdRequired", locale));
        result.putAll(context);
    }
    if (UtilValidate.isEmpty(context.get("imageWidth")) || UtilValidate.isEmpty(context.get("imageHeight"))) {
        result = ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "ProductImageWidthAndHeightRequired", locale));
        result.putAll(context);
    }
    String frameContentId = (String) context.get("frameContentId");
    String frameDataResourceId = (String) context.get("frameDataResourceId");
    String frameImageName = null;
    try {
        GenericValue contentDataResourceView = EntityQuery.use(delegator).from("ContentDataResourceView").where("contentId", frameContentId, "drDataResourceId", frameDataResourceId).queryOne();
        frameImageName = contentDataResourceView.getString("contentName");
    } catch (GenericEntityException gee) {
        Debug.logError(gee, module);
        result = ServiceUtil.returnError(gee.getMessage());
        result.putAll(context);
    }
    if (UtilValidate.isNotEmpty(imageName)) {
        // Image Frame
        BufferedImage bufImg1 = ImageIO.read(new File(imageServerPath + "/" + productId + "/" + imageName));
        BufferedImage bufImg2 = ImageIO.read(new File(imageServerPath + "/frame/" + frameImageName));
        int bufImgType;
        if (BufferedImage.TYPE_CUSTOM == bufImg1.getType()) {
            bufImgType = BufferedImage.TYPE_INT_ARGB_PRE;
        } else {
            bufImgType = bufImg1.getType();
        }
        int width = Integer.parseInt(imageWidth);
        int height = Integer.parseInt(imageHeight);
        Map<String, Object> contentCtx = new HashMap<>();
        contentCtx.put("contentTypeId", "DOCUMENT");
        contentCtx.put("userLogin", userLogin);
        Map<String, Object> contentResult = new HashMap<>();
        try {
            contentResult = dispatcher.runSync("createContent", contentCtx);
            if (ServiceUtil.isError(contentResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(contentResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            result = ServiceUtil.returnError(e.getMessage());
            result.putAll(context);
        }
        Map<String, Object> contentThumb = new HashMap<>();
        contentThumb.put("contentTypeId", "DOCUMENT");
        contentThumb.put("userLogin", userLogin);
        Map<String, Object> contentThumbResult = new HashMap<>();
        try {
            contentThumbResult = dispatcher.runSync("createContent", contentThumb);
            if (ServiceUtil.isError(contentThumbResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(contentThumbResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            result = ServiceUtil.returnError(e.getMessage());
            result.putAll(context);
        }
        String contentIdThumb = (String) contentThumbResult.get("contentId");
        String contentId = (String) contentResult.get("contentId");
        String filenameToUse = (String) contentResult.get("contentId") + ".jpg";
        String filenameTouseThumb = (String) contentResult.get("contentId") + nameOfThumb + ".jpg";
        Image newImg1 = bufImg1.getScaledInstance(width, height, Image.SCALE_SMOOTH);
        Image newImg2 = bufImg2.getScaledInstance(width, height, Image.SCALE_SMOOTH);
        BufferedImage bufNewImg = combineBufferedImage(newImg1, newImg2, bufImgType);
        String mimeType = imageName.substring(imageName.lastIndexOf('.') + 1);
        ImageIO.write(bufNewImg, mimeType, new File(imageServerPath + "/" + productId + "/" + filenameToUse));
        double imgHeight = bufNewImg.getHeight();
        double imgWidth = bufNewImg.getWidth();
        Map<String, Object> resultResize = ImageManagementServices.resizeImageThumbnail(bufNewImg, imgHeight, imgWidth);
        ImageIO.write((RenderedImage) resultResize.get("bufferedImage"), mimeType, new File(imageServerPath + "/" + productId + "/" + filenameTouseThumb));
        String imageUrlResource = imageServerUrl + "/" + productId + "/" + filenameToUse;
        String imageUrlThumb = imageServerUrl + "/" + productId + "/" + filenameTouseThumb;
        ImageManagementServices.createContentAndDataResource(dctx, userLogin, filenameToUse, imageUrlResource, contentId, "image/jpeg");
        ImageManagementServices.createContentAndDataResource(dctx, userLogin, filenameTouseThumb, imageUrlThumb, contentIdThumb, "image/jpeg");
        Map<String, Object> createContentAssocMap = new HashMap<>();
        createContentAssocMap.put("contentAssocTypeId", "IMAGE_THUMBNAIL");
        createContentAssocMap.put("contentId", contentId);
        createContentAssocMap.put("contentIdTo", contentIdThumb);
        createContentAssocMap.put("userLogin", userLogin);
        createContentAssocMap.put("mapKey", "100");
        try {
            Map<String, Object> serviceResult = dispatcher.runSync("createContentAssoc", createContentAssocMap);
            if (ServiceUtil.isError(serviceResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            result = ServiceUtil.returnError(e.getMessage());
            result.putAll(context);
        }
        Map<String, Object> productContentCtx = new HashMap<>();
        productContentCtx.put("productId", productId);
        productContentCtx.put("productContentTypeId", "IMAGE");
        productContentCtx.put("fromDate", UtilDateTime.nowTimestamp());
        productContentCtx.put("userLogin", userLogin);
        productContentCtx.put("contentId", contentId);
        productContentCtx.put("statusId", "IM_PENDING");
        try {
            Map<String, Object> serviceResult = dispatcher.runSync("createProductContent", productContentCtx);
            if (ServiceUtil.isError(serviceResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            result = ServiceUtil.returnError(e.getMessage());
            result.putAll(context);
        }
        Map<String, Object> contentApprovalCtx = new HashMap<>();
        contentApprovalCtx.put("contentId", contentId);
        contentApprovalCtx.put("userLogin", userLogin);
        try {
            Map<String, Object> serviceResult = dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
            if (ServiceUtil.isError(serviceResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            result = ServiceUtil.returnError(e.getMessage());
            result.putAll(context);
        }
    } else {
        String errMsg = UtilProperties.getMessage(resourceError, "ProductPleaseSelectImage", locale);
        Debug.logFatal(errMsg, module);
        result = ServiceUtil.returnError(errMsg);
        result.putAll(context);
    }
    String successMsg = UtilProperties.getMessage(resource, "ProductFrameImageSuccessfully", locale);
    result = ServiceUtil.returnSuccess(successMsg);
    return result;
}
Also used : Locale(java.util.Locale) GenericValue(org.apache.ofbiz.entity.GenericValue) LocalDispatcher(org.apache.ofbiz.service.LocalDispatcher) HashMap(java.util.HashMap) Image(java.awt.Image) BufferedImage(java.awt.image.BufferedImage) RenderedImage(java.awt.image.RenderedImage) BufferedImage(java.awt.image.BufferedImage) Delegator(org.apache.ofbiz.entity.Delegator) GenericEntityException(org.apache.ofbiz.entity.GenericEntityException) GenericServiceException(org.apache.ofbiz.service.GenericServiceException) RandomAccessFile(java.io.RandomAccessFile) File(java.io.File)

Example 24 with LocalDispatcher

use of org.apache.ofbiz.service.LocalDispatcher in project ofbiz-framework by apache.

the class ImageManagementServices method createContentAndDataResource.

public static Map<String, Object> createContentAndDataResource(DispatchContext dctx, GenericValue userLogin, String filenameToUse, String imageUrl, String contentId, String fileContentType) {
    Map<String, Object> result = new HashMap<>();
    LocalDispatcher dispatcher = dctx.getDispatcher();
    Delegator delegator = dctx.getDelegator();
    Map<String, Object> dataResourceCtx = new HashMap<>();
    dataResourceCtx.put("objectInfo", imageUrl);
    dataResourceCtx.put("dataResourceName", filenameToUse);
    dataResourceCtx.put("userLogin", userLogin);
    dataResourceCtx.put("dataResourceTypeId", "IMAGE_OBJECT");
    dataResourceCtx.put("mimeTypeId", fileContentType);
    dataResourceCtx.put("isPublic", "Y");
    Map<String, Object> dataResourceResult;
    try {
        dataResourceResult = dispatcher.runSync("createDataResource", dataResourceCtx);
        if (ServiceUtil.isError(dataResourceResult)) {
            return ServiceUtil.returnError(ServiceUtil.getErrorMessage(dataResourceResult));
        }
    } catch (GenericServiceException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(e.getMessage());
    }
    String dataResourceId = (String) dataResourceResult.get("dataResourceId");
    result.put("dataResourceFrameId", dataResourceId);
    result.put("dataResourceId", dataResourceId);
    Map<String, Object> contentUp = new HashMap<>();
    contentUp.put("contentId", contentId);
    contentUp.put("dataResourceId", dataResourceResult.get("dataResourceId"));
    contentUp.put("contentName", filenameToUse);
    contentUp.put("userLogin", userLogin);
    try {
        Map<String, Object> serviceResult = dispatcher.runSync("updateContent", contentUp);
        if (ServiceUtil.isError(serviceResult)) {
            return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
        }
    } catch (GenericServiceException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(e.getMessage());
    }
    GenericValue content = null;
    try {
        content = EntityQuery.use(delegator).from("Content").where("contentId", contentId).queryOne();
    } catch (GenericEntityException e) {
        Debug.logError(e, module);
        return ServiceUtil.returnError(e.getMessage());
    }
    if (content != null) {
        GenericValue dataResource = null;
        try {
            dataResource = content.getRelatedOne("DataResource", false);
        } catch (GenericEntityException e) {
            Debug.logError(e, module);
            return ServiceUtil.returnError(e.getMessage());
        }
        if (dataResource != null) {
            dataResourceCtx.put("dataResourceId", dataResource.getString("dataResourceId"));
            try {
                Map<String, Object> serviceResult = dispatcher.runSync("updateDataResource", dataResourceCtx);
                if (ServiceUtil.isError(serviceResult)) {
                    return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
                }
            } catch (GenericServiceException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(e.getMessage());
            }
        }
    }
    return result;
}
Also used : GenericValue(org.apache.ofbiz.entity.GenericValue) LocalDispatcher(org.apache.ofbiz.service.LocalDispatcher) Delegator(org.apache.ofbiz.entity.Delegator) HashMap(java.util.HashMap) GenericEntityException(org.apache.ofbiz.entity.GenericEntityException) GenericServiceException(org.apache.ofbiz.service.GenericServiceException)

Example 25 with LocalDispatcher

use of org.apache.ofbiz.service.LocalDispatcher in project ofbiz-framework by apache.

the class ImageManagementServices method addMultipleuploadForProduct.

public static Map<String, Object> addMultipleuploadForProduct(DispatchContext dctx, Map<String, ? extends Object> context) {
    Map<String, Object> result = new HashMap<>();
    LocalDispatcher dispatcher = dctx.getDispatcher();
    Delegator delegator = dctx.getDelegator();
    GenericValue userLogin = (GenericValue) context.get("userLogin");
    String productId = (String) context.get("productId");
    productId = productId.trim();
    String productContentTypeId = (String) context.get("productContentTypeId");
    ByteBuffer imageData = (ByteBuffer) context.get("uploadedFile");
    String uploadFileName = (String) context.get("_uploadedFile_fileName");
    String imageResize = (String) context.get("imageResize");
    Locale locale = (Locale) context.get("locale");
    if (UtilValidate.isNotEmpty(uploadFileName)) {
        String imageServerPath = FlexibleStringExpander.expandString(EntityUtilProperties.getPropertyValue("catalog", "image.management.path", delegator), context);
        String imageServerUrl = FlexibleStringExpander.expandString(EntityUtilProperties.getPropertyValue("catalog", "image.management.url", delegator), context);
        String rootTargetDirectory = imageServerPath;
        File rootTargetDir = new File(rootTargetDirectory);
        if (!rootTargetDir.exists()) {
            boolean created = rootTargetDir.mkdirs();
            if (!created) {
                String errMsg = UtilProperties.getMessage(resourceError, "ProductCannotCreateTheTargetDirectory", locale);
                Debug.logFatal(errMsg, module);
                return ServiceUtil.returnError(errMsg);
            }
        }
        String sizeType = null;
        if (UtilValidate.isNotEmpty(imageResize)) {
            sizeType = imageResize;
        }
        Map<String, Object> contentCtx = new HashMap<>();
        contentCtx.put("contentTypeId", "DOCUMENT");
        contentCtx.put("userLogin", userLogin);
        Map<String, Object> contentResult;
        try {
            contentResult = dispatcher.runSync("createContent", contentCtx);
            if (ServiceUtil.isError(contentResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(contentResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            return ServiceUtil.returnError(e.getMessage());
        }
        String contentId = (String) contentResult.get("contentId");
        result.put("contentFrameId", contentId);
        result.put("contentId", contentId);
        String fileContentType = (String) context.get("_uploadedFile_contentType");
        if ("image/pjpeg".equals(fileContentType)) {
            fileContentType = "image/jpeg";
        } else if ("image/x-png".equals(fileContentType)) {
            fileContentType = "image/png";
        }
        // Create folder product id.
        String targetDirectory = imageServerPath + "/" + productId;
        File targetDir = new File(targetDirectory);
        if (!targetDir.exists()) {
            boolean created = targetDir.mkdirs();
            if (!created) {
                String errMsg = "Cannot create the target directory";
                Debug.logFatal(errMsg, module);
                return ServiceUtil.returnError(errMsg);
            }
        }
        File file = new File(imageServerPath + "/" + productId + "/" + uploadFileName);
        String imageName = null;
        imagePath = imageServerPath + "/" + productId + "/" + uploadFileName;
        file = checkExistsImage(file);
        if (UtilValidate.isNotEmpty(file)) {
            imageName = file.getPath();
            imageName = imageName.substring(imageName.lastIndexOf(File.separator) + 1);
        } else {
            imageName = "";
        }
        if (UtilValidate.isEmpty(imageResize)) {
            // Create image file original to folder product id.
            try {
                RandomAccessFile out = new RandomAccessFile(file, "rw");
                out.write(imageData.array());
                out.close();
            } catch (FileNotFoundException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "ProductImageViewUnableWriteFile", UtilMisc.toMap("fileName", file.getAbsolutePath()), locale));
            } catch (IOException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "ProductImageViewUnableWriteBinaryData", UtilMisc.toMap("fileName", file.getAbsolutePath()), locale));
            }
        }
        // Scale Image in different sizes
        if (UtilValidate.isNotEmpty(imageResize)) {
            File fileOriginal = new File(imageServerPath + "/" + productId + "/" + imageName);
            fileOriginal = checkExistsImage(fileOriginal);
            try {
                RandomAccessFile outFile = new RandomAccessFile(fileOriginal, "rw");
                outFile.write(imageData.array());
                outFile.close();
            } catch (FileNotFoundException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "ProductImageViewUnableWriteFile", UtilMisc.toMap("fileName", fileOriginal.getAbsolutePath()), locale));
            } catch (IOException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "ProductImageViewUnableWriteBinaryData", UtilMisc.toMap("fileName", fileOriginal.getAbsolutePath()), locale));
            }
            Map<String, Object> resultResize = new HashMap<>();
            try {
                resultResize.putAll(scaleImageMangementInAllSize(dctx, context, imageName, sizeType, productId));
            } catch (IOException e) {
                String errMsg = UtilProperties.getMessage(resourceError, "ProductScaleAdditionalImageInAllDifferentSizesIsImpossible", UtilMisc.toMap("errorString", e.toString()), locale);
                Debug.logError(e, errMsg, module);
                return ServiceUtil.returnError(errMsg);
            } catch (JDOMException e) {
                String errMsg = UtilProperties.getMessage(resourceError, "ProductErrorsOccurInParsingImageProperties.xml", UtilMisc.toMap("errorString", e.toString()), locale);
                Debug.logError(e, errMsg, module);
                return ServiceUtil.returnError(errMsg);
            }
        }
        Map<String, Object> contentThumbnail = createContentThumbnail(dctx, context, userLogin, imageData, productId, imageName);
        String filenameToUseThumb = (String) contentThumbnail.get("filenameToUseThumb");
        String contentIdThumb = (String) contentThumbnail.get("contentIdThumb");
        String imageUrl = imageServerUrl + "/" + productId + "/" + imageName;
        String imageUrlThumb = imageServerUrl + "/" + productId + "/" + filenameToUseThumb;
        createContentAndDataResource(dctx, userLogin, imageName, imageUrl, contentId, fileContentType);
        createContentAndDataResource(dctx, userLogin, filenameToUseThumb, imageUrlThumb, contentIdThumb, fileContentType);
        Map<String, Object> createContentAssocMap = new HashMap<>();
        createContentAssocMap.put("contentAssocTypeId", "IMAGE_THUMBNAIL");
        createContentAssocMap.put("contentId", contentId);
        createContentAssocMap.put("contentIdTo", contentIdThumb);
        createContentAssocMap.put("userLogin", userLogin);
        createContentAssocMap.put("mapKey", "100");
        try {
            Map<String, Object> serviceResult = dispatcher.runSync("createContentAssoc", createContentAssocMap);
            if (ServiceUtil.isError(serviceResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            return ServiceUtil.returnError(e.getMessage());
        }
        Map<String, Object> productContentCtx = new HashMap<>();
        productContentCtx.put("productId", productId);
        productContentCtx.put("productContentTypeId", productContentTypeId);
        productContentCtx.put("fromDate", UtilDateTime.nowTimestamp());
        productContentCtx.put("userLogin", userLogin);
        productContentCtx.put("contentId", contentId);
        productContentCtx.put("statusId", "IM_PENDING");
        try {
            Map<String, Object> serviceResult = dispatcher.runSync("createProductContent", productContentCtx);
            if (ServiceUtil.isError(serviceResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            return ServiceUtil.returnError(e.getMessage());
        }
        Map<String, Object> contentApprovalCtx = new HashMap<>();
        contentApprovalCtx.put("contentId", contentId);
        contentApprovalCtx.put("userLogin", userLogin);
        try {
            Map<String, Object> serviceResult = dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
            if (ServiceUtil.isError(serviceResult)) {
                return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
            }
        } catch (GenericServiceException e) {
            Debug.logError(e, module);
            return ServiceUtil.returnError(e.getMessage());
        }
        String autoApproveImage = EntityUtilProperties.getPropertyValue("catalog", "image.management.autoApproveImage", delegator);
        if ("Y".equals(autoApproveImage)) {
            Map<String, Object> autoApproveCtx = new HashMap<>();
            autoApproveCtx.put("contentId", contentId);
            autoApproveCtx.put("userLogin", userLogin);
            autoApproveCtx.put("checkStatusId", "IM_APPROVED");
            try {
                Map<String, Object> serviceResult = dispatcher.runSync("updateStatusImageManagement", autoApproveCtx);
                if (ServiceUtil.isError(serviceResult)) {
                    return ServiceUtil.returnError(ServiceUtil.getErrorMessage(serviceResult));
                }
            } catch (GenericServiceException e) {
                Debug.logError(e, module);
                return ServiceUtil.returnError(e.getMessage());
            }
        }
    }
    return result;
}
Also used : Locale(java.util.Locale) GenericValue(org.apache.ofbiz.entity.GenericValue) LocalDispatcher(org.apache.ofbiz.service.LocalDispatcher) HashMap(java.util.HashMap) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException) JDOMException(org.jdom.JDOMException) ByteBuffer(java.nio.ByteBuffer) Delegator(org.apache.ofbiz.entity.Delegator) RandomAccessFile(java.io.RandomAccessFile) GenericServiceException(org.apache.ofbiz.service.GenericServiceException) RandomAccessFile(java.io.RandomAccessFile) File(java.io.File)

Aggregations

LocalDispatcher (org.apache.ofbiz.service.LocalDispatcher)427 GenericValue (org.apache.ofbiz.entity.GenericValue)356 Delegator (org.apache.ofbiz.entity.Delegator)324 GenericServiceException (org.apache.ofbiz.service.GenericServiceException)321 Locale (java.util.Locale)296 GenericEntityException (org.apache.ofbiz.entity.GenericEntityException)270 HashMap (java.util.HashMap)214 BigDecimal (java.math.BigDecimal)135 GeneralException (org.apache.ofbiz.base.util.GeneralException)87 Timestamp (java.sql.Timestamp)81 LinkedList (java.util.LinkedList)79 IOException (java.io.IOException)59 Map (java.util.Map)51 HttpSession (javax.servlet.http.HttpSession)49 OrderReadHelper (org.apache.ofbiz.order.order.OrderReadHelper)28 ModelService (org.apache.ofbiz.service.ModelService)28 EntityCondition (org.apache.ofbiz.entity.condition.EntityCondition)24 ShoppingCart (org.apache.ofbiz.order.shoppingcart.ShoppingCart)23 Security (org.apache.ofbiz.security.Security)20 ByteBuffer (java.nio.ByteBuffer)19