Ejemplo n.º 1
0
        public void Persist(OrderInfo order)
        {
            if (order.GiftCardList == null || order.GiftCardList.Count <= 0)
            {
                return;
            }

            foreach (GiftCardInfo giftCardInfo in order.GiftCardList)
            {
                //更新礼品卡信息
                PipelineDA.UpdateGiftCardInfo(giftCardInfo);
            }

            foreach (var kvs in order.SubOrderList)
            {
                OrderInfo subPreOrderInfo = kvs.Value;

                XDocument xDoc = new XDocument(
                    new XElement("Message",
                                 new XElement("Header"
                                              , new XElement("Action", "SOConsume")
                                              , new XElement("Version", "V1")
                                              , new XElement("NameSpace", "http://soa.ECommerce.com/CustomerProfile")
                                              , new XElement("From", "EC")
                                              , new XElement("CurrencySysNo", order["CurrencySysNo"])
                                              , new XElement("Language", "zh-CN")
                                              , new XElement("CompanyCode", "8601")
                                              , new XElement("StoreCompanyCode", "8601")
                                              ),
                                 new XElement("Body"
                                              , new XElement("Memo", "")
                                              , new XElement("EditUser", "WebSite")
                                              )
                                 ));

                int priority = 1;
                foreach (GiftCardInfo giftCardInfo in subPreOrderInfo.GiftCardList)
                {
                    giftCardInfo["SOSysNo"]       = subPreOrderInfo.ID;
                    giftCardInfo["CustomerSysNo"] = subPreOrderInfo.Customer.SysNo;
                    giftCardInfo["CurrencySysNo"] = subPreOrderInfo["CurrencySysNo"];

                    //创建礼品卡使用日志
                    PipelineDA.CreateGiftCardRedeemLog(giftCardInfo);

                    XElement giftCardElement = new XElement("GiftCard");
                    giftCardElement.Add(new XElement("Code", giftCardInfo.Code.Trim()));
                    giftCardElement.Add(new XElement("Priority", priority++));
                    giftCardElement.Add(new XElement("UseAmount", giftCardInfo.UseAmount));
                    giftCardElement.Add(new XElement("CustomerSysno", subPreOrderInfo.Customer.SysNo));
                    giftCardElement.Add(new XElement("ReferenceSOSysNo", subPreOrderInfo.ID));

                    xDoc.Root.Element("Body").Add(giftCardElement);
                }

                //创建礼品卡操作记录
                string xDocMsg = xDoc.ToString();
                PipelineDA.CreateGiftCardOperateLog(xDocMsg);
            }
        }