.net淘寶客基礎api 分頁查詢

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Configuration;
  4 using System.Linq;
  5 using System.Web;
  6 using Top.Api;
  7 using Top.Api.Request;
  8 using Top.Api.Response;
  9  
 10 namespace MvcWebApp.DataBase
 11 {
 12     public class TaoDataProvider
 13     {
 14  
 15         public static string appKey = ConfigurationManager.AppSettings["appKey"].ToString();
 16         public static string appSecret = ConfigurationManager.AppSettings["appSecret"].ToString();
 17         public static string appUrl = "http://gw.api.taobao.com/router/rest";
 18  
 19         //淘寶官方接口說明:http://open.taobao.com/doc2/apiDetail.htm?spm=a219a.7395905.0.0.70naXx&scopeId=11655&apiId=26619
 20  
 21         /// <summary>
 22         /// 關鍵字查詢商品
 23         /// </summary>
 24         /// <param name="PageIndex"></param>
 25         /// <param name="PageSize"></param>
 26         /// <param name="queryKey"></param>
 27         /// <returns></returns>
 28         public static string query(int PageIndex, int PageSize, string queryKey)
 29         {
 30             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret, "json");
 31             TbkItemGetRequest req = new TbkItemGetRequest();
 32             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
 33             req.Q = queryKey;
 34             req.Platform = 1L;
 35             req.PageNo = PageIndex;
 36             req.PageSize = PageSize;
 37             TbkItemGetResponse response = client.Execute(req);
 38             return response.Body;
 39         }
 40         /// <summary>
 41         /// 分頁查詢
 42         /// </summary>
 43         /// <param name="PageIndex"></param>
 44         /// <param name="PageSize"></param>
 45         /// <param name="queryKey"></param>
 46         /// <param name="totalCount"></param>
 47         /// <param name="pageNum"></param>
 48         /// <returns></returns>
 49         public static List<Top.Api.Domain.NTbkItem> query(int PageIndex, int PageSize, string queryKey, out long totalCount, out long pageNum)
 50         {
 51             totalCount = 0;
 52             pageNum = 0;
 53             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
 54  
 55             TbkItemGetRequest req = new TbkItemGetRequest();
 56             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
 57             req.Q = queryKey;
 58             req.Platform = 1L;
 59             req.PageNo = PageIndex;
 60             req.PageSize = PageSize;
 61  
 62             TbkItemGetResponse response = client.Execute(req);
 63  
 64             totalCount = response.TotalResults;
 65             pageNum = (long)Math.Ceiling(totalCount / (double)PageSize);
 66             return response.Results;
 67         }
 68         /// <summary>
 69         /// 分頁查詢商品
 70         /// </summary>
 71         /// <param name="PageIndex">當前頁</param>
 72         /// <param name="PageSize">每頁多少條</param>
 73         /// <param name="queryKey">關鍵字</param>
 74         /// <param name="cat">後臺類目ID16,18</param>
 75         /// <param name="itemloc">所在地</param>
 76         /// <param name="sort">排序_des降序.排序_asc升序.排序銷量total_sales淘客佣金比率tk_rate累計推廣量tk_total_sales總支出佣金tk_total_commi</param>
 77         /// <param name="isTmall">是否商城商品</param>
 78         /// <param name="isOverseas">是否海外商品</param>
 79         /// <param name="startPrice">折扣價範圍下限</param>
 80         /// <param name="endPrice">折扣價範圍上限</param>
 81         /// <param name="startTkRate">淘客佣金比率上限</param>
 82         /// <param name="endTkRate">淘客佣金比率下限</param>
 83         /// <param name="totalCount">總條數</param>
 84         /// <param name="pageNum">總頁數</param>
 85         /// <returns></returns>
 86         public static List<Top.Api.Domain.NTbkItem> query(int PageIndex, int PageSize, string queryKey,
 87             string cat, string itemloc, string sort, bool? isTmall, bool? isOverseas, long? startPrice, long? endPrice,
 88             long? startTkRate, long? endTkRate,
 89             out long totalCount, out long pageNum)
 90         {
 91             totalCount = 0;
 92             pageNum = 0;
 93             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
 94  
 95             TbkItemGetRequest req = new TbkItemGetRequest();
 96             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
 97             if (!string.IsNullOrWhiteSpace(queryKey)) req.Q = queryKey;
 98             req.Platform = 1;
 99             req.PageNo = PageIndex;
100             req.PageSize = PageSize;
101  
102             if (!string.IsNullOrWhiteSpace(cat)) req.Cat = cat;//後臺類目ID16,18
103             if (!string.IsNullOrWhiteSpace(itemloc)) req.Itemloc = itemloc;//所在地
104             if (!string.IsNullOrWhiteSpace(sort)) req.Sort = sort;//"tk_rate_des";//排序
105             if (isTmall.HasValue) req.IsTmall = isTmall;//是否商城商品
106             if (isOverseas.HasValue) req.IsOverseas = isOverseas;//是否海外商品
107             if (startPrice.HasValue) req.StartPrice = startPrice;//    折扣價範圍下限
108             if (endPrice.HasValue) req.EndPrice = endPrice;
109             if (startTkRate.HasValue) req.StartTkRate = startTkRate;//淘客佣金比率上限,如:1234表示12.34%
110             if (endTkRate.HasValue) req.EndTkRate = endTkRate;
111  
112  
113  
114             TbkItemGetResponse response = client.Execute(req);
115  
116             totalCount = response.TotalResults;
117             pageNum = (long)Math.Ceiling(totalCount / (double)PageSize);
118             return response.Results;
119         }
120  
121  
122         /// <summary>
123         /// 根據ID查詢單個商品
124         /// </summary>
125         /// <param name="ssid"></param>
126         /// <returns></returns>
127         public static string FindOne(string ssid)
128         {
129             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret, "json");
130             TbkItemInfoGetRequest req = new TbkItemInfoGetRequest();
131             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
132             req.Platform = 1L;
133             req.NumIids = ssid;
134             TbkItemInfoGetResponse rsp = client.Execute(req);
135             return rsp.Body;
136         }
137         /// <summary>
138         /// 根據ID查詢單個商品
139         /// </summary>
140         /// <param name="ssid">123,256,365(最多40個)</param>
141         /// <returns></returns>
142         public static List<Top.Api.Domain.NTbkItem> FindBySSID(string ssid)
143         {
144             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
145             TbkItemInfoGetRequest req = new TbkItemInfoGetRequest();
146             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
147             req.Platform = 1L;
148             req.NumIids = ssid;
149             TbkItemInfoGetResponse rsp = client.Execute(req);
150             return rsp.Results;
151         }
152         /// <summary>
153         /// 關聯商品查詢
154         /// </summary>
155         /// <param name="relate_type"></param>
156         /// <param name="num_iid"></param>
157         /// <param name="count"></param>
158         /// <param name="platform"></param>
159         /// <returns></returns>
160         public static string FindListRelevance(int? relate_type, long? num_iid, int? count = 24, int? platform = 1)
161         {
162             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret, "json");
163             TbkItemRecommendGetRequest req = new TbkItemRecommendGetRequest();
164             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
165  
166             if (num_iid.HasValue)
167                 req.NumIid = num_iid.Value;
168  
169             //req.Cat = 123L;
170             req.Count = count.Value;
171             req.Platform = platform.Value;
172             TbkItemRecommendGetResponse rsp = client.Execute(req);
173             //Console.WriteLine(rsp.Body);
174             return rsp.Body;
175         }
176         /// <summary>
177         /// 關聯商品查詢
178         /// </summary>
179         /// <param name="relate_type"></param>
180         /// <param name="num_iid"></param>
181         /// <param name="count"></param>
182         /// <param name="platform"></param>
183         /// <returns></returns>
184         public static List<Top.Api.Domain.NTbkItem> FindListRelate(int? relate_type, long? num_iid, int? count = 24, int? platform = 1)
185         {
186             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
187             TbkItemRecommendGetRequest req = new TbkItemRecommendGetRequest();
188  
189             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url";
190             //if (relate_type.HasValue)
191             //    req.RelateType = relate_type.Value;
192             if (num_iid.HasValue)
193                 req.NumIid = num_iid.Value;
194  
195             //req.Cat = 123L;
196             req.Count = count.Value;
197             req.Platform = platform.Value;
198             TbkItemRecommendGetResponse rsp = client.Execute(req);
199             //Console.WriteLine(rsp.Body);
200             return rsp.Results;
201         }
202         /// <summary>
203         /// 獲取淘寶客店鋪列表
204         /// </summary>
205         /// <param name="PageIndex">第幾頁</param>
206         /// <param name="PageSize">每頁幾條</param>
207         /// <param name="queryKey">關鍵字</param>
208         /// <param name="start_credit">信用等級下限,1~20</param>
209         /// <param name="end_credit">信用等級上限,1~20</param>
210         /// <param name="start_commission_rate">淘客佣金比率下限,1~10000</param>
211         /// <param name="end_commission_rate">淘客佣金比率上限,1~10000</param>
212         /// <param name="start_total_action">店鋪商品總數下限</param>
213         /// <param name="end_total_action">店鋪商品總數上限</param>
214         /// <param name="start_auction_count">累計推廣商品下限</param>
215         /// <param name="end_auction_count">累計推廣商品上限</param>
216         /// <param name="totalCount">總數</param>
217         /// <param name="pageNum">總頁數</param>
218         /// <returns></returns>
219         public static List<Top.Api.Domain.NTbkShop> FindShopsPagedList(long PageIndex, long PageSize, string queryKey,
220             long? start_credit, long? end_credit, long? start_commission_rate, long? end_commission_rate,
221             long? start_total_action, long? end_total_action, long? start_auction_count, long? end_auction_count,
222             out long totalCount, out long pageNum)
223         {
224             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
225             TbkShopGetRequest req = new TbkShopGetRequest();
226             req.Fields = "click_url,pic_url,seller_nick,shop_title,shop_url,user_id";
227             if (!string.IsNullOrWhiteSpace(queryKey)) req.Q = queryKey;
228             if (start_credit.HasValue) req.StartCredit = start_credit;
229             if (end_credit.HasValue) req.EndCredit = end_credit;
230  
231             if (start_commission_rate.HasValue) req.StartCommissionRate = start_commission_rate;
232             if (end_commission_rate.HasValue) req.EndCommissionRate = end_commission_rate;
233  
234             if (start_total_action.HasValue) req.StartTotalAction = start_total_action;
235             if (end_total_action.HasValue) req.EndTotalAction = end_total_action;
236  
237             if (start_auction_count.HasValue) req.StartAuctionCount = start_auction_count;
238             if (end_auction_count.HasValue) req.EndAuctionCount = end_auction_count;
239  
240             req.PageNo = PageIndex;
241             req.PageSize = PageSize;
242             TbkShopGetResponse rsp = client.Execute(req);
243  
244             totalCount = rsp.TotalResults;
245             pageNum = (long)Math.Ceiling(totalCount / (double)PageSize);
246             return rsp.Results;
247  
248  
249         }
250         /// <summary>
251         /// 淘寶客店鋪關聯推薦查詢
252         /// </summary>
253         /// <param name="userid">賣家Id</param>
254         /// <returns></returns>
255         public static List<Top.Api.Domain.NTbkShop> GetShopRecommend(long userid)
256         {
257  
258             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
259             TbkShopRecommendGetRequest req = new TbkShopRecommendGetRequest();
260             req.Fields = "click_url,pict_url,seller_nick,shop_title,shop_type,shop_url,user_id";
261             req.UserId = userid;
262             req.Count = 20;
263             req.Platform = 1;
264             TbkShopRecommendGetResponse rsp = client.Execute(req);
265             return rsp.Results;
266  
267         }
268         /// <summary>
269         /// 枚舉正在進行中的定向招商的活動列表
270         /// </summary>
271         /// <returns></returns>
272         public static List<Top.Api.Domain.TbkEvent> GetTbkUatmEvent(long? pageindex = 1, long? pageSize = 20)
273         {
274             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
275             TbkUatmEventGetRequest req = new TbkUatmEventGetRequest();
276             req.PageNo = pageindex;
277             req.PageSize = pageSize;
278             req.Fields = "event_id,event_title,start_time,end_time";
279             TbkUatmEventGetResponse rsp = client.Execute(req);
280             return rsp.Results;
281         }
282         /// <summary>
283         /// 獲取淘寶聯盟定向招商的寶貝信息
284         /// </summary>
285         /// <param name="event_id"></param>
286         /// <param name="pageindex"></param>
287         /// <param name="pageSize"></param>
288         /// <returns></returns>
289         public static List<Top.Api.Domain.UatmTbkItem> GetTbkUatmEventItem(long event_id, long? pageindex = 1, long? pageSize = 20)
290         {
291             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
292             TbkUatmEventItemGetRequest req = new TbkUatmEventItemGetRequest();
293             req.Platform = 1L;
294             req.PageSize = pageSize;
295             //req.AdzoneId = 34567L;
296             //req.Unid = unid;
297             req.EventId = event_id;
298             req.PageNo = pageindex;
299             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url,seller_id,volume,nick,shop_title,zk_final_price_wap,event_start_time,event_end_time,tk_rate,type,status";
300             TbkUatmEventItemGetResponse rsp = client.Execute(req);
301             return rsp.Results;
302  
303         }
304         /// <summary>
305         /// 獲取淘寶聯盟選品庫列表
306         /// </summary>
307         /// <param name="type">默認值-1;選品庫類型,1:普通選品組,2:高傭選品組,-1,同時輸出全部類型的選品組</param>
308         /// <param name="pageindex"></param>
309         /// <param name="pageSize"></param>
310         /// <returns></returns>
311         public static List<Top.Api.Domain.TbkFavorites> GetTbkUatmFavorites(long? type=-1, long? pageIndex = 1, long? pageSize = 20)
312         {
313             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
314             TbkUatmFavoritesGetRequest req = new TbkUatmFavoritesGetRequest();
315             req.PageNo = pageIndex;
316             req.PageSize = pageSize;
317             req.Fields = "favorites_title,favorites_id,type";
318             req.Type = type;
319             TbkUatmFavoritesGetResponse rsp = client.Execute(req);
320             return rsp.Results;
321         }
322         /// <summary>
323         /// 指定選品庫id,獲取該選品庫的寶貝信息
324         /// </summary>
325         /// <param name="FavoritesId"></param>
326         /// <param name="pageIndex"></param>
327         /// <param name="pageSize"></param>
328         /// <returns></returns>
329         public static List<Top.Api.Domain.UatmTbkItem> GetTbkUatmFavoritesItem(long? FavoritesId, long? pageIndex = 1, long? pageSize = 20)
330         {
331             ITopClient client = new DefaultTopClient(appUrl, appKey, appSecret);
332             TbkUatmFavoritesItemGetRequest req = new TbkUatmFavoritesItemGetRequest();
333             req.Platform = 1L;
334             req.PageSize = pageSize;
335             //req.AdzoneId = 34567L;
336             //req.Unid = "3456";
337             req.FavoritesId = FavoritesId;
338             req.PageNo = pageIndex;
339             req.Fields = "num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url,seller_id,volume,nick,shop_title,zk_final_price_wap,event_start_time,event_end_time,tk_rate,status,type";
340             TbkUatmFavoritesItemGetResponse rsp = client.Execute(req);
341             return rsp.Results;
342         }
343  
344  
345     }
346 }
相關文章
相關標籤/搜索