Exemplo n.º 1
0
        /// <summary>
        /// 订单增量下载
        /// </summary>
        /// <param name="strSessionKey"></param>
        /// <param name="startTime"></param>
        /// <param name="endTime"></param>
        /// <param name="pageNo"></param>
        /// <param name="pageSize"></param>
        /// <param name="buyer_nick"></param>
        /// <param name="type"></param>
        /// <param name="hasNext"></param>
        /// <returns></returns>
        public static List <Trade> GetBuyerTradeIncrement(string strSessionKey, string startTime, string endTime, string pageNo, string pageSize,
                                                          string buyer_nick, string type, ref Boolean hasNext)
        {
            try
            {
                ITopClient client = TBManager.GetClient();
                TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest();
                req.Fields        = @"tid,type,buyer_nick,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,
               receiver_mobile,receiver_phone,receiver_zip,buyer_area,post_fee,created,seller_nick,payment,status,shipping_type,pay_time,modified,
orders.outer_iid,orders.discount_fee,orders.payment,orders.refund_status,orders.status,orders.pic_path,orders.sku_properties_name,orders.adjust_fee,
orders.outer_sku_id,orders.cid,orders.refund_id,orders.item_meal_name,orders.num,orders.title,orders.price,orders.oid,orders.total_fee,orders.num_iid,orders.sku_id,orders.seller_type";
                req.StartModified = Convert.ToDateTime(startTime);
                req.EndModified   = Convert.ToDateTime(endTime);
                req.PageSize      = Convert.ToInt64(pageSize);
                req.PageNo        = Convert.ToInt64(pageNo);
                if (!string.IsNullOrEmpty(buyer_nick))
                {
                    req.BuyerNick = buyer_nick;
                }
                if (!string.IsNullOrEmpty(type))
                {
                    req.Type = type;
                }
                TradesSoldIncrementGetResponse rsp = client.Execute(req, strSessionKey);
                hasNext = rsp.HasNext;
                return(rsp.Trades);
            }
            catch (Exception ex)
            {
                ExceptionReporter.WriteLog(ex, ExceptionPostion.TopApi);
                return(null);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 获取店铺等待发货的订单
        /// </summary>
        /// <param name="param">条件参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>订单列表</returns>
        /// <reamrks>2014-04-08 黄波 创建</reamrks>
        private List <UpGradeOrder> GetShopWaitSendOrder(OrderParameters param, AuthorizationParameters auth)
        {
            var result = new List <UpGradeOrder>();

            //增量查询今日订单请求
            var req = new TradesSoldIncrementGetRequest
            {
                Fields =
                    "seller_flag,seller_nick,buyer_nick,alipay_no,has_buyer_message,title,tid,status,payment,discount_fee,post_fee,adjust_fee,pay_time,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,orders.title,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.payment,orders.discount_fee,orders.sku_properties_name,orders.outer_iid,orders.outer_sku_id,orders.oid,orders.refund_status",
                Status        = "WAIT_SELLER_SEND_GOODS",
                StartModified = param.StartDate,
                EndModified   = param.EndDate,
                PageSize      = 20L,
                UseHasNext    = true
            };

            var nextPage = true;
            var pageNo   = 1L;
            var response = new TradesSoldIncrementGetResponse();

            while (nextPage)
            {
                try
                {
                    req.PageNo = pageNo;
                    response   = client.Execute(req, auth.AuthorizationCode);
                    if (!response.IsError)
                    {
                        if (response.HasNext)
                        {
                            pageNo++;
                        }
                        else
                        {
                            nextPage = false;
                        }
                        foreach (Trade trade in response.Trades)
                        {
                            var order = new UpGradeOrder();
                            Map(trade, order);
                            order.MallOrderBuyer.SellerFlag = trade.SellerFlag.ToString();
                            result.Add(order);
                        }
                    }
                    else
                    {
                        nextPage = false;
                    }
                }
                catch { nextPage = false; }
            }

            return(result);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 同步增量交易数据
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public List <Trade> QueryTradeSoldIncrement(ShipInfo info, DataSyncRecord syncRecord)
        {
            ITopClient client = new DefaultTopClient(url, info.AppKey, info.AppSecret);

            var pageIndex = 1L;
            TradesSoldIncrementGetResponse rsp = null;
            var list = new List <Trade>();

            do
            {
                try
                {
                    TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest
                    {
                        Fields        = "tid,type,status,payment,orders,rx_audit_status",
                        StartModified = syncRecord.LastSynDate,
                        EndModified   = DateTime.Now,
                        Status        = "TRADE_NO_CREATE_PAY",
                        Type          = "fixed",
                        BuyerNick     = "zhangsan",
                        ExtType       = "service",
                        Tag           = "time_card",
                        PageNo        = 1L,
                        RateStatus    = "RATE_UNBUYER",
                        PageSize      = 40L,
                        UseHasNext    = true
                    };
                    rsp = client.Execute(req, info.SessionKey);
                    pageIndex++;

                    if (!rsp.IsError)
                    {
                        list.AddRange(rsp.Trades);
                    }
                    syncRecord.LastSynDate = req.EndModified.Value;
                }
                catch (Exception e)
                {
                    break;
                }
            } while (rsp.HasNext);
            return(list);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 获取增量订单
        /// </summary>
        /// <returns></returns>
        public List <Trade> getSoldIncrement(string datetime1, string datetime2, int index, int pagesize, out bool hasNext)
        {
            List <Trade> list = new List <Trade>();

            ITopClient client = new DefaultTopClient(Url, Appkey, Appsecret);
            TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest();

            req.Fields        = "seller_nick, buyer_nick, type, created, tid, status, payment, pay_time, end_time, modified, consign_time,orders";
            req.StartModified = DateTime.Parse(datetime1);
            req.EndModified   = DateTime.Parse(datetime2);
            req.PageNo        = index;
            req.PageSize      = pagesize;
            if (Sessionkey == "61018063b06cee193a796d291600c416f5e73b4d565b01f1954282799")
            {
                req.Type = "tmall_i18n,step";
            }
            req.UseHasNext = true;
            TradesSoldIncrementGetResponse response = client.Execute(req, Sessionkey);

            list.AddRange(response.Trades);
            hasNext = response.HasNext;

            return(list);
        }
Exemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sDate"></param>
        /// <param name="eDate"></param>
        /// <param name="status"></param>
        /// <param name="page"></param>
        /// <param name="totalTrades"></param>
        /// <param name="hasNextPage"></param>
        /// <returns></returns>
        private List <BSale> IncrementSyncTrades(DateTime?sDate, DateTime?eDate, string status, long page, out long totalTrades, out bool hasNextPage)
        {
            totalTrades = 0;
            hasNextPage = false;
            TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest();

            req.Fields  = "total_fee,buyer_nick,created,tid,status, payment, discount_fee, adjust_fee, post_fee,price,adjust_fee,receiver_city,receiver_district,receiver_name,receiver_state,receiver_mobile,receiver_phone,received_payment";
            req.Fields += ",orders.title,orders.pic_path,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.refund_status,orders.status,orders.oid,orders.total_fee,orders.payment,orders.discount_fee,orders.adjust_fee,orders.sku_properties_name,orders.item_meal_name,orders.buyer_rate,orders.seller_rate,orders.outer_iid,orders.outer_sku_id,orders.refund_id,orders.seller_type";

            if (sDate != null)
            {
                req.StartModified = sDate;
            }

            if (eDate != null)
            {
                req.EndModified = eDate;
            }

            if (!string.IsNullOrEmpty(status))
            {
                req.Status = status;
            }
            //req.BuyerNick = "zhangsan";
            //req.Type = "game_equipment";
            //req.ExtType = "service";
            //req.RateStatus = "RATE_UNBUYER";
            //req.Tag = "time_card";
            req.PageNo     = page;
            req.PageSize   = 50;
            req.UseHasNext = true;
            TradesSoldIncrementGetResponse response = client.Execute(req, this.Access_Token.Access_Token1);
            List <BSale> sales = new List <BSale>();

            if (response.IsError)
            {
                throw new KMJXCTaobaoException(response.ErrCode, response.SubErrMsg);
            }
            if (response.Trades != null)
            {
                hasNextPage = response.HasNext;
                totalTrades = response.TotalResults;
                foreach (TB.Trade trade in response.Trades)
                {
                    bool  containRefound = false;
                    BSale sale           = new BSale();
                    sale.Status       = trade.Status;
                    sale.SaleDateTime = DateTimeUtil.ConvertDateTimeToInt(Convert.ToDateTime(trade.Created));
                    sale.Sale_ID      = trade.Tid.ToString();
                    sale.Orders       = new List <BOrder>();
                    sale.Synced       = DateTimeUtil.ConvertDateTimeToInt(DateTime.Now);
                    if (!string.IsNullOrEmpty(trade.PostFee))
                    {
                        sale.Post_Fee = double.Parse(trade.PostFee);
                    }
                    if (!string.IsNullOrEmpty(trade.Payment))
                    {
                        sale.Amount = double.Parse(trade.Payment);
                    }
                    sale.Buyer = new BCustomer()
                    {
                        Type = new BMallType()
                        {
                            ID = this.Mall_Type_ID
                        }, Mall_ID = trade.BuyerNick, Name = trade.ReceiverName, Address = trade.ReceiverAddress, Phone = trade.ReceiverMobile, Province = new Common_District {
                            name = trade.ReceiverState
                        }, City = new Common_District()
                        {
                            name = trade.ReceiverCity
                        }
                    };
                    if (trade.Orders != null)
                    {
                        foreach (TB.Order o in trade.Orders)
                        {
                            //if (string.IsNullOrEmpty(o.OuterIid))
                            //{
                            //    continue;
                            //}
                            BOrder order = new BOrder();
                            if (!string.IsNullOrEmpty(o.Title))
                            {
                                order.Title = o.Title;
                            }

                            if (!string.IsNullOrEmpty(o.Payment))
                            {
                                order.Amount = double.Parse(o.Payment);
                            }

                            if (!string.IsNullOrEmpty(o.Price))
                            {
                                order.Price = double.Parse(o.Price);
                            }

                            order.Quantity = int.Parse(o.Num.ToString());
                            order.Status   = o.Status;
                            order.Status1  = 0;
                            if (!string.IsNullOrEmpty(o.RefundStatus) && o.RefundStatus == "SUCCESS")
                            {
                                containRefound = true;
                                //order.Status1 = 1;
                                order.Refound = true;
                                //sale.Amount = sale.Amount - order.Amount;
                            }
                            order.StockStatus = 0;
                            order.Discount    = string.IsNullOrEmpty(o.DiscountFee) ? double.Parse(o.DiscountFee) : 0;


                            if (!string.IsNullOrEmpty(o.OuterIid))
                            {
                                int pid = 0;
                                int.TryParse(o.OuterIid, out pid);
                                order.Parent_Product_ID = pid;

                                if (!string.IsNullOrEmpty(o.OuterSkuId))
                                {
                                    int pcid = 0;
                                    int.TryParse(o.OuterSkuId, out pcid);
                                    order.Product_ID = pcid;
                                }
                                else
                                {
                                    order.Product_ID = order.Parent_Product_ID;
                                }
                            }
                            order.Order_ID   = o.Oid.ToString();
                            order.Mall_PID   = o.NumIid.ToString();
                            order.Mall_SkuID = "";
                            if (o.SkuId != null)
                            {
                                order.Mall_SkuID = o.SkuId;
                            }

                            order.ImageUrl = "";
                            if (!string.IsNullOrEmpty(o.PicPath))
                            {
                                order.ImageUrl = o.PicPath;
                            }

                            sale.Orders.Add(order);
                        }
                    }

                    sale.HasRefound = containRefound;
                    sales.Add(sale);
                }
            }
            return(sales);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 查询卖家已卖出的增量交易数据(根据修改时间)
        /// </summary>
        /// <param name="sessionKey"></param>
        /// <param name="TradesSold"></param>
        /// <param name="ErrorMsg"></param>
        /// <returns></returns>
        internal List <Trade> GetTradesSoldIncrement(string sessionKey, TradesSoldGet TradesSold, out string ErrorMsg)
        {
            ErrorMsg = null;
            List <Trade> ListTrades = new List <Trade>();
            DateTime     starttime  = new DateTime();
            DateTime     endtime    = new DateTime();

            try
            {
                ITopClient client = new DefaultTopClient(StaticSystemConfig.soft.ApiURL, StaticSystemConfig.soft.AppKey, StaticSystemConfig.soft.AppSecret, "json");
                TradesSoldIncrementGetRequest req = new TradesSoldIncrementGetRequest();
                req.Fields = "tid,created,pay_time,end_time,status,snapshot_url,buyer_message,price,buyer_nick,seller_memo,seller_flag,orders";
                if (TradesSold.StartCreated != null)
                {
                    string startt = TradesSold.StartModified.Value.ToString("yyyy-MM-dd HH:mm:ss");
                    starttime         = DateTime.Parse(startt);
                    req.StartModified = starttime;
                }
                if (TradesSold.EndCreated != null)
                {
                    string startt = TradesSold.EndModified.Value.ToString("yyyy-MM-dd HH:mm:ss");
                    endtime         = DateTime.Parse(startt);
                    req.EndModified = endtime;
                }
                //这里修正结束时间与开始时间间隔超一天,自动修改时间为开始时间的后一天
                if (starttime != new DateTime() && endtime != new DateTime())
                {
                    if (endtime.Subtract(starttime).Days > 1)
                    {
                        req.EndModified = starttime.AddDays(1);
                    }
                }
                if (TradesSold.Status != null)
                {
                    req.Status = TradesSold.Status;
                }
                if (TradesSold.Type != null)
                {
                    req.Type = TradesSold.Type;
                }
                if (TradesSold.ExtType != null)
                {
                    req.ExtType = TradesSold.ExtType;
                }
                if (TradesSold.Tag != null)
                {
                    req.Tag = TradesSold.Tag;
                }
                if (TradesSold.PageNo != null)
                {
                    req.PageNo = TradesSold.PageNo;
                }
                if (TradesSold.PageSize != null)
                {
                    req.PageSize = TradesSold.PageSize;
                }
                if (TradesSold.UseHasNext != null)
                {
                    req.UseHasNext = TradesSold.UseHasNext;
                }
                TradesSoldIncrementGetResponse response = client.Execute(req, sessionKey);
                if (response.IsError)
                {
                    ErrorMsg = response.SubErrMsg;
                }
                else
                {
                    TopJsonParser          topjson = new TopJsonParser();
                    TradesSoldGetResponse1 resp    = topjson.Parse <TradesSoldGetResponse1>(response.Body);
                    ListTrades = resp.Trades;
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(ListTrades);
        }