using Operater.DTO.System;
using System;
using CommonUtil;
using System.Collections.Generic;
using System.Text;
using AlibabaSDK.Request;
using AlibabaSDK.Api;
using Operater.DbModel;
using Operater.DAL;
using System.Linq;
using Newtonsoft.Json.Linq;
namespace ProductDistribution.Handle
{
public class DistributebillGetHandle
{
///
/// 代发商品铺货单获取
///
public static void MainMethod(ProductDistributionMq msg)
{
string memo = "";
try
{
var _Token = CommonHandle.GetToken();
//接口获取可铺货单商品id
AlibabaDistributebillListRequest billListRequest = new AlibabaDistributebillListRequest();
var billListResponse = AliabaClient.Execute(billListRequest, _Token.AliToken);
if (billListResponse.IsNull() || !billListResponse.Success|| billListResponse.result.IsNull())
{
LogUtil.Info("接口获取可铺货单商品id错误:" + (billListResponse.IsNull() ? "null" : billListResponse.ErrorCode), "代发商品铺货单获取error");
DaifaTask daifaTask = new DaifaTask()
{
TaskStatus = 2,
Memo = "接口获取可铺货单商品id错误:" + (billListResponse.IsNull() ? "null" : billListResponse.ErrorCode)
};
new DaifaTaskDAL().Update(daifaTask, i => new { i.TaskStatus, i.Memo }, t => t.Id == msg.TaskId);
return;
}
List errorCount = new List();
foreach (var proId in billListResponse.result.offerIds)
{
try
{
if (new DaifaProductDAL().IsExist(t => t.Id == proId.ToString()))
{//已存在
continue;
}
//获取商品详情
FenXiaoProductInfoGetRequest proReq = new FenXiaoProductInfoGetRequest()
{
offerId = proId
};
var proResponse = AliabaClient.Execute(proReq, _Token.AliToken);
if (proResponse.IsNull() || !proResponse.Success)
{
LogUtil.Info("获取商品详情错误:" + proId + "--" + (proResponse.IsNull() ? "null" : proResponse.ErrorMsg), "代发商品铺货单获取error");
errorCount.Add(proId.ToString());
continue;
}
var productInfo = proResponse.productInfo;
int supportOnlineTrade = productInfo.productSaleInfo.supportOnlineTrade ? 1 : 0;
DaifaProduct daifaProduct = new DaifaProduct()
{
Id = proId.ToString(),
Img = "https://cbu01.alicdn.com/" + productInfo.productImage.images[0],
MinPrice = decimal.Parse(productInfo.productSkuInfos.Min(t => t.consignPrice).ToString()),
MaxPrice = decimal.Parse(productInfo.productSkuInfos.Max(t => t.consignPrice).ToString()),
ProductStatus = productInfo.status,
Subject = productInfo.subject,
SupportOnlineTrade = supportOnlineTrade,
IsDistribute = 0,
CreateTime = DateTime.Now
};
//处理买家保障
string mjbz = "";
foreach (var m in productInfo.productExtendInfos)
{
if (!"buyerProtection,buyerProtectionDistribution".Contains(m.key) || m.value.IsNullOrEmpty())
{
continue;
}
List arr = JSONUtil.JsonToObject>(m.value);
foreach (var a in arr)
{
mjbz += GetMjbz(a) + ",";
}
}
mjbz = mjbz.Length > 0 ? (mjbz.Substring(0, mjbz.Length - 1)) : mjbz;
daifaProduct.BuyerProtection = mjbz;
new DaifaProductDAL().Insert(daifaProduct);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
LogUtil.Info("循环错误:" + e.ToString(), "代发商品铺货单获取error");
}
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
LogUtil.Info("主线程错误:" + e.ToString(), "代发商品铺货单获取error");
memo = "主线程错误:" + e.ToString();
}
DaifaTask sdaifaTask = new DaifaTask()
{
TaskStatus = 2,
Memo = memo
};
new DaifaTaskDAL().Update(sdaifaTask, i => new { i.TaskStatus, i.Memo }, t => t.Id == msg.TaskId);
}
public static string GetMjbz(string m)
{
switch (m)
{
case "qtwlybt":
return "七天无理由包退";
case "drfh":
return "当日发货";
case "qqqqqqq":
return "qqqqq";
case "essxsfh":
return "24小时发货";
case "ssbxsfh":
return "48小时发货";
case "qsexsfh":
return "72小时发货";
case "qtbh":
return "7天包换";
case "stdhbz":
return "3天到货保障";
case "wtdhbz":
return "5天到货保障";
case "qtdhbz":
return "7天到货保障";
case "btwlybt":
return "8天无理由包退";
case "shbp":
return "少货必赔";
case "czbz":
return "材质保障";
case "psbp":
return "破损包赔";
case "gfzs":
return "官方直送";
default:
return m;
}
}
}
}