using AllBase; using AllBase.Model.Param; using AllBase.Model.Result; using AllBase.Model.Result.PDDResult; using NaiBa.Util.Extension; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TemuKJD.BLL { public class WxProdFormConverter { /// /// 聚水潭拼多多数据格式转换成外部服务器格式 /// /// public string JstPddConvertToWxOutServer(KJDDBProduct dbProd) { OutServerGoodsParam outGoodsParam = new OutServerGoodsParam(); try { var prodObj = JsonHelper.JObjectParse(dbProd.product_json); var jstGoodsObj = prodObj["pddData"]; var jstPddPropMapLst = JsonHelper.DeserializeJsonToList(JsonHelper.SerializeObject(prodObj["pddPropMap"])); outGoodsParam.categoryId = dbProd.wx_cat_leaf.ParseToString(); outGoodsParam.catId = dbProd.wx_cat_leaf; outGoodsParam.createBy = ""; outGoodsParam.createTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); outGoodsParam.descImgs = JsonHelper.SerializeObject(jstGoodsObj["detailGallery"]); outGoodsParam.descText = jstGoodsObj["goodsDesc"].ParseToString(); outGoodsParam.detailImgList = JsonHelper.DeserializeJsonToList(outGoodsParam.descImgs); outGoodsParam.extStatus = 1; outGoodsParam.freightPrice = null; outGoodsParam.goodsIds = null; outGoodsParam.groupKey = null; outGoodsParam.headImgs = JsonHelper.SerializeObject(jstGoodsObj["carouselGallery"]); outGoodsParam.headImgList = JsonHelper.DeserializeJsonToList(outGoodsParam.headImgs); outGoodsParam.headImg = outGoodsParam.headImgList.FirstOrDefault(); outGoodsParam.isDelete = 0; outGoodsParam.merchantId = null; // dbProd.skc_id; outGoodsParam.platform = "WEISHOP"; outGoodsParam.platformCode = "WEISHOP"; outGoodsParam.productAttrs = new List(); if (!jstGoodsObj["goodsProperties"].IsJTokenNullOrEmpty()) { foreach (JObject jProp in jstGoodsObj["goodsProperties"]) { string name = ""; string value = ""; if (!jProp["propName"].IsJTokenNullOrEmpty()) name = jProp["propName"].ParseToString(); else { try { if (jstPddPropMapLst != null) name = jstPddPropMapLst.FirstOrDefault(p => p.ref_pid.ParseToString() == jProp["refPid"].ParseToString())?.name; if (string.IsNullOrEmpty(name)) name = jProp["refPid"].ParseToString(); } catch { } } string propStr = JsonHelper.SerializeObject(jProp); value = BaseRegex.GetStringJson(ref propStr, "label"); outGoodsParam.productAttrs.Add(new osProductAttrParam() { attrKey = name, attrValue = value }); } } else { outGoodsParam.productAttrs.Add(new osProductAttrParam { attrKey = "品牌", attrValue = "无品牌" }); } outGoodsParam.remark = ""; outGoodsParam.selectionQuareGoodsExtList = null; outGoodsParam.selectionQuareGoodsSkus = null; outGoodsParam.shipType = 20; outGoodsParam.skus = new List(); if (!jstGoodsObj["skuInfo"].IsJTokenNullOrEmpty() && !jstGoodsObj["skuInfo"]["goodsSkuDetail"].IsJTokenNullOrEmpty()) { foreach (JObject jSku in jstGoodsObj["skuInfo"]["goodsSkuDetail"]) { osSkuParam skuParam = new osSkuParam() { latestPrice = jSku["supplyPrice"].ParseToString(), latestPriceTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), latestUpdateTime = null, platform = null, platformSkuId = null, remark = "", salePrice = (jSku["supplyPrice"].ParseToDecimal() * 100).ParseToInt(), skuAttrs = new List(), skuCode = jSku["itemNo"].ParseToString(), //jSku["realItemNo"].ParseToString(), // realItemNo有的商品没有 skuId = null, skuImags = null, skuWeight = (jSku["weight"].ParseToDecimal() * 1000).ParseToInt(), status = 1, stockNum = jSku["quantity"].ParseToInt(), supplierId = dbProd.skc_id.ParseToLong(), // null thumbImg = jSku["pic"].ParseToString(), title = "", warehouseSkuId = jSku["baseSkuId"].ParseToString(), }; foreach (JObject jSpec in jSku["skus"]) { skuParam.skuAttrs.Add(new skuAttrParam() { attrKey = jSpec["k"].ParseToString(), attrValue = jSpec["v"].ParseToString(), }); } skuParam.title = string.Join(";", skuParam.skuAttrs.Select(s => s.attrValue)); outGoodsParam.skus.Add(skuParam); } } outGoodsParam.spuCode = jstGoodsObj["styleCode"].ParseToString(); outGoodsParam.status = 1; outGoodsParam.subTitle = jstGoodsObj["goodsName"].ParseToString(); outGoodsParam.supplier = dbProd.from_shop_name; outGoodsParam.supplierId = dbProd.skc_id.ParseToLong(); // dbProd.from_shop_id outGoodsParam.title = jstGoodsObj["goodsName"].ParseToString(); outGoodsParam.updateBy = null; outGoodsParam.updateTime = null; outGoodsParam.warehouseDisablePlatformList = null; outGoodsParam.warehouseGoodsId = dbProd.spu_id; outGoodsParam.warehouseNum = dbProd.skc_id; return "{\"success\":true,\"msg\":\"\",\"data\":" + JsonHelper.SerializeObject(outGoodsParam) + "}"; } catch (Exception ex) { return "{\"success\":false,\"msg\":\"" + ex.Message + "\"}"; } } } }