コード例 #1
0
        private string ReplaceCommendatoryProduct(CommendatoryProductsInfo entity, string emailTemplateID)
        {
            if (entity == null)
            {
                return(string.Empty);
            }
            string item = "<td align=\"left\" valign=\"top\" style=\"padding-left:25px;\">" +
                          "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"width:180px; overflow:hidden; background:#fff;\">" +
                          "<tr>" +
                          "<td width=\"86\"><a [ProductItemLink]><img style=\"border:0;width:80px;height:80px;\" src=\"[ProductImageTag]\" /></a></td>" +
                          "<td width=\"94\" valign=\"middle\";><span style=\"padding-left:10px; color:#ff5100;\">¥<b>[NeweggPrice]</b></span></td>" +
                          "</tr>" +
                          "<tr>" +
                          "<td colspan=\"2\">" +
                          "<p style=\"line-height:18px; height:36px; width:180px; overflow:hidden; margin-bottom:8px;\"><a [ProductItemLink] style=\"color:#484848; text-decor6ation:none;\">[ProductTitle]</a></p>" +
                          "</td>" +
                          "</tr>" +
                          "</table>" +
                          "</td>";

            string productLinkUrl = string.Format("http://www.kjt.com/product/detail/{0}", entity.ProductSysNo);

            ReplaceProductCM_MMC(emailTemplateID, ref productLinkUrl, entity.ProductID);
            productLinkUrl = string.Format("href=\"{0}\" target=\"_blank\"", productLinkUrl);
            string imageUrl = string.Format("http://image.kjt.com/neg/P120/{0}?v={1}", entity.DefaultImage, entity.ImageVersion);

            string title = entity.ProductName;

            string price = entity.Price.ToString("##,###0.00");

            item = item.Replace("[ProductItemLink]", productLinkUrl)
                   .Replace("[ProductImageTag]", imageUrl)
                   .Replace("[ProductTitle]", title)
                   .Replace("[NeweggPrice]", price);

            return(item);
        }
コード例 #2
0
        private void SendEmailToCustomerForSOInfo(SOInfo soInfo, string emailTemplateID)
        {
            try
            {
                ECCentral.BizEntity.Customer.CustomerBasicInfo customerInfo = GetCustomerBaseInfo(soInfo.BaseInfo.CustomerSysNo.Value);
                string customerEmail = customerInfo.Email == null ? null : customerInfo.Email.Trim();

                if (customerEmail == null)
                {
                    return;
                }
                KeyValueVariables keyValueVariables = new KeyValueVariables();
                KeyTableVariables keyTableVariables = new KeyTableVariables();

                #region 填充基本属性
                keyValueVariables.Add("SOSysNo", soInfo.BaseInfo.SysNo.Value.ToString());
                keyValueVariables.Add("SOID", soInfo.BaseInfo.SOID);
                keyValueVariables.Add("CustomerName", customerInfo.CustomerName);
                keyValueVariables.Add("CustomerID", customerInfo.CustomerID);
                keyValueVariables.Add("OrderTime", soInfo.BaseInfo.CreateTime.Value.ToString(SOConst.DateTimeFormat));
                keyValueVariables.Add("InvoiceHeader", soInfo.InvoiceInfo.Header);
                keyValueVariables.Add("ReceiveName", soInfo.ReceiverInfo.Name);
                ECCentral.BizEntity.Common.AreaInfo areaInfo = ExternalDomainBroker.GetAreaInfoByDistrictSysNo(soInfo.ReceiverInfo.AreaSysNo.Value);
                keyValueVariables.Add("ProvinceName", areaInfo.ProvinceName);
                keyValueVariables.Add("CityName", areaInfo.CityName);
                keyValueVariables.Add("DistrictName", areaInfo.DistrictName);
                keyValueVariables.Add("ReceiveAddress", soInfo.ReceiverInfo.Address);
                keyValueVariables.Add("ReceiveZip", soInfo.ReceiverInfo.Zip);
                keyValueVariables.Add("ReceivePhone", String.IsNullOrEmpty(soInfo.ReceiverInfo.Phone) ? soInfo.ReceiverInfo.MobilePhone : soInfo.ReceiverInfo.Phone);
                ECCentral.BizEntity.Common.PayType payType = ExternalDomainBroker.GetPayTypeBySysNo(soInfo.BaseInfo.PayTypeSysNo.Value);
                keyValueVariables.Add("PayType", payType.PayTypeName);
                ECCentral.BizEntity.Common.ShippingType shippingType = ExternalDomainBroker.GetShippingTypeBySysNo(soInfo.ShippingInfo.ShipTypeSysNo.Value);
                keyValueVariables.Add("ShipType", shippingType.ShippingTypeName);
                keyValueVariables.Add("ShipPeriod", shippingType.Period);
                keyValueVariables.Add("CashPay", soInfo.BaseInfo.CashPay.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("ShipPrice", soInfo.BaseInfo.ShipPrice.Value.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("PremiumAmount", soInfo.BaseInfo.PremiumAmount.Value.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("ReceivableAmount", soInfo.BaseInfo.ReceivableAmount.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("GainPoint", soInfo.BaseInfo.GainPoint.Value);
                keyValueVariables.Add("Weight", soInfo.ShippingInfo.Weight);

                string changeAmount = (soInfo.BaseInfo.OriginalReceivableAmount - soInfo.BaseInfo.ReceivableAmount).ToString(SOConst.DecimalFormat);
                keyValueVariables.Add("ChangeAmount", changeAmount);
                keyValueVariables.Add("ChangeAmountDisplay", changeAmount != (0M).ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("GiftCardPay", soInfo.BaseInfo.GiftCardPay.Value.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("GiftCardDisplay", soInfo.BaseInfo.GiftCardPay != 0);
                keyValueVariables.Add("PointPay", soInfo.BaseInfo.PointPayAmount);
                keyValueVariables.Add("PointPayDisplay", soInfo.BaseInfo.PointPay != 0);
                keyValueVariables.Add("PrePay", soInfo.BaseInfo.PrepayAmount.Value.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("PrePayDisplay", soInfo.BaseInfo.PrepayAmount != 0);
                keyValueVariables.Add("PayPrice", soInfo.BaseInfo.PayPrice.Value.ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("PayPriceDisplay", soInfo.BaseInfo.PayPrice != 0);
                keyValueVariables.Add("PromotionAmount", Math.Abs(soInfo.BaseInfo.PromotionAmount.Value).ToString(SOConst.DecimalFormat));
                keyValueVariables.Add("PromotionDisplay", soInfo.BaseInfo.PromotionAmount != 0);
                keyValueVariables.Add("NowYear", DateTime.Now.Year);
                keyValueVariables.Add("TariffAmt", soInfo.BaseInfo.TariffAmount.HasValue?soInfo.BaseInfo.TariffAmount.Value.ToString(SOConst.DecimalFormat) : 0M.ToString(SOConst.DecimalFormat));
                #endregion

                //int weight = 0;

                #region 替换邮件模板内连接追踪代码
                ReplaceCM_MMC(emailTemplateID, keyValueVariables);
                #endregion

                #region 填充商品
                string imgSrc   = string.Empty;
                string pagePath = string.Empty;
                soInfo.Items.ForEach(item =>
                {
                    //weight += item.Weight.Value * item.Quantity.Value;
                    string tbKey        = String.Format("Items_{0}", item.ProductType.ToString());
                    pagePath            = "http://www.kjt.com/product/detail/" + item.ProductSysNo;
                    imgSrc              = "http://image.kjt.com/neg/P60/" + item.ProductID + ".jpg";
                    DataTable tableList = null;
                    if (!keyTableVariables.ContainsKey(tbKey))
                    {
                        tableList = new DataTable();
                        tableList.Columns.AddRange(new DataColumn[]
                        {
                            new DataColumn("ProductID"),
                            new DataColumn("ProductName"),
                            new DataColumn("Price"),
                            new DataColumn("Quantity"),
                            new DataColumn("Amount"),
                            new DataColumn("PagePath"),
                            new DataColumn("ImgSrc")
                        });
                        keyTableVariables.Add(tbKey, tableList);
                    }
                    else
                    {
                        tableList = keyTableVariables[tbKey];
                    }
                    //连接增加追踪代码
                    ReplaceProductCM_MMC(emailTemplateID, ref pagePath, item.ProductID);
                    tableList.Rows.Add(new string[]
                    {
                        item.ProductType == SOProductType.Coupon ? null : item.ProductID,
                        item.ProductName,
                        item.OriginalPrice.Value.ToString(SOConst.DecimalFormat),
                        item.Quantity.Value.ToString(),
                        (item.Quantity.Value * item.OriginalPrice.Value).ToString(SOConst.DecimalFormat),
                        pagePath,
                        imgSrc
                    });
                });
                #endregion

                #region 组合销售
                List <SOPromotionInfo> comboPromotionList = soInfo.SOPromotions.FindAll(p => { return(p.PromotionType == SOPromotionType.Combo); });
                keyValueVariables.Add("PromotionInfoDisplay", soInfo.BaseInfo.PromotionAmount != 0);
                if (comboPromotionList != null)
                {
                    DataTable comboTable = new DataTable();
                    comboTable.Columns.AddRange(new DataColumn[]
                    {
                        new DataColumn("ComboName"),
                        new DataColumn("ComboDiscount"),
                        new DataColumn("ComboTime"),
                        new DataColumn("ComboTotalDiscount")
                    });
                    keyTableVariables.Add("ComboList", comboTable);
                    List <ECCentral.BizEntity.MKT.ComboInfo> comboInfoList = ExternalDomainBroker.GetComboList(comboPromotionList.Select <SOPromotionInfo, int>(p => p.PromotionSysNo.Value).ToList <int>());
                    if (comboInfoList != null)
                    {
                        comboPromotionList.ForEach(promotion =>
                        {
                            ECCentral.BizEntity.MKT.ComboInfo comboInfo = comboInfoList.FirstOrDefault(cb => cb.SysNo == promotion.PromotionSysNo);
                            comboTable.Rows.Add(new string[]
                            {
                                comboInfo == null ? null : comboInfo.Name.Content,
                                (promotion.DiscountAmount.Value / promotion.Time.Value).ToString(SOConst.DecimalFormat),
                                promotion.Time.Value.ToString(),
                                promotion.DiscountAmount.Value.ToString(SOConst.DecimalFormat)
                            });
                        });
                    }
                }
                #endregion

                #region 填充推荐商品信息
                string result = string.Empty;
                //测试订单号:388280
                List <CommendatoryProductsInfo> list = ObjectFactory <ISODA> .Instance.GetCommendatoryProducts(int.Parse(soInfo.BaseInfo.SOID));

                if (list != null && list.Count > 0)
                {
                    result = "<br /><table width=\"650px\" style=\"border-collapse: collapse; border: 1px solid #ddd;\" cellspacing=\"0\" cellpadding=\"0\">\n" +
                             "<tr style=\"background:#fff;\">\n" +
                             "<td style=\"width:30px; padding:10px 0 0 10px;\"><img src=\"http://c1.neweggimages.com.cn/NeweggPic2/Marketing/201108/chuhuo/images/icon_4.jpg\" /></td>\n" +
                             "<td style=\"text-align:left; padding:10px 0 0 5px;\"><span style=\"font-family:\"微软雅黑\";font-size:16px; display:inline-block; padding:0; padding-left:5px;\"><strong>我们猜您可能还对下面的商品感兴趣</strong></span></td>\n" +
                             "</tr>\n" +
                             "</table>\n" +
                             "<div style=\"padding-top:10px;border-collapse: collapse; border: 1px solid #ddd;width:648px\">" +
                             "<table cellspacing=\"0\" cellpadding=\"0\" style=\"padding-bottom:10px;border-collapse: collapse; border:0;\">\n" +
                             "<tr style=\" background:#fff;\">\n" +
                             "[RevommendProductList1]\n" +
                             "</tr>\n" +
                             "<tr style=\"background:#fff;\">\n" +
                             "[RevommendProductList2]\n" +
                             "</tr>\n" +
                             "</table>\n" +
                             "</div>";
                    string item1 = string.Empty,
                           item2 = string.Empty;

                    IEnumerator <CommendatoryProductsInfo> rator = list.Take(3).GetEnumerator();
                    while (rator.MoveNext())
                    {
                        CommendatoryProductsInfo entity = rator.Current;
                        item1 += ReplaceCommendatoryProduct(entity, emailTemplateID);
                    }
                    rator = list.Skip(3).Take(3).GetEnumerator();
                    while (rator.MoveNext())
                    {
                        CommendatoryProductsInfo entity = rator.Current;
                        item2 += ReplaceCommendatoryProduct(entity, emailTemplateID);
                    }

                    result = result.Replace("[RevommendProductList1]", item1)
                             .Replace("[RevommendProductList2]", item2);

                    keyValueVariables.Add("CommendatoryProducts", result);
                }
                #endregion

                #region 填充备注信息
                string memo = string.Empty;
                if (!string.IsNullOrEmpty(soInfo.BaseInfo.MemoForCustomer))
                {
                    memo = @"<table border='0' cellpadding='5' cellspacing='0' style='width: 650px; border-collapse: collapse;font-size: 9pt;'>
                                <tr>
                                    <td style='border: 1px solid #ddd; color: #FF4E00; font-size: 10.5pt; font-weight: bold; background: #F2F2F2;'>
                                        备注信息
                                    </td>
                                </tr>
                                <tr>
                                    <td id='Memo' style='border: 1px solid #ddd;'>
                                        " + soInfo.BaseInfo.MemoForCustomer + @"
                                    </td>
                                </tr>
                            </table>";
                    keyValueVariables.Add("Memo", memo);
                }
                #endregion

                ExternalDomainBroker.SendExternalEmail(customerEmail, emailTemplateID, keyValueVariables, keyTableVariables, customerInfo.FavoriteLanguageCode);
            }
            catch (Exception ex)
            {
                ExceptionHelper.HandleException(ex);
            }
        }