public static void SalesOrderMailSuccessful(OrderInfo order) { foreach (var subOrder in order.SubOrderList.Values) { if (subOrder.SOType == (int)SOType.VirualGroupBuy) { continue; } ECommerce.Entity.Member.CustomerInfo customer = CustomerDA.GetCustomerByID(subOrder.Customer.ID); if (string.IsNullOrEmpty(customer.Email)) { return; } AsyncEmail email = new AsyncEmail(); email.MailAddress = customer.Email; email.CustomerID = customer.CustomerID; email.Status = (int)EmailStatus.NotSend; string token = Guid.NewGuid().ToString("N"); email.ImgBaseUrl = ConfigurationManager.AppSettings["CDNWebDomain"].ToString(); email.SetNewTokenUrl = "/EmailVerifySucceed?token=" + token + "&sysno=" + customer.SysNo.ToString() + "&email=" + System.Web.HttpUtility.HtmlEncode(customer.Email); string subject = string.Empty; email.MailBody = MailHelper.GetMailTemplateBody("SalesOrderMailSuccessful", out subject); email.MailSubject = subject.Replace("[SOSysNo]", subOrder.ID.ToString()); //订单内容 email.MailBody = email.MailBody.Replace("[SOSysNo]", subOrder.ID.ToString()); email.MailBody = email.MailBody.Replace("[OrderTime]", subOrder.InDate.ToString("yyyy年MM月dd日 HH时mm分")); email.MailBody = email.MailBody.Replace("[CustomerID]", subOrder.Customer.ID); email.MailBody = email.MailBody.Replace("[CustomerName]", subOrder.Customer.Name); email.MailBody = email.MailBody.Replace("[ContactName]", subOrder.Contact.Name); email.MailBody = email.MailBody.Replace("[ContactMobilePhone]", subOrder.Contact.MobilePhone); email.MailBody = email.MailBody.Replace("[ContactPhone]", subOrder.Contact.Phone); var area = CommonFacade.GetArea(subOrder.Contact.AddressAreaID); string address = string.Format("{0} {1} {2} {3}", area.ProvinceName, area.CityName, area.DistrictName, subOrder.Contact.AddressDetail); email.MailBody = email.MailBody.Replace("[ContactAddress]", address); email.MailBody = email.MailBody.Replace("[ContactZipCode]", subOrder.Contact.ZipCode); email.MailBody = email.MailBody.Replace("[ShipTypeName]", (string)subOrder["ShipTypeName"]); email.MailBody = email.MailBody.Replace("[PayTypeName]", subOrder.PayTypeName); email.MailBody = email.MailBody.Replace("[CashPayAmountWithTax]", (subOrder.CashPayAmount + subOrder.TaxAmount).ToString("F2")); email.MailBody = email.MailBody.Replace("[TotalWeight]", (((decimal)subOrder.TotalWeight) / 1000).ToString("F3")); email.MailBody = email.MailBody.Replace("[ShippingAmount]", subOrder.ShippingAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[TaxAmount]", subOrder.TaxAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[CouponAmount]", subOrder.CouponAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[GiftCardPayAmount]", subOrder.GiftCardPayAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[BalancePayAmount]", subOrder.BalancePayAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[TotalDiscountAmount]", subOrder.TotalDiscountAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[PointPayAmount]", subOrder.PointPayAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[SOAmount]", subOrder.SOAmount.ToString("F2")); email.MailBody = email.MailBody.Replace("[SOMemo]", subOrder.Memo); email.MailBody = email.MailBody.Replace("[SendTime]", DateTime.Now.ToString("yyyy-MM-dd")); email.MailBody = email.MailBody.Replace("[Year]", DateTime.Now.Year.ToString()); string domain = ConfigurationManager.AppSettings["WebDomain"].ToString(); StringBuilder sb = new StringBuilder(); if (subOrder.OrderItemGroupList != null) { subOrder.OrderItemGroupList.ForEach(groupItem => { groupItem.ProductItemList.ForEach(item => { sb.Append("<tr style=\"background:#fff;\">"); sb.AppendFormat("<td align=\"center\" valign=\"middle\" style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee;\"><a href=\"{0}\"><img src=\"{1}\" width=\"50\" height=\"50\" border=\"0\" /></a></td>", domain + "/product/detail/" + item.ProductSysNo, ProductFacade.BuildProductImage(ImageSize.P60, item.DefaultImage)); sb.AppendFormat("<td align=\"center\" style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee;\"><p>{0}</p></td>", item.ProductID); sb.AppendFormat("<td valign=\"middle\" style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee; border-right:1px solid #eeeeee;\"><a href=\"{0}\" style=\"color:#ff6600; text-decoration:none; line-height:18px;\">{1}</a></td>", domain + "/product/detail/" + item.ProductSysNo, item.ProductName); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">¥{0}</td>", item.UnitSalePrice.ToString("F2")); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">{0}</td>", item.UnitQuantity); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">¥{0}</td>", item.TotalSalePrice.ToString("F2")); sb.Append("</tr>"); }); }); } if (subOrder.GiftItemList != null) { var mergedSaleGiftList = new List <OrderGiftItem>(); subOrder.GiftItemList.ForEach(gift => { if (!mergedSaleGiftList.Exists(g => { if (g.ProductSysNo == gift.ProductSysNo) { g.UnitQuantity += gift.UnitQuantity; return(true); } return(false); })) { mergedSaleGiftList.Add(gift); } }); foreach (var item in mergedSaleGiftList) { sb.Append("<tr style=\"background:#FFF4F2;\">"); sb.AppendFormat("<td style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee;\"> </td>"); sb.AppendFormat("<td style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee;\"> </td>"); sb.AppendFormat("<td valign=\"middle\" style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee; border-right:1px solid #eeeeee;line-height:18px;\"><span style=\"color:#ff6600; padding-right:8px;\">[赠品]</span>{0}</td>", item.ProductName); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">¥{0}</td>", item.UnitSalePrice.ToString("F2")); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">{0}</td>", item.UnitQuantity); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">¥{0}</td>", item.TotalSalePrice.ToString("F2")); sb.Append("</tr>"); } } if (subOrder.AttachmentItemList != null) { foreach (var item in subOrder.AttachmentItemList) { sb.Append("<tr style=\"background:#FFF4F2;\">"); sb.AppendFormat("<td style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee;\"> </td>"); sb.AppendFormat("<td style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee;\"> </td>"); sb.AppendFormat("<td valign=\"middle\" style=\"padding-left:5px; border-left:1px solid #eeeeee; border-top:1px solid #eeeeee; border-right:1px solid #eeeeee;line-height:18px;\"><span style=\"color:#ff6600; padding-right:8px;\">[附件]</span>{0}</td>", item.ProductName); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">¥{0}</td>", item.UnitSalePrice.ToString("F2")); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">{0}</td>", item.UnitQuantity); sb.AppendFormat("<td align=\"center\" style=\"border-right:1px solid #eeeeee; border-top:1px solid #eeeeee;\">¥{0}</td>", item.TotalSalePrice.ToString("F2")); sb.Append("</tr>"); } } if (subOrder.TotalRewardedPoint >= 0) { sb.Append("<tr style=\"background:#fff;\">"); sb.AppendFormat("<td colspan=\"6\" style=\"border-bottom:1px solid #eeeeee; border-top:1px solid #eeeeee; height:41px; text-align:center; font-weight:bold;\" align=\"center\">本单交易成功后您可以获得积分:<strong style=\"color:#c40000; font-size:12px; font-family:microsoft yahei;\">{0}</strong></td>", subOrder.TotalRewardedPoint); sb.Append("</tr>"); } email.MailBody = email.MailBody.Replace("[OrderContent]", sb.ToString()).Replace("[WebBaseUrl]", domain).Replace("[ImgBaseUrl]", email.ImgBaseUrl); EmailDA.SendEmail(email); } }