141 lines
7.2 KiB
C#
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 + "\"}";
|
|
}
|
|
}
|
|
}
|
|
}
|