Files
KJD_WebService/TEMUKJD/BLL/WxProdFormConverter.cs
T

141 lines
7.2 KiB
C#

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
{
/// <summary>
/// 聚水潭拼多多数据格式转换成外部服务器格式
/// </summary>
/// <returns></returns>
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<PDDPropRefPidNameMap>(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<string>(outGoodsParam.descImgs);
outGoodsParam.extStatus = 1;
outGoodsParam.freightPrice = null;
outGoodsParam.goodsIds = null;
outGoodsParam.groupKey = null;
outGoodsParam.headImgs = JsonHelper.SerializeObject(jstGoodsObj["carouselGallery"]);
outGoodsParam.headImgList = JsonHelper.DeserializeJsonToList<string>(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<osProductAttrParam>();
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<osSkuParam>();
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<skuAttrParam>(),
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 + "\"}";
}
}
}
}