/// <summary> /// 修改订单备注的旗帜 /// </summary> /// <param name="Order">订单信息</param> /// <param name="SessionKey">用户授权</param> /// <returns></returns> private void UpdateDeital(tbOrdersInfo Order, tbOrdersConfig Config, string SessionKey) { string[] OutNumber = Order.OrdersOutNumber.Split(','); if (Order.ServiceNotes != null) { string[] Detail = Regex.Split(Order.ServiceNotes, "%Separation%"); Order.ServiceNotes = Order.ServiceNotes.Replace("%Separation%", " "); } if (Config.ConfigId <= 0) { return; } if (String.IsNullOrEmpty(Config.Remark) && Config.RemarkFlag == 0) { return; } try { MYDZ.Business.TB_Logic.Order.GetTradeInfo gti = new MYDZ.Business.TB_Logic.Order.GetTradeInfo(); for (int i = 0; i < OutNumber.Length; i++) { gti.UpdateTradeMemo(SessionKey, OutNumber[i].ToString(), Config.Remark, Config.RemarkFlag, false); } } catch { } }
/// <summary> /// 获取单笔交易的详细信息 /// </summary> /// <param name="sessionKey"></param> /// <param name="tid"></param> /// <param name="ErrorMsg"></param> /// <returns></returns> internal tbOrdersInfo GetTradeFullinfo(string sessionKey, string tid, int ShopId, out string ErrorMsg) { //show_ext 这个字段导致接口报错 tbOrdersInfo newtrade = null; try { ErrorMsg = null; ITopClient client = new DefaultTopClient(StaticSystemConfig.soft.ApiURL, StaticSystemConfig.soft.AppKey, StaticSystemConfig.soft.AppSecret, "json"); TradeFullinfoGetRequest req = new TradeFullinfoGetRequest(); req.Fields += "seller_nick, buyer_nick, title, type, created, tid, seller_rate, buyer_rate,"; req.Fields += " status, payment, adjust_fee, post_fee, total_fee, pay_time, end_time, modified, "; req.Fields += "consign_time, buyer_obtain_point_fee, point_fee, real_point_fee, received_payment, commission_fee,"; req.Fields += "seller_memo, alipay_no,alipay_id,buyer_message, pic_path, num_iid, num, price, "; req.Fields += "receiver_name, receiver_state, receiver_city, receiver_district, receiver_address,"; req.Fields += "receiver_zip, receiver_mobile, receiver_phone,seller_flag, seller_alipay_no, seller_mobile, "; req.Fields += "seller_phone, seller_name, seller_email, available_confirm_fee, has_post_fee, timeout_action_time,"; req.Fields += "snapshot_url, cod_fee, cod_status, shipping_type, trade_memo, buyer_email,buyer_area,"; req.Fields += "trade_from,is_lgtype,is_force_wlb,is_brand_sale,buyer_cod_fee,discount_fee,seller_cod_fee,"; req.Fields += "express_agency_fee,invoice_name,service_orders,credit_cardfee,step_trade_status,step_paid_fee,"; req.Fields += "mark_desc,has_yfx,yfx_fee,yfx_id,yfx_type,trade_source,eticket_ext,send_time, is_daixiao,"; req.Fields += "is_part_consign, arrive_interval, arrive_cut_time, consign_interval,zero_purchase,alipay_point,pcc_af,"; req.Fields += "orders,promotion_details,invoice_name,orders.is_www,orders.store_code,service_tags"; if (!string.IsNullOrEmpty(tid)) { req.Tid = long.Parse(tid); } else { ErrorMsg = "订单编号不能为空"; return(null); } TradeFullinfoGetResponse response = client.Execute(req, sessionKey); if (response.IsError) { ErrorMsg = response.SubErrMsg; return(null); } else { Top.Api.Domain.Trade trade = new Top.Api.Domain.Trade(); newtrade = new tbOrdersInfo(); //订单信息转化 newtrade = ChangeLocationType(response.Trade, ShopId); } } catch (Exception ex) { throw ex; } return(newtrade); }
public bool Insert(tbOrdersInfo OrdersInfo) { bool IsOk = false; IDbDataParameter[] parm = GetInsertParam(); parm[0].Value = OrdersInfo.OrdersNumber; parm[1].Value = OrdersInfo.NickName; parm[2].Value = OrdersInfo.Logistics.LogisticsId; parm[3].Value = OrdersInfo.Status.OrdersStatusId; parm[4].Value = OrdersInfo.Shop.ShopId; parm[5].Value = OrdersInfo.CustomerServiceId; parm[6].Value = OrdersInfo.IsOrdersReFund; parm[7].Value = OrdersInfo.IsOrdersPrint; parm[8].Value = OrdersInfo.IsInventory; parm[9].Value = OrdersInfo.IsFree; parm[10].Value = OrdersInfo.OrdersWeight; parm[11].Value = OrdersInfo.OrdersFreight; parm[12].Value = OrdersInfo.OrdersProductTotal; parm[13].Value = OrdersInfo.OrdersDiscount; parm[14].Value = OrdersInfo.OrdersAccounts; parm[15].Value = OrdersInfo.OrdersPaid; parm[16].Value = OrdersInfo.OrdersDate; parm[17].Value = OrdersInfo.PayDate; parm[18].Value = OrdersInfo.OrdersInputDate; parm[19].Value = OrdersInfo.ServiceNotes; parm[20].Value = OrdersInfo.ServiceFlag; parm[21].Value = OrdersInfo.OrdersNotes; parm[22].Value = OrdersInfo.OrdersFlag; parm[23].Value = OrdersInfo.OrdersOutNumber; parm[24].Value = OrdersInfo.CashOndelivery; parm[25].Value = OrdersInfo.Invoice; parm[26].Value = OrdersInfo.DeliveryDate; parm[27].Value = OrdersInfo.BuyerMsg; parm[28].Value = OrdersInfo.BuyerRemark; parm[29].Value = OrdersInfo.RemarkFlag; parm[30].Value = OrdersInfo.Commission; parm[31].Value = OrdersInfo.CodFee; try { DBHelper.ExecuteNonQuery(CommandType.StoredProcedure, SQL_INSERT, parm); IsOk = true; } catch { } return(IsOk); }
/// <summary> /// 根据物流配送范围和物流优先级别分配订单物流信息 /// </summary> /// <param name="ShopLogistics">店铺物流列表</param> /// <param name="Order">订单信息</param> /// <param name="CompayList">能够派送的物流公司列表</param> public static void RangeDelivery(IList <StoreLogistics> ShopLogistics, tbOrdersInfo Order, List <string> CompayList) { if (!(CompayList != null && CompayList.Count > 0 && ShopLogistics != null && ShopLogistics.Count > 0)) { return; } var query = from p in ShopLogistics where CompayList.Contains(p.Logistics.LogisticsCode.Trim()) orderby p.Sort descending select p; try { if (query != null && query.Count() > 0) { Order.Logistics.LogisticsId = query.First().Logistics.LogisticsId; } else { Order.Logistics.LogisticsId = (from p in ShopLogistics orderby p.Sort ascending select p).First().Logistics.LogisticsId; } } catch { } }
//开始执行操作 private bool StartRun(object obj) { int StartIndex = 0; MYDZ.Business.Business_Logic.Order.InitTradeInfo iti = new Business_Logic.Order.InitTradeInfo(); bool Result = false; string ErrorMsg = null; bool HasNext = false; long TotalResults = 0; Hashtable ht = null; TradesSoldGet TradesSold = null; tbClientUser clientuser = null; tbOrdersConfig ordersConfig = null; List <Trade> listtrade = null; IList <StoreLogistics> StoreLogisticsList = null; tbOrdersInfo OrdersInfo = null; if (obj != null) { ht = new Hashtable(); TradesSold = new TradesSoldGet(); clientuser = new tbClientUser(); ordersConfig = new tbOrdersConfig(); ht = obj as Hashtable; clientuser = ht["clientuser"] as tbClientUser; TradesSold = ht["TradesSoldGet"] as TradesSoldGet; StoreLogisticsList = ht["LogisticsList"] as List <StoreLogistics>; ordersConfig = ht["Config"] as tbOrdersConfig; //获取从上一次同步到现在产生的订单,否则获取店铺一个星期的未完成订单 DateTime LastModifyTime = ht["LastModifyTime"] == null ? new DateTime() : Convert.ToDateTime(ht["LastModifyTime"].ToString()); if (LastModifyTime != new DateTime()) { TradesSold.StartCreated = Convert.ToDateTime(LastModifyTime.ToString("yyyy-MM-dd HH:mm:ss")); } else { TradesSold.StartCreated = Convert.ToDateTime(DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd HH:mm:ss")); } if (TradesSold.EndCreated == null) { TradesSold.EndCreated = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } while (true) { string Errormsg = null; List <tbOrdersInfo> listOrdersInfo = new List <tbOrdersInfo>(); listtrade = new List <Trade>(); //获取未完成订单 TradesSold.Status = "WAIT_SELLER_SEND_GOODS"; //获取淘宝默认数量的订单 listtrade = iti.GetTradesSold(clientuser.UserShops[0].SessionKey, TradesSold, out ErrorMsg, out HasNext, out TotalResults); if (listtrade == null || TotalResults == 0) { break; } try { //这里写得到临时数据 //遍历订单 foreach (Trade trade in listtrade) { try { OrdersInfo = new tbOrdersInfo(); //获取订单的详细信息 OrdersInfo = iti.GetTradeFullinfo(clientuser.UserShops[0].SessionKey, trade.Tid.ToString(), clientuser.UserShops[0].Shop.ShopId, out Errormsg); //这里做物流解析 string[] LogisticsList = Comm.Distribution(StoreLogisticsList, OrdersInfo.LogisticsStr); if (LogisticsList != null) { OrdersInfo.IsFree = bool.Parse(LogisticsList[0]); OrdersInfo.Logistics.LogisticsId = int.Parse(LogisticsList[1]);; if (OrdersInfo.OrdersFreight == 0) { OrdersInfo.IsFree = true; } } //拆单、并单 Comm.MergeOrder(ordersConfig, listOrdersInfo, OrdersInfo); // 检查订单配置关系 Comm.StatusAssign(ordersConfig, OrdersInfo); //物流分配 bool IsOk = Comm.DeliveryAssign(ordersConfig, StoreLogisticsList, OrdersInfo); if (!IsOk && ordersConfig.LogisticsDis && StoreLogisticsList != null && StoreLogisticsList.Count > 0) { string target = String.IsNullOrEmpty(OrdersInfo.Consignee.District) ? OrdersInfo.Consignee.City : OrdersInfo.Consignee.District; if (!String.IsNullOrEmpty(target)) { List <string> CompayList = GetLogisticsIdList((OrdersInfo.CashOndelivery ? "cod" : "online"), "", target.Trim()); //根据物流配送范围和物流优先级别分配订单物流信息 Comm.RangeDelivery(StoreLogisticsList, OrdersInfo, CompayList); } } //解析订单是否需要打印发货单 Comm.AnalyticalInvoice(ordersConfig, StoreLogisticsList, OrdersInfo); //修改订单备注旗帜 UpdateDeital(OrdersInfo, ordersConfig, clientuser.UserShops[0].SessionKey); } catch (Exception ex) { continue; } } StartIndex++; //这里写插入数据库临时表 if (CheckAndInsertOrders(listOrdersInfo)) { if (StartIndex == 1) { clientuser.StartIndex = StartIndex; } } } catch (Exception ex) { continue; } if (HasNext) { TradesSold.PageNo++; } else { break; } } } return(Result); }
/// <summary> /// 添加订单信息 /// </summary> /// <param name="OrdersInfo">订单表</param> /// <returns></returns> public static bool Insert(tbOrdersInfo OrdersInfo) { return(OrdersInfoDal.Insert(OrdersInfo)); }
/// <summary> /// 合并同用户名、同地址订单(货到付款订单不合并) /// </summary> /// <param name="Config">配置信息</param> /// <param name="Orders">订单列表</param> /// <param name="Order">订单信息</param> public static void MergeOrder(tbOrdersConfig Config, List <tbOrdersInfo> Orders, tbOrdersInfo Order) { //货到付款的订单不合并 if (Order.CashOndelivery) { Orders.Add(Order); return; } if (Orders != null && Orders.Count > 0) { bool Merger = false; if (Config.ConfigId > 0) { Merger = Config.MergerOrder; } if (Merger) { bool IsOk = false; foreach (tbOrdersInfo TempOrder in Orders) { if (Config.ConfigId > 0) { if (Config.PayTime > 0) { //验证付款时间 TimeSpan TSpan = DateTime.Now.Subtract(Order.PayDate); int Span = TSpan.Days * 1440 + TSpan.Hours * 60 + TSpan.Minutes; if (Span < Config.PayTime) { Orders.Clear(); break; } } } if (TempOrder.CashOndelivery) { continue; } if (TempOrder.Consignee.Name.Trim() == Order.Consignee.Name.Trim() && TempOrder.Consignee.Provice.Trim() == Order.Consignee.Provice.Trim() && TempOrder.Consignee.City.Trim() == Order.Consignee.City.Trim() && TempOrder.Consignee.District.Trim() == Order.Consignee.District.Trim() && TempOrder.Consignee.ConsigneeAddress.Trim() == Order.Consignee.ConsigneeAddress.Trim()) { TempOrder.OrdersFreight += Order.OrdersFreight; //合并运费 TempOrder.OrdersProductTotal += Order.OrdersProductTotal; //合并商品总金额 TempOrder.OrdersAccounts += Order.OrdersAccounts; //合并订单应收金额 TempOrder.OrdersPaid += Order.OrdersPaid; //合并订单实收金额 TempOrder.OrdersDiscount += TempOrder.OrdersAccounts - TempOrder.OrdersProductTotal - TempOrder.OrdersFreight; //计算订单折扣 TempOrder.OrdersOutNumber += "," + Order.OrdersOutNumber; //合并订单外部编码 TempOrder.ServiceNotes += "%Separation%" + Order.ServiceNotes; //合并客服备注 TempOrder.IsOrdersReFund = TempOrder.IsOrdersReFund || Order.IsOrdersReFund ? true : false; TempOrder.Details.AddRange(Order.Details); IsOk = true; break; } } if (!IsOk) { Orders.Add(Order); } } else { Orders.Add(Order); } } else { Orders.Add(Order); } }
/// <summary> /// 解析订单是否需要打印发货单 /// </summary> /// <param name="Config">订单获取配置信息</param> /// <param name="ShopLogistics">店铺物流列表</param> /// <param name="Order">订单信息</param> public static void AnalyticalInvoice(tbOrdersConfig Config, IList <StoreLogistics> ShopLogistics, tbOrdersInfo Order) { //判断指定配送方式下的订单是否需要打印发货单 if (ShopLogistics != null && ShopLogistics.Count > 0) { foreach (StoreLogistics SL in ShopLogistics) { if (SL.Logistics.LogisticsId == Order.Logistics.LogisticsId) { int count = 0; foreach (tbOrdersDetail od in Order.Details) { if (!od.IsCanceled) { if (!Config.RefundPrint) { if (!od.IsProductReFund) { count++; } } else { count++; } } } if (SL.Number >= count) { Order.IsInventory = false; } else { Order.IsInventory = true; } } } } }
/// <summary> /// 物流分配 /// </summary> /// <param name="Order">订单信息</param> public static bool DeliveryAssign(tbOrdersConfig Config, IList <StoreLogistics> ShopLogistics, tbOrdersInfo Order) { bool Isok = false; if (Config.ConfigId > 0) { if (Order.CashOndelivery && !String.IsNullOrEmpty(Config.CashDelivery)) { int LogisticsId = 0; int.TryParse(Config.CashDelivery, out LogisticsId); if (LogisticsId > 0) { Order.Logistics.LogisticsId = LogisticsId; Isok = true; } } } if (Config.DetailList != null && !Isok && Config.DetailList.Count > 0) { int[] IdList = new int[] { 8, 1, 2 }; foreach (int id in IdList) { try { var items = Config.DetailList.Where((e) => { return(e.EnumId == id); }); if (items != null && items.Count() > 0) { foreach (var item in items) { switch (id) { case 8: if (Order.Consignee.Provice.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Logistics.LogisticsId = int.Parse(item.Value.Split(',')[0]); Isok = true; } break; case 1: if (Order.ServiceNotes.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Logistics.LogisticsId = int.Parse(item.Value.Split(',')[0]); Isok = true; } break; case 2: if (Order.BuyerMsg.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Logistics.LogisticsId = int.Parse(item.Value.Split(',')[0]); Isok = true; } break; } if (Isok) { break; } } } if (Isok) { break; } } catch { } } } return(Isok); }
/// <summary> /// 状态分配 /// </summary> /// <param name="order">订单信息</param> public static void StatusAssign(tbOrdersConfig Config, tbOrdersInfo Order) { if (Config.DetailList == null) { return; } if (Config.DetailList.Count <= 0) { return; } int[] IdList = new int[] { 3, 4, 5, 6, 7 }; foreach (int id in IdList) { try { bool Isok = false; var items = Config.DetailList.Where((e) => { return(e.EnumId == id); }); if (items != null && items.Count() > 0) { foreach (var item in items) { switch (id) { case 3: if (Order.ServiceFlag == "op_memo_" + (int.Parse(item.Key.Split(',')[0]) - 1) + ".png") { Order.Status.OrdersStatusId = int.Parse(item.Value.Split(',')[0]); Isok = true; } break; case 4: if (Order.ServiceNotes.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Status.OrdersStatusId = int.Parse(item.Value.Split(',')[0]); Isok = true; } break; case 5: if (Order.BuyerMsg.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Status.OrdersStatusId = int.Parse(item.Value.Split(',')[0]); Isok = true; } break; case 6: foreach (var subitem in Order.Details) { if (subitem.ProductName.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Status.OrdersStatusId = int.Parse(item.Value.Split(',')[0]); Isok = true; break; } } break; case 7: foreach (var subitem in Order.Details) { if (subitem.ProductEncoding.IndexOf(item.Key.Split(',')[0]) != -1) { Order.Status.OrdersStatusId = int.Parse(item.Value.Split(',')[0]); Isok = true; break; } } break; } if (Isok) { break; } } } if (Isok) { break; } } catch { } } }
/// <summary> /// 将淘宝的交易信息转化为本地类型 /// </summary> /// <param name="trade"></param> /// <returns></returns> private tbOrdersInfo ChangeLocationType(Top.Api.Domain.Trade trade, int ShopId) { try { tbOrdersInfo newtrade = new tbOrdersInfo(); tbConsigneeInfo Consignee = new tbConsigneeInfo(); tbBuyerInfo Buyer = new tbBuyerInfo(); List <tbOrdersDetail> Details = new List <tbOrdersDetail>(); if (!String.IsNullOrEmpty(trade.PayTime)) { newtrade.PayDate = Convert.ToDateTime(Comm.DataChange(trade.PayTime, TypeChange.DATETIME));//付款时间 } else { newtrade.PayDate = DateTime.Now; } newtrade.CustomerServiceId = 1; newtrade.CashOndelivery = false; newtrade.Invoice = false; newtrade.NickName = trade.BuyerNick.Trim(); //会员名 Buyer.NickName = trade.BuyerNick.Trim(); //会员名 newtrade.Commission = Convert.ToDecimal(Comm.DataChange(trade.CommissionFee, TypeChange.DECIMAL)); newtrade.OrdersOutNumber = trade.Tid.ToString().Trim(); //淘宝订单号 newtrade.Logistics = new Logistic(); newtrade.LogisticsStr = trade.ShippingType;//暂存物流 newtrade.OrdersFreight = Convert.ToInt32(Comm.DataChange(trade.PostFee, TypeChange.DECIMAL)); newtrade.OrdersProductTotal = Convert.ToDecimal(Comm.DataChange(trade.TotalFee, TypeChange.DECIMAL)); //商品总金额 newtrade.OrdersDate = Convert.ToDateTime(Comm.DataChange(trade.Created, TypeChange.DATETIME)); //交易创建时间 Consignee.Name = Comm.DataChange(trade.ReceiverName, TypeChange.STRING).ToString(); //收件人姓名 Buyer.BuyerName = Consignee.Name; Consignee.OrdersNumber = trade.Tid == null ? "" : trade.Tid.ToString(); Consignee.Provice = Comm.DataChange(trade.ReceiverState, TypeChange.STRING).ToString(); //收件人所在省 Consignee.City = Comm.DataChange(trade.ReceiverCity, TypeChange.STRING).ToString(); //收件人所在市 Consignee.District = Comm.DataChange(trade.ReceiverDistrict, TypeChange.STRING).ToString(); //收件人所在区 Consignee.ConsigneeAddress = Comm.DataChange(trade.ReceiverAddress, TypeChange.STRING).ToString(); //收件人地址 Consignee.PostCode = Comm.DataChange(trade.ReceiverZip, TypeChange.STRING).ToString(); //收件人邮编 Consignee.Mobile = Comm.DataChange(trade.ReceiverMobile, TypeChange.STRING).ToString(); //收件人手机 Buyer.Mobile = Consignee.Mobile; Consignee.Phone = Comm.DataChange(trade.ReceiverPhone, TypeChange.STRING).ToString(); //收件人电话 Buyer.Phone = Consignee.Phone; newtrade.Status = new tbOrdersStatus() { OrdersStatusId = 3 }; //订单状态(默认买家已付款,等待卖家发货状态) decimal Payment = Convert.ToDecimal(Comm.DataChange(trade.Payment, TypeChange.DECIMAL)); //订单实收金额 newtrade.OrdersAccounts = Payment; newtrade.OrdersPaid = Payment; newtrade.IsOrdersReFund = false; //是否有退款 newtrade.OrdersDiscount = newtrade.OrdersPaid - newtrade.OrdersProductTotal - newtrade.OrdersFreight; //订单折扣 newtrade.OrdersWeight = 0; newtrade.OrdersNotes = ""; newtrade.OrdersFlag = "0"; newtrade.OrdersInputDate = DateTime.Now; Consignee.InputDate = newtrade.OrdersInputDate; //买家留言&卖家备注&备注旗帜&邮件地址 newtrade.ServiceNotes = trade.SellerMemo; //客服备注 newtrade.ServiceFlag = trade.SellerFlag.ToString(); //客服备注旗帜样式 newtrade.BuyerMsg = string.IsNullOrEmpty(trade.BuyerMessage) ? "" : trade.BuyerMessage; //买家留言 Buyer.BuyerEmail = trade.BuyerEmail; newtrade.CodFee = Convert.ToDecimal(Comm.DataChange(trade.CodFee, TypeChange.DECIMAL)); //货到付款服务费 newtrade.BuyerRemark = ""; newtrade.DeliveryDate = ""; newtrade.RemarkFlag = ""; newtrade.Shop = new tbShopInfo() { ShopId = ShopId }; if (trade.Orders != null) { foreach (Top.Api.Domain.Order order in trade.Orders) { if (Convert.ToInt32(order.Num) <= 0) { continue; } tbOrdersDetail Detail = new tbOrdersDetail(); Detail.OrdersNumber = trade.Tid.ToString(); Detail.ProductEncoding = !String.IsNullOrEmpty(order.OuterSkuId) ? order.OuterSkuId.Trim() : ""; Detail.ProductName = !String.IsNullOrEmpty(order.Title) ? order.Title.Trim() : ""; Detail.ProductSku = !String.IsNullOrEmpty(order.SkuPropertiesName) ? order.SkuPropertiesName.Trim() : ""; Detail.ProductId = Convert.ToInt32(order.NumIid); Detail.ProductProId = 0; Detail.SalesCommissionId = 1; Detail.ProductImg = String.IsNullOrEmpty(order.PicPath) ? "" : order.PicPath.Trim(); //商品图片 Detail.ProductPrice = Convert.ToDecimal(Comm.DataChange(order.Price, TypeChange.DECIMAL)); //商品价格 Detail.ProductNumber = (int)order.Num; //商品数量 Detail.PackageName = String.IsNullOrEmpty(order.ItemMealName) ? "" : order.ItemMealName; //商品套餐值 Detail.OutNumberIId = order.NumIid == null ? "" : order.NumIid.ToString(); //商品外部编号 Detail.SubOrderNumber = order.Oid.ToString() == null ? "" : order.Oid.ToString(); //子订单编号 Detail.InputDate = newtrade.OrdersInputDate; Detail.ProductTotal = Convert.ToDecimal(Comm.DataChange(order.TotalFee, TypeChange.DECIMAL)); //商品总价 Detail.Details = ""; Detail.ProductCost = 0; Detail.OrdersDiscount = Convert.ToDecimal(Comm.DataChange(order.DiscountFee, TypeChange.DECIMAL)); //优惠金额; Detail.OrdersAdjust = Convert.ToDecimal(Comm.DataChange(order.AdjustFee, TypeChange.DECIMAL)); //手动调整金额; Detail.OrdersAccounts = Detail.ProductTotal; //订单被取消 if (order.Status == "TRADE_CLOSED_BY_TAOBAO") { Detail.IsCanceled = true; } //商品退款 if (order.RefundId == 0) { Detail.ReFundNumber = ""; Detail.IsProductReFund = false; Detail.ReFundStatusId = 0; Detail.ReFundStatusName = order.RefundStatus; } else { Detail.ReFundNumber = order.RefundId.ToString(); Detail.IsProductReFund = true; newtrade.IsOrdersReFund = true; Detail.ReFundStatusId = 0; Detail.ReFundStatusName = ""; } Details.Add(Detail); } } newtrade.Consignee = Consignee; newtrade.Details = Details; newtrade.Buyer = Buyer; return(newtrade); } catch (Exception ex) { throw; } }