/// <summary> /// 购物车数据的赋值 /// </summary> /// <param name="dr">数据行</param> private static void SetCartInfo(DataRow dr, out CartModel cart) { cart = new CartModel(); cart.CartID = dr["id"].ToString(); cart.UID = dr["buyerId"].ToString(); cart.UName = dr["buyerName"].ToString(); cart.SID = dr["storeId"].ToString(); cart.SName = dr["storeName"].ToString(); cart.PId = dr["productId"].ToString(); cart.PName = dr["productName"].ToString(); cart.SkuId = dr["skuId"].ToString(); //根据sku编号获取对应快照编号 string skusql = "select a.id as skukzid, a.productsnapshotid as productkzid from product_curd.productskusnapshot a " + " inner join product_curd.productsku b on a.skuid = b.id and a.snapshotversion = b.latestsnapshotversion and b.id = " + cart.SkuId; DataSet dst = DataHelper.ExeRead(skusql); if (dst != null && dst.Tables[0].Rows.Count > 0) { DataRow drow = dst.Tables[0].Rows[0]; cart.ProkzID = drow["productkzid"].ToString(); cart.SkukzID = drow["skukzid"].ToString(); } }
/// <summary> /// 拼凑xml字符串 /// </summary> private static ConfirmOrdeSaveXMLVM.xml setXmls(CartModel model) { ConfirmOrdeSaveXMLVM.xml xml = new ConfirmOrdeSaveXMLVM.xml(); xml.root = new ConfirmOrdeSaveXMLVM.root(); xml.root.stores = new List<ConfirmOrdeSaveXMLVM.store>(); ConfirmOrdeSaveXMLVM.store store = new ConfirmOrdeSaveXMLVM.store(); store.carts = new List<ConfirmOrdeSaveXMLVM.cart>(); //店铺中的商品(子订单详细) ConfirmOrdeSaveXMLVM.cart cart = new ConfirmOrdeSaveXMLVM.cart() { id = model.CartID, proname = model.PName, picpath = "01220121101008a1011bda5f9d4239a1547ae229fe70d6.jpg", count = "1", proid = model.PId, prokzid = model.ProkzID, skukzid = model.SkukzID, skuid = model.SkuId }; store.carts.Add(cart); store.storename = model.SName; store.storetype = "1"; store.id = model.SID; store.couponid = "-1"; store.expresstype = "1"; store.fullsendid = "-1"; store.message = string.Empty; xml.root.stores.Add(store); Random rand = new Random(); string pointRD = "0";// rand.Next(100, 500).ToString(); //买家信息 xml.root.buyer = new ConfirmOrdeSaveXMLVM.buyer() { ip = "10.10.10.43", areacode = "440102", areaname = "东山区", citycode = "440100", cityname = "广州市", consigneename = "test1", contactqq = "123456789", email = string.Empty, exchanges = "0.01", id = model.UID, mobilephone = "13800138000", phone = "0762-8888888-99999", points = pointRD,//准备用掉的积分 postcode = "517100", street = "1", provincecode = "440000", provincename = "广东省", platformcouponid = string.Empty,//平台优惠券 redpacket = "0", username = model.UName, datasourcestype = 9 }; return xml; }
private static void AddOrder(CartModel cart) { using (WcfTcpClient<IProcedureFunctionService> client = factory.CreateClient<IProcedureFunctionService>()) { string strxml = XMLHelper.ConvertXmlOjbectToString<ConfirmOrdeSaveXMLVM.xml>(setXmls(cart)); byte[] by = System.Text.Encoding.UTF8.GetBytes(strxml); Stream s = new MemoryStream(by); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(s); s.Dispose(); XmlNode xn = xmldoc.SelectSingleNode("xml"); string xEleStr = xn.InnerXml.ToString(); string outMessage = string.Empty; string payPrice = "0"; long ticks = DateTime.Now.Ticks; int saveResult = client.Channel.SaveOrderFromShoppingCart2(long.Parse(cart.UID), xEleStr, out outMessage, out payPrice); if (saveResult == 0) { Console.WriteLine("下单失败!" + cart.CartID + "\t " + outMessage + ",时间:" + DateTime.Now); throw new Exception("下单失败"); } } }