⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 valuelinkservices.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            vlFulFill.put("merchantId", UtilProperties.getPropertyValue(paymentConfig, "payment.valuelink.merchantId"));            vlFulFill.put("partyId", partyId);            vlFulFill.put("orderId", orderId);            vlFulFill.put("orderItemSeqId", orderItem.get("orderItemSeqId"));            vlFulFill.put("surveyResponseId", surveyResponse.get("surveyResponseId"));            vlFulFill.put("cardNumber", activateResult.get("cardNumber"));            vlFulFill.put("pinNumber", activateResult.get("pin"));            vlFulFill.put("amount", activateResult.get("amount"));            vlFulFill.put("responseCode", activateResult.get("responseCode"));            vlFulFill.put("referenceNum", activateResult.get("referenceNum"));            vlFulFill.put("authCode", activateResult.get("authCode"));            vlFulFill.put("userLogin", userLogin);            try {                dispatcher.runAsync("createGcFulFillmentRecord", vlFulFill, true);            } catch (GenericServiceException e) {                Debug.logError(e, module);                return ServiceUtil.returnError("Unable to store fulfillment info");            }            if (failure) {                return ServiceUtil.returnError("Activate Failed");            }            // add some information to the answerMap for the email            answerMap.put("cardNumber", activateResult.get("cardNumber"));            answerMap.put("pinNumber", activateResult.get("pin"));            answerMap.put("amount", activateResult.get("amount"));            // get the email setting for this email type            GenericValue productStoreEmail = null;            String emailType = "PRDS_GC_PURCHASE";            try {                productStoreEmail = delegator.findByPrimaryKey("ProductStoreEmailSetting", UtilMisc.toMap("productStoreId", productStoreId, "emailType", emailType));            } catch (GenericEntityException e) {                Debug.logError(e, "Unable to get product store email setting for gift card purchase", module);            }            if (productStoreEmail == null) {                Debug.logError("No gift card purchase email setting found for this store; cannot send gift card information", module);            } else {                ResourceBundleMapWrapper uiLabelMap = (ResourceBundleMapWrapper) UtilProperties.getResourceBundleMap("EcommerceUiLabels", locale);                uiLabelMap.addBottomResourceBundle("OrderUiLabels");                uiLabelMap.addBottomResourceBundle("CommonUiLabels");                answerMap.put("uiLabelMap", uiLabelMap);                answerMap.put("locale", locale);                // set the bcc address(s)                String bcc = productStoreEmail.getString("bccAddress");                if (copyMe) {                    if (UtilValidate.isNotEmpty(bcc)) {                        bcc = bcc + "," + orderEmails;                    } else {                        bcc = orderEmails;                    }                }                Map emailCtx = new HashMap();                String bodyScreenLocation = productStoreEmail.getString("bodyScreenLocation");                if (UtilValidate.isEmpty(bodyScreenLocation)) {                    bodyScreenLocation = ProductStoreWorker.getDefaultProductStoreEmailScreenLocation(emailType);                }                emailCtx.put("bodyScreenUri", bodyScreenLocation);                emailCtx.put("bodyParameters", answerMap);                emailCtx.put("sendTo", sendToEmail);                emailCtx.put("contentType", productStoreEmail.get("contentType"));                emailCtx.put("sendFrom", productStoreEmail.get("fromAddress"));                emailCtx.put("sendCc", productStoreEmail.get("ccAddress"));                emailCtx.put("sendBcc", bcc);                emailCtx.put("subject", productStoreEmail.getString("subject"));                emailCtx.put("userLogin", userLogin);                // send off the email async so we will retry on failed attempts                try {                    dispatcher.runAsync("sendMailFromScreen", emailCtx);                } catch (GenericServiceException e) {                    Debug.logError(e, "Problem sending mail", module);                    // this is fatal; we will rollback and try again later                    return ServiceUtil.returnError("Error sending Gift Card notice email: " + e.toString());                }            }        }        return ServiceUtil.returnSuccess();    }    public static Map giftCardReload(DispatchContext dctx, Map context) {        // this service should always be called via FULFILLMENT_EXTSYNC        LocalDispatcher dispatcher = dctx.getDispatcher();        GenericDelegator delegator = dctx.getDelegator();        GenericValue userLogin = (GenericValue) context.get("userLogin");        GenericValue orderItem = (GenericValue) context.get("orderItem");        Locale locale = (Locale) context.get("locale");        // order ID for tracking        String orderId = orderItem.getString("orderId");        // the order header for store info        GenericValue orderHeader = null;        try {            orderHeader = orderItem.getRelatedOne("OrderHeader");        } catch (GenericEntityException e) {            Debug.logError(e, "Unable to get OrderHeader from OrderItem",module);            return ServiceUtil.returnError("Unable to get OrderHeader from OrderItem");        }        // get the order read helper        OrderReadHelper orh = new OrderReadHelper(orderHeader);        // get the currency        String currency = orh.getCurrency();        // make sure we have a currency        if (currency == null) {            currency = UtilProperties.getPropertyValue("general.properties", "currency.uom.id.default", "USD");        }        // get the product store        String productStoreId = null;        if (orderHeader != null) {            productStoreId = orh.getProductStoreId();        }        if (productStoreId == null) {            return ServiceUtil.returnError("Unable to process gift card reload; no productStoreId on OrderHeader : " + orderId);        }        // payment config        GenericValue paymentSetting = ProductStoreWorker.getProductStorePaymentSetting(delegator, productStoreId, "GIFT_CARD", null, true);        String paymentConfig = null;        if (paymentSetting != null) {            paymentConfig = paymentSetting.getString("paymentPropertiesPath");        }        if (paymentConfig == null) {            return ServiceUtil.returnError("Unable to get payment configuration file");        }        // party ID for tracking        GenericValue placingParty = orh.getPlacingParty();        String partyId = null;        if (placingParty != null) {            partyId = placingParty.getString("partyId");        }        // amount of the gift card reload        Double amount = orderItem.getDouble("unitPrice");        // survey information        String surveyId = UtilProperties.getPropertyValue(paymentConfig, "payment.giftcert.reload.surveyId");        // get the survey response        GenericValue surveyResponse = null;        try {            Map fields = UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItem.get("orderItemSeqId"), "surveyId", surveyId);            List order = UtilMisc.toList("-responseDate");            List responses = delegator.findByAnd("SurveyResponse", fields, order);            // there should be only one            surveyResponse = EntityUtil.getFirst(responses);        } catch (GenericEntityException e) {            Debug.logError(e, module);            return ServiceUtil.returnError("Unable to get survey response information; cannot fulfill gift card reload");        }        // get the response answers        List responseAnswers = null;        try {            responseAnswers = surveyResponse.getRelated("SurveyResponseAnswer");        } catch (GenericEntityException e) {            Debug.logError(e, module);            return ServiceUtil.returnError("Unable to get survey response answers from survey response; cannot fulfill gift card reload");        }        // make a map of answer info        Map answerMap = new HashMap();        if (responseAnswers != null) {            Iterator rai = responseAnswers.iterator();            while (rai.hasNext()) {                GenericValue answer = (GenericValue) rai.next();                GenericValue question = null;                try {                    question = answer.getRelatedOne("SurveyQuestion");                } catch (GenericEntityException e) {                    Debug.logError(e, module);                    return ServiceUtil.returnError("Unable to get survey question from answer");                }                if (question != null) {                    String desc = question.getString("description");                    String ans = answer.getString("textResponse");  // only support text response types for now                    answerMap.put(desc, ans);                }            }        }        String cardNumberKey = UtilProperties.getPropertyValue(paymentConfig, "payment.giftcert.reload.survey.cardNumber");        String pinNumberKey = UtilProperties.getPropertyValue(paymentConfig, "payment.giftcert.reload.survey.pinNumber");        String cardNumber = (String) answerMap.get(cardNumberKey);        String pinNumber = (String) answerMap.get(pinNumberKey);        // reload the gift card        Map reloadCtx = new HashMap();        reloadCtx.put("paymentConfig", paymentConfig);        reloadCtx.put("currency", currency);        reloadCtx.put("partyId", partyId);        reloadCtx.put("orderId", orderId);        reloadCtx.put("cardNumber", cardNumber);        reloadCtx.put("pin", pinNumber);        reloadCtx.put("amount", amount);        reloadCtx.put("userLogin", userLogin);        Map reloadResult = null;        try {            reloadResult = dispatcher.runSync("reloadGiftCard", reloadCtx);        } catch (GenericServiceException e) {            Debug.logError(e, "Unable to reload gift card", module);            return ServiceUtil.returnError("Problem running reload service");        }        // create the fulfillment record        Map vlFulFill = new HashMap();        vlFulFill.put("typeEnumId", "GC_RELOAD");        vlFulFill.put("merchantId", UtilProperties.getPropertyValue(paymentConfig, "payment.valuelink.merchantId"));        vlFulFill.put("partyId", partyId);        vlFulFill.put("orderId", orderId);        vlFulFill.put("orderItemSeqId", orderItem.get("orderItemSeqId"));        vlFulFill.put("surveyResponseId", surveyResponse.get("surveyResponseId"));        vlFulFill.put("cardNumber", cardNumber);        vlFulFill.put("pinNumber", pinNumber);        vlFulFill.put("amount", amount);        vlFulFill.put("responseCode", reloadResult.get("responseCode"));        vlFulFill.put("referenceNum", reloadResult.get("referenceNum"));        vlFulFill.put("authCode", reloadResult.get("authCode"));        vlFulFill.put("userLogin", userLogin);        try {            dispatcher.runAsync("createGcFulFillmentRecord", vlFulFill, true);        } catch (GenericServiceException e) {            Debug.logError(e, module);            return ServiceUtil.returnError("Unable to store fulfillment info");        }        Boolean processResult = (Boolean) reloadResult.get("processResult");        if (reloadResult == null || reloadResult.containsKey(ModelService.ERROR_MESSAGE) || !processResult.booleanValue()) {            Debug.logError("Reload Failed Need to Refund : " + reloadResult, module);            // process the return            try {                Map refundCtx = UtilMisc.toMap("orderItem", orderItem, "partyId", partyId, "userLogin", userLogin);                dispatcher.runAsync("refundGcPurchase", refundCtx, null, true, 300, true);            } catch (GenericServiceException e) {                Debug.logError(e, "ERROR! Unable to call create refund service; this failed reload will NOT be refunded", module);            }            String responseCode = "-1";            if (processResult != null) {                responseCode = (String) reloadResult.get("responseCode");            }            if ("17".equals(responseCode)) {                Debug.logError("Error code : " + responseCode + " : Max Balance Exceeded", module);                return ServiceUtil.returnError("Gift Card Reload Failed : Max Balance Exceeded; charges will be refunded");            } else {                Debug.logError("Error code : " + responseCode + " : Processing Error", module);                return ServiceUtil.returnError("Gift Card Reload Failed : Processing Error; charges will be refunded");            }        }        // add some information to the answerMap for the email        answerMap.put("processResult", reloadResult.get("processResult"));        answerMap.put("responseCode", reloadResult.get("responseCode"));        answerMap.put("previousAmount", reloadResult.get("previousAmount"));        answerMap.put("amount", reloadResult.get("amount"));        // get the email setting for this email type        GenericValue productStoreEmail = null;        String emailType = "PRDS_GC_RELOAD";        try {            productStoreEmail = delegator.findByPrimaryKey("ProductStoreEmailSetting", UtilMisc.toMap("productStoreId", productStoreId, "emailType", emailType));        } catch (GenericEntityException e) {            Debug.logError(e, "Unable to get product store email setting for gift card purchase", module);        }        if (productStoreEmail == null) {            Debug.logError("No gift card purchase email setting found for this store; cannot send gift card information", module);        } else {            Map emailCtx = new HashMap();            ResourceBundleMapWrapper uiLabelMap = (ResourceBundleMapWrapper) UtilProperties.getResourceBundleMap("EcommerceUiLabels", locale);            uiLabelMap.addBottomResourceBundle("OrderUiLabels");            uiLabelMap.addBottomResourceBundle("CommonUiLabels");            answerMap.put("uiLabelMap", uiLabelMap);            answerMap.put("locale", locale);                        String bodyScreenLocation = productStoreEmail.getString("bodyScreenLocation");            if (UtilValidate.isEmpty(bodyScreenLocation)) {                bodyScreenLocation = ProductStoreWorker.getDefaultProductStoreEmailScreenLocation(emailType);            }            emailCtx.put("bodyScreenUri", bodyScreenLocation);            emailCtx.put("bodyParameters", answerMap);            emailCtx.put("sendTo", orh.getOrderEmailString()); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -