using Api.Framework; using Api.Framework.Cps; using Api.Framework.Tools; using CouponsSend.Entitys; using CouponsSend.Entitys1; using CouponsSend.Entitys2; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using static CouponsSend.Entitys.Enum; namespace CouponsSend { public class AnalyzeGoods { #region 采集大淘客数据 public void GatherFactory() { try { var html = string.Empty; var session = ApiClient.GetSession(); var dtk = DtkApi.GetDtkApi(); var par = new ApiParameters(); par.Add("pageId", "1"); par.Add("pageSize", "100"); var ver = "v1.0.0"; var api = "https://openapi.dataoke.com/api/goods/exclusive-goods-list"; switch (Class1.Config.GatherType) { case Entitys.Enum.GatherType.独家券商品: api = "https://openapi.dataoke.com/api/goods/exclusive-goods-list"; par.Add("sort", Class1.Config.ConditionType.ToString()); html = dtk.SendDtk(api, par, ver); if (!string.IsNullOrWhiteSpace(html)) { try { var egList = JsonConvert.DeserializeObject(html); if (egList != null) { var existGoods = session.Find("select * from fl_plugin_couponssend_goodsinfos"); var goodsinfos = new List(); foreach (var item in egList.data.list) { try { var goods = new fl_plugin_couponssend_goodsinfos(); goods.goods_quan = item.couponId; goods.goods_id = item.goodsId; var gTemp = existGoods.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; gTemp = goodsinfos.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; goods.goods_desc = item.desc; goods.coupon_discount = item.couponPrice; goods.normal_price = item.originalPrice; goods.actual_price = item.actualPrice; goods.goods_thumbnail_url = item.mainPic; goods.goods_name = item.title; goods.promotion_rate = item.commissionRate; goods.state = StateType.未推广; goods.cur_time = DateTime.Now; goodsinfos.Add(goods); } catch (Exception ex) { } } if (goodsinfos.Count != 0) session.Insertable(goodsinfos.ToArray()).ExecuteCommand(); } } catch (Exception ex) { //EventClient.OnEvent(this, $"群发优惠券采集异常.:{ex.Message}{ex.StackTrace}"); } } break; case Entitys.Enum.GatherType.每日爆品推荐: api = "https://openapi.dataoke.com/api/goods/explosive-goods-list"; par.Add("PriceCid", (Class1.Config.ConditionType + 1).ToString()); html = dtk.SendDtk(api, par, ver); if (!string.IsNullOrWhiteSpace(html)) { try { var egList = JsonConvert.DeserializeObject(html); if (egList != null) { var existGoods = session.Find("select * from fl_plugin_couponssend_goodsinfos"); var goodsinfos = new List(); foreach (var item in egList.data.list) { try { var goods = new fl_plugin_couponssend_goodsinfos(); goods.goods_quan = item.couponId; goods.goods_id = item.goodsId; var gTemp = existGoods.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; gTemp = goodsinfos.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; goods.goods_desc = item.desc; goods.coupon_discount = item.couponPrice; goods.normal_price = item.originalPrice; goods.actual_price = item.actualPrice; goods.goods_thumbnail_url = item.mainPic; goods.goods_name = item.title; goods.promotion_rate = item.commissionRate; goods.state = StateType.未推广; goods.cur_time = DateTime.Now; goodsinfos.Add(goods); } catch (Exception ex) { } } if (goodsinfos.Count != 0) session.Insertable(goodsinfos.ToArray()).ExecuteCommand(); } } catch (Exception ex) { //EventClient.OnEvent(this, $"群发优惠券采集异常.:{ex.Message}{ex.StackTrace}"); } } break; case Entitys.Enum.GatherType.各大榜单: api = "https://openapi.dataoke.com/api/goods/get-ranking-list"; ver = "v1.3.0"; par.Add("rankType", (Class1.Config.ConditionType + 1).ToString()); html = dtk.SendDtk(api, par, ver); if (!string.IsNullOrWhiteSpace(html)) { try { var egList = JsonConvert.DeserializeObject(html); if (egList != null) { var existGoods = session.Find("select * from fl_plugin_couponssend_goodsinfos"); var goodsinfos = new List(); foreach (var item in egList.data) { try { var goods = new fl_plugin_couponssend_goodsinfos(); var reg = Regex.Match(item.couponLink, @"activityId=(?[a-zA_Z0-9]+)"); goods.goods_quan = reg.Success ? reg.Groups["activityid"].ToString() : string.Empty; goods.goods_id = item.goodsId; var gTemp = existGoods.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; gTemp = goodsinfos.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; goods.goods_desc = item.desc; goods.coupon_discount = item.couponPrice; goods.normal_price = item.originalPrice; goods.actual_price = item.actualPrice; goods.goods_thumbnail_url = item.mainPic; goods.goods_name = item.title; goods.promotion_rate = item.commissionRate; goods.state = StateType.未推广; goods.cur_time = DateTime.Now; goodsinfos.Add(goods); } catch (Exception ex) { } } if (goodsinfos.Count != 0) session.Insertable(goodsinfos.ToArray()).ExecuteCommand(); } } catch (Exception ex) { //EventClient.OnEvent(this, $"群发优惠券采集异常.:{ex.Message}{ex.StackTrace}"); } } break; case Entitys.Enum.GatherType.九块九包邮精选: api = "https://openapi.dataoke.com/api/goods/nine/op-goods-list"; par.Add("nineCid", (Class1.Config.ConditionType + 1).ToString()); ver = "v2.0.0"; html = dtk.SendDtk(api, par, ver); if (!string.IsNullOrWhiteSpace(html)) { try { var egList = JsonConvert.DeserializeObject(html); if (egList != null) { var existGoods = session.Find("select * from fl_plugin_couponssend_goodsinfos"); var goodsinfos = new List(); foreach (var item in egList.data.list) { try { var goods = new fl_plugin_couponssend_goodsinfos(); var reg = Regex.Match(item.couponLink, @"activityId=(?[a-zA_Z0-9]+)"); goods.goods_quan = reg.Success ? reg.Groups["activityid"].ToString() : string.Empty; goods.goods_id = item.goodsId; var gTemp = existGoods.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; gTemp = goodsinfos.FirstOrDefault(f => f.goods_id == goods.goods_id); if (gTemp != null) continue; goods.goods_desc = item.desc; goods.coupon_discount = item.couponPrice; goods.normal_price = item.originalPrice; goods.actual_price = item.actualPrice; goods.goods_thumbnail_url = item.mainPic; goods.goods_name = item.title; goods.promotion_rate = item.commissionRate; goods.state = StateType.未推广; goods.cur_time = DateTime.Now; goodsinfos.Add(goods); } catch (Exception ex) { } } if (goodsinfos.Count != 0) session.Insertable(goodsinfos.ToArray()).ExecuteCommand(); } } catch (Exception ex) { //EventClient.OnEvent(this, $"群发优惠券采集异常.:{ex.Message}{ex.StackTrace}"); } } break; } } catch (Exception ex) { EventClient.OnEvent(this, $"群发优惠券采集异常:{ex.Message}{ex.StackTrace}"); } } #endregion } }