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; } } } }