Files
KJD_WebService/Work/Api/TaoJiJiProductGet.cs
T
2025-06-29 19:38:31 +08:00

130 lines
4.7 KiB
C#

using AllBase;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Work.CollectClass;
using Work.ManageClass;
namespace Work.Api
{
public class TaoJiJiProductGet
{
public ProductCollectBase Product;
public bool IsPinduoduo = false;
public bool OnSale = true;
public TaoJiJiProductGet(ProductCollectBase p)
{
Product = p;
}
public void Get()
{
if (TaobaoMobileCollect.ProductTemp.ContainsKey(Product.from_id))
{
Product = TaobaoMobileCollect.ProductTemp[Product.from_id].Clone();
return;
}
string url = Product.from_url;
string refere = string.Empty;
string html = GetPostTaobaoHtml.GetUrl(url, refere, true, string.Empty);
JObject json = JObject.Parse(html);
if (json["result"].ToString() == "1")
{
var data = json["data"];
Product.from_cat_id = BaseRegex.GetIntJson(ref html, @"catid");
Product.item_size = "";
Product.item_weight = 1;
Product.price = data["price"].ParseToDecimal();
Product.discount = 0;
Product.discountPrice = 0;
if (Product.discount == 0)
{
Product.discount = 1;
Product.discountPrice = Product.price;
}
Product.name = data["name"].ParseToString();
foreach (string s in AlibabaShop.NoTitleWords)
{
Product.name = Product.name.Replace(s, "");
}
Product.sell_pt = "";
var album = data["album"];
foreach (var image in album)
{
Product.Images.Add(image["img640url"].ParseToString());
}
Product.image = Product.Images[0];
Product.image_from_url = Product.image;
Product.image_path = "";
var contentImage = data["image"];
foreach (var image in contentImage)
{
Product.content += "<img src='" + image["img640url"].ParseToString().Replace("_480_480", "_750_750").Replace("_640_640", "_750_750") + "' />";
}
SetSkuMap(data);
}
Product.main_cid = 0;
Product.from_title = Product.name;
Product.from_site_id = 3;
Product.main_cid = new FromTitleToCat().GetMainCatId(Product.cat1);
if (Product.main_cid == 0)
return;
if (TaobaoMobileCollect.ProductTemp.Count > 1000)
{
TaobaoMobileCollect.ProductTemp.Clear();
}
if (!TaobaoMobileCollect.ProductTemp.ContainsKey(Product.from_id))
{
TaobaoMobileCollect.ProductTemp.Add(Product.from_id, Product);
}
LogSave.Add("获取成功:" + Product.name);
}
public void SetSkuMap(JToken json)
{
var skuList = json["show"];
foreach (var sku in skuList.Values())
{
PropBase p = new PropBase();
p.name = sku["label"].ParseToString();
p.sort++;
var skuValueList = sku["list"];
foreach (var skuValue in skuValueList)
{
PropValueBase pr = new PropValueBase();
pr.name = skuValue.ParseToString();
pr.number = new Random(Guid.NewGuid().GetHashCode()).Next(100, 1000);
p.Values.Add(pr);
}
Product.Props.Add(p);
}
var specList = json["spec"];
foreach (var spec in specList)
{
SkuMapBase sm = new SkuMapBase();
foreach (JProperty attr in spec["attr"].Children().OfType<JProperty>())
{
string titleName = skuList[attr.Name]["label"].ParseToString();
sm.name += titleName + ":" + attr.Value.ToString() + ";";
}
sm.name = sm.name.Trim(';');
sm.prop_image = spec["smallImgUrl"].ParseToString();
sm.price = spec["groupPrice"].ParseToDecimal();
sm.prop_image = spec["smallImgUrl"].ParseToString();
int nu = 0;
int.TryParse(spec["stocknum"].ParseToString(), out nu);
sm.number = nu;
Product.SkuMaps.Add(sm);
}
}
}
}