using NetLibrary; using NetLibrary.Data; using NetLibrary.Log; using NetLibrary.OnlineTrade; using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Linq; using System.Text; using System.Threading; using TradeData; using TradeModel; using System.Web.Services; using NetLibrary.Express; using NetLibrary.Common.Configuration; using TradeManageNew; using System.Diagnostics.SymbolStore; using System.Net; using Newtonsoft.Json; using System.ComponentModel.Design; using TradeManage.CangKu; using System.Security.Cryptography; using System.Security.Permissions; using System.Runtime.InteropServices.ComTypes; using System.Web; using System.Text.RegularExpressions; using MarketplaceWebServiceOrders.Model; namespace TradeServer { public class OrderInfoService { public static int XCNum = 0; public static int Count = 0; //public static int shopid = 0; //public static int PlatType = 0; //public static DateTime? SDate = null; //public static DateTime? EDate = null; List TBShopList = null; public string StartRunTime { get; set; } public int OrderDelayTime = 10; //因网络原因订单读取失败,延迟多少分钟再读取 public int OrderReadNum = 5; //每天最多读取失败几次 TimeTask Task = new TimeTask(); TimeTask Task1 = new TimeTask(); TimeTask Task2 = new TimeTask(); TimeTask Task3 = new TimeTask(); TimeTask Task4 = new TimeTask(); List ListAlibab = null; List ListAmazon = null; List ListEbay = null; List ListWish = null; List ListLazada = null; List ListShopee = null; List ListWalmart = null; List ListWayFair = null; List ListTikTok = null; List ListShein = null; List ListTemu = null; public string FedexReadTime { get; set; } // Thread threadListen = null; List ProductOnOffList = null; int CurrentOrderReadNum = 0; private AutoResetEvent AutoReset = new AutoResetEvent(false); bool IsRun = false; #region 启动 public void Start() { try { IsRun = true; //ERP手动同步订单,点击同步订单之后,修改JC_SyncState对应店铺的state为1,每分钟查询一遍JC_SyncState,同步state为1的店铺订单 TaskModel tm1 = new TaskModel(); tm1.Interval = 1; tm1.NextTime = DateTime.Now; tm1.RunTask = RunTask1; Task1.ListModel.Add(tm1); Task1.Start(); TaskModel tm2 = new TaskModel(); tm2.Interval = 8; tm2.NextTime = DateTime.Now; tm2.RunTask = RunTask2; Task2.ListModel.Add(tm2); Task2.Start(); TaskModel tm3 = new TaskModel(); tm3.Interval = 8; tm3.NextTime = DateTime.Now; tm3.RunTask = RunTask3; Task3.ListModel.Add(tm3); Task3.Start(); TaskModel tm4 = new TaskModel(); tm4.Interval = 10; tm4.NextTime = DateTime.Now; tm4.RunTask = RunTask4; Task4.ListModel.Add(tm4); Task4.Start(); //自动运行同步订单,每天早上5:33运行一次,间隔24小时 TaskModel tm = new TaskModel(); tm.Interval = StaticModel.OrderJGTime * 60; tm.NextTime = DateTime.Now;// Convert.ToDateTime(DateTime.Today.ToString("yyyy-MM-dd") + " " + StartRunTime); // if (tm.NextTime < DateTime.Now) tm.NextTime = tm.NextTime.AddDays(1); tm.RunTask = RunTask; Task.ListModel.Add(tm); Task.Start(); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); } } #endregion private void RunTask2(TaskModel m) { try { this.GetFedex(); } catch (Exception exception) { ErrorFollow.TraceWrite(exception.TargetSite.Name, exception.StackTrace, exception.Message); } } public void GetFedex() { try { JC_ExpressService service = new JC_ExpressService(); JC_PostAddress address = new BaseService().GetAddressModel2(228); JC_ExpressPost expressModel = service.GetExpressModel(1, 228); JC_PostAddress address2 = new BaseService().GetAddressModel2(237); JC_ExpressPost expressModel2 = service.GetExpressModel(1, 237); List fedexOrderList = API_OrderInfoService.GetFedexOrderList(new DateTime?(Convert.ToDateTime(this.FedexReadTime))); string str = ""; if (fedexOrderList != null) { foreach (DT_OrderModel model in fedexOrderList) { str = str + model.OrderId + ","; } } List fedexOrderGoodsList = new List(); if (str != "") { fedexOrderGoodsList = API_OrderInfoService.GetFedexOrderGoodsList(str.TrimEnd(',')); } if (fedexOrderList != null) { foreach (var fmd in fedexOrderList) { List list3 = null; if (fedexOrderGoodsList != null) { list3 = fedexOrderGoodsList.FindAll(n => n.OrderId == fmd.OrderId); } GetFedexFee(list3, address, expressModel, fmd, 228); Thread.Sleep(3000); GetFedexFee(list3, address2, expressModel2, fmd, 237); //获取TEMU订单的各个快递渠道的运费 GetTemuOrderPostFee(fmd.OrderId.Value); } } } catch (Exception exception) { ErrorFollow.TraceWrite("GetFedex", "", exception.Message); } } public void GetFedexFee(List list3, JC_PostAddress address, JC_ExpressPost expressModel, DT_OrderModel fmd, int expressid2) { try { JC_ExpressService service = new JC_ExpressService(); decimal num = 0M; string str2 = ""; if (list3 != null) { foreach (DT_OrderMateGoods goods in list3) { if (goods.Weight == null || goods.Weight <= 0) { str2 = str2 + goods.GoodsCode + "重量没填,无法计算"; } if (goods.Width2 == null || goods.Length2 == null || goods.Height2 == null || goods.Length2 <= 0 || goods.Width2 <= 0 || goods.Height2 <= 0) { str2 = str2 + goods.GoodsCode + "长宽高没填,无法计算"; } if (goods.Weight != null && goods.GoodsNum != null) { num += goods.Weight.Value * goods.GoodsNum.Value; } } } if (list3 == null || list3.Count <= 0) { str2 = "订单没有对应货物,没法计算"; } if (str2 == "") { TradeManageNew.FedexRateNew rate = new TradeManageNew.FedexRateNew(); TradeManageNew.FedexRateNew.Key = expressModel.UserCode; TradeManageNew.FedexRateNew.Password = expressModel.CheckCode; TradeManageNew.FedexRateNew.AccountNumber = expressModel.client_id; TradeManageNew.FedexRateNew.MeterNumber = expressModel.client_secret; TradeManageNew.FedexRateNew.PayAccountNumber = expressModel.refresh_token; TradeManageNew.FedexRateNew.HubId = expressModel.Code; TradeManageNew.FedexFeeMdNew md = new TradeManageNew.FedexFeeMdNew(); TradeManageNew.FedexRateNew.PostId = expressid2; md.RevName = fmd.RevName; md.RevPhone = fmd.RevPhone; if (fmd.RevPhone == null || fmd.RevPhone == "") { md.RevPhone = fmd.RevMoblie; } if (fmd.RevAddr != null && fmd.RevAddr != "") { md.RevAddr = fmd.RevAddr; } else { md.RevAddr = "street No 18"; } md.RevCity = fmd.RevCity; if (fmd.RevCity == null || fmd.RevCity == "") { md.RevCity = fmd.RevProvince; } if (fmd.RevProvinceCode != null && fmd.RevProvinceCode != "") { md.RevProv = fmd.RevProvinceCode; } else if (fmd.RevProvince != null && fmd.RevProvince != "" && fmd.RevProvince.Length > 2) { md.RevProv = fmd.RevProvince.Substring(fmd.RevProvince.Length - 2, 2); } else { md.RevProv = fmd.RevProvince; } md.RevPostCode = fmd.RevPostCode; md.RevCountry = fmd.CountryCode; md.OrderId = fmd.OrderId; // md.SendAddr = address.EnglishAddress; md.SendAddr = address.EnglishAddress; md.SendCountry = address.countycode; md.SendCity = address.city; md.SendProv = address.provincecode; md.SendPostCode = address.PostCode; if (list3[0].Width2 != null) { md.Width = (Math.Ceiling(list3[0].Width2.Value).ToString()); } if (list3[0].Height2 != null) { md.Height = Math.Ceiling(list3[0].Height2.Value).ToString(); } if (list3[0].Length2 != null) { md.Lenght = Math.Ceiling(list3[0].Length2.Value).ToString(); } md.Weight = num; md.PostType = "SMART_POST"; try { rate.GetFee(md, out str2); } catch (Exception ex) { } Thread.Sleep(2000); md.PostType = "FEDEX_GROUND"; try { rate.GetFee(md, out str2); } catch (Exception ex) { } Thread.Sleep(2000); md.PostType = "GROUND_HOME_DELIVERY"; try { rate.GetFee(md, out str2); } catch (Exception ex) { } } if (str2 != "") { try { API_OrderInfoService.UpdateFee(fmd.OrderId.Value, str2); } catch (Exception ex) { } } } catch (Exception exception) { ErrorFollow.TraceWrite("GetFedexFee", "", exception.Message); } } /// /// 获取TEMU平台店铺的订单,去获取发货渠道价格 /// public void GetTemuOrder() { ErrorFollow.TraceWrite("开始获取TEMU平台订单快递接口:", "GetTemuOrder", "GetTemuOrder"); var orders = DataNew.GetTemuNoPostFeeOrders(); if(orders!=null && orders.Count > 0) { foreach(var order in orders) { GetTemuOrderPostFee(order.OrderId.Value); DataNew.SaveGetTemuOrderPostFee(order.OrderId.Value); } } ErrorFollow.TraceWrite("结束获取TEMU平台订单快递接口:", "GetTemuOrder", "订单数量:" + (orders == null ? "0" : orders.Count().ToString())); } /// /// 获取temu 平台订单的运费 /// /// public void GetTemuOrderPostFee(int orderid) { try { var orderMd = DataNew.GetOrderModel(orderid); //TEMU平台的订单才需要去获取订单各个快递渠道的运费 if (orderMd.PlatId.Value != 23) return; var orderGoodslist = DataNew.GetOrderGoodsList2(orderid.ToString()); if (orderGoodslist == null) return ; string gsku = ""; int gnum = 0; decimal ww = 0; decimal c = 0; decimal k = 0; decimal g = 0; foreach (var gmd in orderGoodslist) { if (gmd.GoodsSKU != null && gmd.GoodsSKU != "") gsku += gmd.GoodsNum.Value + "x" + gmd.GoodsSKU + " "; gnum += gmd.GoodsNum.Value; if (gmd.Weight2 != null) ww += gmd.GoodsNum.Value * gmd.Weight2.Value * 0.0625m; else if (gmd.Weight != null) ww += gmd.GoodsNum.Value * gmd.Weight.Value * Convert.ToDecimal(0.0022046); //转为磅 decimal c2 = 0; decimal k2 = 0; decimal g2 = 0; if (gmd.Long2 != null) c2 = gmd.Long2.Value; if (gmd.Width2 != null) k2 = gmd.Width2.Value; if (gmd.Height2 != null) g2 = gmd.Height2.Value; if (c2 > c) c = c2; if (k2 > k) k = k2; if (g2 > g) g = g2; } int? dlength=null, dwidth=null, dheight = null, dweight = null; if (ww > 0) dweight = (int)Math.Ceiling(ww); if (c > 0) dlength = (int)Math.Ceiling(c); if (g > 0) dheight = (int)Math.Ceiling(g); if (k > 0) dwidth = (int)Math.Ceiling(k); var orderGoods = DataNew.GetOrderGoodsList3(orderid); if (orderMd == null || orderGoods == null) { return; } JC_Shop model = JC_ShopService.GetModel(orderMd.ShopId.Value); if (string.IsNullOrEmpty(model.RefreshToken) || string.IsNullOrEmpty(model.DeveKey) || string.IsNullOrEmpty(model.Appkey)) { return; } var wareHouses = DataNew.GetTemuShopWareHouses(orderMd.ShopId.Value); if (wareHouses == null) { return; } if(!dlength.HasValue || !dwidth.HasValue || !dheight.HasValue || !dweight.HasValue) { return; } var orderSnList = orderGoods.Select(r => r.PostInfo).ToArray(); var channels = new List(); foreach (var wh in wareHouses) { var timeStamp = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; var apiType = "bg.logistics.shippingservices.get"; var bodyStrArr = new string[] { "access_token" + model.RefreshToken, "app_key" + model.Appkey, "data_typeJSON", "dimensionUnitin", "height" + dheight, "length" + dlength, "orderSnList" + JsonConvert.SerializeObject(orderSnList), "timestamp" + timeStamp, "type" + apiType, "warehouseId" + wh.warehouseId, "weight" + dweight, "weightUnitlb", "width" + dwidth }; var bodyStr = model.DeveKey + string.Join("", bodyStrArr) + model.DeveKey; var sign = EncryptionHelp.GetMD5(bodyStr); var body = new { access_token = model.RefreshToken, app_key = model.Appkey, data_type = "JSON", dimensionUnit = "in", height = dheight, length = dlength, orderSnList = orderSnList, timestamp = timeStamp, type = apiType, warehouseId = wh.warehouseId, weight = dweight, weightUnit = "lb", width = dwidth, sign = sign.ToUpper(), }; var json = JsonConvert.SerializeObject(body); var path = EncryptionHelp.EncryptString(json, "ThisIsShopifyKey12365498"); var path2 = HttpUtility.UrlEncode(path); var url = "http://50.196.110.198:8099/api/TemuHelp/getTemuAPIReturnInfo?apiType=" + apiType + "&bodyStr=" + path2; //using (HttpClient client = new HttpClient()) //{ // HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, url); // var response = client.SendAsync(request); // string responseContent = response.Result.Content.ReadAsStringAsync().GetAwaiter().GetResult(); // if (string.IsNullOrEmpty(responseContent) || responseContent == "Fail") // { // rmodel.Code = 0; // rmodel.Message = "调用Temu接口失败"; // return rmodel; // } // else // { // var rModel = JsonConvert.DeserializeObject(responseContent); // if (rModel != null && rModel.result != null && rModel.result.onlineChannelDtoList != null) // { // foreach (var channel in rModel.result.onlineChannelDtoList) // { // channel.wareHouseId = wh.warehouseId; // channel.wareHouseName = wh.warehouseName; // channels.Add(channel); // } // } // else // { // return; // } // } //} using (WebClient client = new WebClient()) { client.Encoding = Encoding.UTF8; // 设置编码为 UTF-8 string responseContent = client.DownloadString(url); if (string.IsNullOrEmpty(responseContent) || responseContent == "Fail") { continue; } else { var rModel = JsonConvert.DeserializeObject(responseContent); if (rModel != null && rModel.result != null && rModel.result.onlineChannelDtoList != null) { string pattern = @"\$(\d+\.\d+)"; foreach (var channel in rModel.result.onlineChannelDtoList) { Match match = Regex.Match(channel.estimatedText, pattern); if (!match.Success) { continue; } var topf = new TemuOrderPostFee() { OrderId = orderid, WareHouseId = wh.warehouseId, WareHouseName = wh.warehouseName, PostFee = Convert.ToDecimal(match.Groups[1].Value), EstimatedText = channel.estimatedText, ShipLogisticsType = channel.shipLogisticsType, ShippingCompanyName = channel.shippingCompanyName, ShipCompanyId = channel.shipCompanyId, ChannelId = channel.channelId, }; DataNew.SaveTemuOrderPostFee(topf); } continue; } else { continue; } } } } return; } catch(Exception ex) { return ; } } private void RunTask3(TaskModel m) { try { this.GetUPS(); } catch (Exception exception) { ErrorFollow.TraceWrite(exception.TargetSite.Name, exception.StackTrace, exception.Message); } } private void RunTask4(TaskModel m) { try { this.GetTemuOrder(); } catch (Exception exception) { ErrorFollow.TraceWrite(exception.TargetSite.Name, exception.StackTrace, exception.Message); } } //获取订单的UPS运费 public void GetUPS() { //查找所有需要获取运费的订单 var orderList = DataNew.GetUpsOrderList(Convert.ToDateTime("2023-11-20")); if (orderList != null && orderList.Count > 0) { //获取到Rancho仓库的发货地址 JC_ExpressService service = new JC_ExpressService(); JC_PostAddress address = new BaseService().GetAddressModel2(241);//Rancho仓 JC_ExpressPost expressModel = service.GetExpressModel(1, 241); //循环所有订单,逐个订单获取UPS运费 foreach (var order in orderList) { try { //获取订单内容 var omd = DataNew.GetOrderModelNew(order.OrderId.Value); //获取订单包含的所有商品 var orderGoods = DataNew.GetOrderGoodsListNew(order.OrderId.Value); decimal num2 = 0M; int totalNum = 0; foreach (var goods in orderGoods) { decimal? nullable; if (!(goods.Weight.HasValue && !(((nullable = goods.Weight).GetValueOrDefault() <= 0M) && nullable.HasValue))) { throw new Exception("重量没填,无法计算"); } num2 += goods.Weight.Value * goods.GoodsNum.Value; totalNum += goods.GoodsNum.Value; } TradeManageNew.UPSRate rate = new TradeManageNew.UPSRate(); TradeManageNew.UPSRate.AccessLicenseNumber = expressModel.client_id; TradeManageNew.UPSRate.Username = expressModel.UserCode; TradeManageNew.UPSRate.Password = expressModel.CheckCode; TradeManageNew.UPSRate.ShipperNumber = expressModel.Code; TradeManageNew.FedexFeeMdNew md = new TradeManageNew.FedexFeeMdNew { RevName = omd.RevName, RevPhone = omd.RevPhone }; if ((omd.RevPhone == null) || (omd.RevPhone == "")) { md.RevPhone = omd.RevMoblie; } md.OrderId = omd.OrderId; md.PostType = "03"; md.packType = "02"; md.SendAddr = address.EnglishAddress; md.SendCountry = address.countycode; md.SendCity = address.city; md.SendProv = address.provincecode; md.SendPostCode = address.PostCode; md.RevAddr = omd.RevAddr; md.RevCity = omd.RevCity; if ((omd.RevCity == null) || (omd.RevCity == "")) { md.RevCity = omd.RevProvince; } if ((omd.RevProvinceCode != null) && (omd.RevProvinceCode != "")) { md.RevProv = omd.RevProvinceCode; } else if (((omd.RevProvince != null) && (omd.RevProvince != "")) && (omd.RevProvince.Length > 2)) { md.RevProv = omd.RevProvince.Substring(omd.RevProvince.Length - 2, 2); } else { md.RevProv = omd.RevProvince; } md.RevPostCode = omd.RevPostCode; md.RevCountry = omd.CountryCode; md.Width = Math.Ceiling(orderGoods[0].Width2.Value).ToString(); md.Height = Math.Ceiling(orderGoods[0].Height2.Value).ToString(); md.Lenght = Math.Ceiling(orderGoods[0].Length2.Value).ToString(); md.Weight = num2 * 0.0625M; md.TotalNum = totalNum.ToString(); string fee = rate.GetFeeNew(md); //获取到的ups运费更新到订单中 if (!fee.Contains("ErrorMessage:")) { var infos = fee.Split('&'); DataNew.UpdateOrderUPSPostFee(order.OrderId.Value, string.IsNullOrEmpty(infos[0]) ? 0 : Convert.ToDecimal(infos[0]), infos[1]); } else { DataNew.UpdateOrder(order.OrderId.Value, fee); } } catch(Exception ex) { DataNew.UpdateOrder(order.OrderId.Value, "ErrorMessage:" + ex.Message); ErrorFollow.TraceWrite("GetUPS", "", ex.Message); } } } } #region 停止 public void Stop() { Task.Stop(); Task1.Stop(); Task2.Stop(); IsRun = false; } #endregion #region 运行线程 void RunTask(TaskModel m) { ErrorFollow.TraceWrite("定时自动选择所有店铺自动导入订单开始", "" , " "); CurrentOrderReadNum = 0; //读取速卖通 ListAlibab = JC_ShopService.GetListShop(1); ImportAlibab(); ListAmazon = JC_ShopService.GetListShop(2); ImportAmazon(); ListEbay = JC_ShopService.GetListShop(3); ImportEbay(); ListWish = JC_ShopService.GetListShop(4); ImportWish(); ListLazada = DataNew.GetListLXShop(5); ImportLXLazada(); ListShopee = DataNew.GetListLXShop(16); ImportLXShopee(); //ListWalmart = JC_ShopService.GetListShop(6); //ImportWalmart(); ListWayFair = DataNew.GetListLXShop(18); ImportLXWayfairlist(); ListTikTok = JC_ShopService.GetListShop(22); ImportTikTok(); ListShein = JC_ShopService.GetListShop(21); ImportShein(); ListTemu = JC_ShopService.GetListShop(23); ImportTemu(); if (ListAlibab != null || ListAmazon != null || ListEbay != null || ListWish != null || ListLazada != null || ListWalmart != null || ListShopee != null || ListWayFair != null || ListTikTok!=null || ListShein!=null || ListTemu!=null) { Action hand = new Action(this.DelayAction); hand.BeginInvoke(null, null); } else { EndOrder(); } ErrorFollow.TraceWrite("定时自动选择所有店铺自动导入订单结束", "", " "); } #endregion #region 运行线程 void RunTask1(TaskModel m) { try { // BuyDate(); TBShopList = API_OrderInfoService.GetImpotShopList(); if (TBShopList == null || TBShopList.Count == 0) return; if (TBShopList != null) { //shopid = md.ShopId.Value; //PlatType = md.PlatType.Value; //SDate = md.DDSDate; //EDate = md.DDEDate; if (XCNum < 10) { XCNum++; Thread th1 = new Thread(new ThreadStart(ImportOrder)); th1.Start(); } } } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); } } #endregion #region 产品上下架 public void ProductOnOff() { if (ProductOnOffList == null || ProductOnOffList.Count == 0) return; AlibabaApi obj = new AlibabaApi(); obj.Num = 1; for (int i = ProductOnOffList.Count - 1; i >= 0; i--) { obj.ShopId = ProductOnOffList[i].ShopId.Value; obj.Appkey = ProductOnOffList[i].Appkey; obj.DeveKey = ProductOnOffList[i].DeveKey; obj.RefreshToken = ProductOnOffList[i].RefreshToken; obj.AccessToken = ProductOnOffList[i].AccessToken; obj.GroupName = ProductOnOffList[i].ShopName; obj.RefreshTokenSaveTime = ProductOnOffList[i].RefreshTokenSaveTime; obj.AccessTokenUpdateTime = ProductOnOffList[i].AccessTokenUpdateTime; try { string error = ""; if (ProductOnOffList[i].IsOn == 1) { obj.OnlineProduct(ProductOnOffList[i].productIds, out error); ErrorFollow.TraceWrite("ProductOnOff", ProductOnOffList[i].productIds, DateTime.Now.ToString() + "上架"); } else if (ProductOnOffList[i].IsOn == 0) { obj.OfflineProduct(ProductOnOffList[i].productIds, out error); ErrorFollow.TraceWrite("ProductOnOff", ProductOnOffList[i].productIds, DateTime.Now.ToString() + "下架"); } if (error != "") ErrorFollow.TraceWrite("ProductOnOff", ProductOnOffList[i].productIds, error); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ProductOnOffList = null; } #endregion #region 计算采购时间 public void BuyDate() { API_OrderInfoService.UpdateBuyDate(); } #endregion #region 导单 public void ImportOrder() { if (TBShopList == null || TBShopList.Count == 0) return; var list = new List(); string ids = ""; foreach (var md in TBShopList) { ids += md.ShopId.Value.ToString() + ","; list.Add(md); } ErrorFollow.TraceWrite("手动选择店铺自动导入订单开始", "选中的所有店铺:" + string.Join(",", list), " 店铺数量:" + (TBShopList == null ? 0 : TBShopList.Count)); API_OrderInfoService.SaveImpotState2(ids.Trim(',')); TBShopList = null; DateTime? StartDate = DateTime.Today.AddDays(-15); DateTime? StopDate = DateTime.Now; int PType = 0; foreach (var md in list) { ErrorFollow.TraceWrite("手动选择店铺自动导入订单单个店铺正常开始:", "单个店铺开始:" + md.ShopName, "正常开始同步"); if (md.DDSDate != null) StartDate = md.DDSDate; if (md.DDEDate != null) StopDate = md.DDEDate; PType = md.PlatType.Value; List ListModel = new List(); ListModel.Add(md.ShopId.Value); string Error = ""; try { //if (StartDate == null) // StartDate = DateTime.Today.AddDays(-15); switch (PType) { case 1: Error = ImportAlibab(null, null, ListModel); break; case 2: Error = ImportAmazon2(StartDate, StopDate, ListModel); break; case 3: Error = ImportEbayForTM(StartDate, StopDate, ListModel); break; case 4: Error = ImportWishV3(ListModel); break; case 5: Error = ImportLXLazada(null,null,ListModel); break; case 6: Error = ImportLXWalmart(null, null, ListModel); // API_OrderInfoServiceNew.ImportWalmart(null, null, ListModel); break; case 15: Error = ImportShopify(null, null, ListModel); break; case 16: Error = ImportLXShopee(null, null, ListModel); break; case 18: Error = ImportLXWayFair(null, null, ListModel); break; case 21: Error = ImportSheinForTM(StartDate, null, ListModel); break; case 22: Error = ImportTikTokForTM(null, null, ListModel); break; case 23: Error = ImportTemuForTM(StartDate, StopDate, ListModel); break; default: break; } List ListOrder = API_OrderInfoService.GetListForShop2(md.ShopId.Value); foreach (int OrderID in ListOrder) { BaseService.OrderAddForTM(1, OrderID, 0); } if (ListOrder.Count > 1) Error += ";其中新入订单" + ListOrder.Count + "条"; DataNew.SaveImpotMess(); //当亚马逊平台同步了新订单时,需要去重新获取一遍这些订单商品的大小类排名 //try //{ // if (PType == 2 && ListOrder != null && ListOrder.Count > 0) // { // GetOrderGoodsPM(ListOrder); // } //} //catch (Exception) //{ //} API_OrderInfoService.SaveImpotShop(md.ShopId.Value, Error); API_OrderInfoService.SaveImpotShopMess(md.ShopId.Value, Error); API_OrderInfoService.SaveImpotShopMess2(md.ShopId.Value, Error); ErrorFollow.TraceWrite("手动选择店铺自动导入订单单个店铺正常结束:", "单个店铺结束:" + string.Join(",", ListModel), "正常结束,同步完成"); } catch (Exception ex) { foreach (int ShopId in ListModel) { API_OrderInfoService.SaveImpotShop(ShopId, Error + ex.Message); API_OrderInfoService.SaveImpotShopMess(md.ShopId.Value, Error + ex.Message); ErrorFollow.TraceWrite("手动选择店铺自动导入订单单个店铺异常结束:", "选中的店铺:" + ShopId.ToString(), " 异常信息:" + ex); } XCNum--; } } XCNum--; ErrorFollow.TraceWrite("手动选择店铺自动导入订单结束", "选中的所有店铺:" + string.Join(",", list), " 店铺数量:" + (TBShopList == null ? 0 : TBShopList.Count)); } #endregion #region 根据api_order 获取订单商品的排名 public void GetOrderGoodsPM(List orderids) { var syncGoods = API_OrderInfoService.GetApiOrderSyncGoodList(string.Join(",", orderids)); if (syncGoods != null) { foreach (var sg in syncGoods) { string ServiceURL = ""; #region 设置市场所在地借口地址 switch (sg.Country) { case "美国": ServiceURL = "https://sellingpartnerapi-na.amazon.com"; break; case "加拿大": ServiceURL = "https://sellingpartnerapi-na.amazon.com"; break; case "欧洲": ServiceURL = "https://mws-eu.amazonservices.com"; break; case "日本": ServiceURL = "https://mws.amazonservices.jp"; break; case "中国": ServiceURL = "https://mws.amazonservices.com.cn"; break; } #endregion try { string url = "http://api.sumool.com/AmazonProxy/NewSendRequest"; string str = "EndPoint=" + ServiceURL; str += "&SumoolToKen=" + sg.RefreshToken; str += "&SellerId=" + sg.AppKey; string body = "{\"marketplaceIds\":\"" + sg.DeveKey + "\",\"identifiers\":\"" + sg.ASIN + "\",\"identifiersType\":\"ASIN\",\"includedData\":\"salesRanks\"}"; byte[] bytes = Encoding.Default.GetBytes(body); string bb = Convert.ToBase64String(bytes); str += "&BodyContent=" + bb; str += "&Command=/catalog/2022-04-01/items"; str += "&HttpMethod=Get"; var data = Encoding.UTF8.GetBytes(str); string ErrorMessage = ""; string XmlContent = CustomIO.HttpRequest2(url, "Post", "application/x-www-form-urlencoded; charset=UTF-8", null, HttpVersion.Version10, data, out ErrorMessage); if (ErrorMessage != "") { ErrorFollow.TraceWrite("GetProuctPM", "", ErrorMessage); continue; } AmazonResult re = JsonConvert.DeserializeObject(XmlContent); if (re.HasError == true || re.ResultObject == null || re.ResultObject == "") { ErrorMessage = re.Message; ErrorFollow.TraceWrite("GetProuctPM", "", ErrorMessage); continue; } int bigRank = 0; int smallRank = 0; SyncAmazonCatalogModel model = JsonConvert.DeserializeObject(re.ResultObject); if (model != null && model.items != null) { var item = model.items.Where(r => r.asin == sg.ASIN).FirstOrDefault(); if (item != null && item.salesRanks != null) { var samllRanks = item.salesRanks[0].classificationRanks; smallRank = samllRanks != null && samllRanks.Count > 0 ? samllRanks[0].rank.Value : 0; var bigRanks = item.salesRanks[0].displayGroupRanks; bigRank = bigRanks != null && bigRanks.Count > 0 ? bigRanks[0].rank.Value : 0; } } if(bigRank>0 && smallRank > 0) { var goodsid = API_OrderInfoService.GetGoodsIdByApiOrderGoodSKU(sg.GoodSKU); if (goodsid != 0) { DD_GoodsCodeData smd = new DD_GoodsCodeData(); smd.ShopId = sg.ShopId; smd.GoodsId = goodsid; smd.Int5 = 0; smd.InDate = DateTime.Now; smd.OrderDate = DateTime.Today; smd.Int2 = bigRank; smd.Int3 = smallRank; smd.asin = sg.ASIN; DataNew.Save_GoodsCodeData2(smd); } } } catch (Exception ex) { continue; } } } } #endregion #region Ebay数据导入 public static string ImportEbayForTM(DateTime? StartDate, DateTime? StopDate, List ListModel) { EbayApiNew obj = new EbayApiNew(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); obj.Appkey = ShopModel.Appkey; obj.DeveKey = ShopModel.DeveKey; obj.CertKey = ShopModel.RefreshToken; obj.ShopNo = ShopModel.ShopNo; List ListOrderModel = obj.GetOrdersForTM(StartDate, StopDate, ShopModel.AccessToken, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; error += "导入订单:" + ListOrderModel.Count.ToString() + "条"; DataNew.SaveOrderModel2(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 3, 0, ListOrderModel); } return error; } #endregion public static string ImportWishV3(List ListModel) { WishNew obj = new WishNew(); string error = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); obj.ShopId = ShopModel.ShopId.Value; obj.client_id = ShopModel.Appkey; obj.client_secret = ShopModel.DeveKey; obj.AccessToken = ShopModel.AccessToken; obj.RefreshToken = ShopModel.RefreshToken; obj.AccessTokenUpdateTime = ShopModel.AccessTokenUpdateTime; obj.RefreshTokenSaveTime = ShopModel.RefreshTokenSaveTime; obj.code = ShopModel.Code; List ListOrderModel = obj.GetOrdersNew(out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; error += "导入订单:" + ListOrderModel.Count.ToString() + "条"; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 4, 0, ListOrderModel); } return error; } public string ImportAlibab(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (model.Code != null && model.Code != "") { AlibabaApiQMNew obj = new AlibabaApiQMNew(); obj.ShopId = model.ShopId.Value; obj.sessionKey = model.Code; var olist = API_OrderInfoService.GetOrderCodeList(2000, model.ShopId.Value); //obj.GetLoanOrder(StartDate, StopDate, out error); try { List ListOrderModel = obj.GetWaitGoods("WAIT_SELLER_SEND_GOODS", 1, StartDate, StopDate, true, olist, out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "导入订单失败" + error); continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "未发货数量:0"); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 1, 0, ListOrderModel); } } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } } return error; } public string ImportShopee(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (model.AccessToken != null && model.AccessToken != "") { ShopeeApi obj = new ShopeeApi(); obj.shopid =Convert.ToInt32(model.AccessToken);// 343402994;// 315290216; obj.Partner_Id = Convert.ToInt32(model.Appkey);// 846936; obj.Partner_Key = model.DeveKey;// "660400cc224f0cfef1fcd409f9ccfe57c507c3be9bf173592fc8c9bc01e6b150"; try { List ListOrderModel = obj.GetOrders(out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入shopee", "店铺名称:" + model.ShopName, "导入订单失败" + error); error="导入订单失败" + error; continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入shopee订单", "店铺名称:" + model.ShopName, "未发货数量:0"); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入shopee订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 16, 0, ListOrderModel); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "导入订单失败" + ex.Message); continue; } } } return error; } public string ImportLXShopee(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_LXShop model = DataNew.GetLXShopModel(ShopId); if (model.store_id != null && model.store_id != "") { LXOpenApi obj = new LXOpenApi(); try { List ListOrderModel = obj.GetOrders(model.store_id,out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入shopee", "店铺名称:" + model.ShopName, "导入订单失败" + error); error = "导入订单失败" + error; continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入shopee订单", "店铺名称:" + model.ShopName, "未发货数量:0"); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入shopee订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 16, 0, ListOrderModel); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "导入订单失败" + ex.Message); continue; } } } return error; } public string ImportLXWayFair(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_LXShop model = DataNew.GetLXShopModel(ShopId); if (model.store_id != null && model.store_id != "") { LXOpenApi obj = new LXOpenApi(); try { List ListOrderModel = obj.GetOrders(model.store_id, out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入WayFair", "店铺名称:" + model.ShopName, "导入订单失败" + error); error = "导入订单失败" + error; continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入WayFair订单", "店铺名称:" + model.ShopName, "未发货数量:0"); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入shopee订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 18, 0, ListOrderModel); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "导入订单失败" + ex.Message); continue; } } } return error; } public string ImportLazada(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (model.AccessToken != null && model.AccessToken != "") { LazadaApiNew obj = new LazadaApiNew(); obj.ShopId = model.ShopId; obj.client_id = model.Appkey;// "103013"; obj.client_secret = model.DeveKey;// "flWVOQHy2X57H76F0OcELAMcsJ8cvthv"; obj.refresh_token = model.RefreshToken;// "50001200338arqobcSPHTAokoYvsCC1I2khTeVPDYFfrdqRuo71b47637dRB7oe"; obj.access_token = model.AccessToken;// "50000201f39eSzbr5NwXFjkuhYmtVnfZHwoEOSWQnQ0xeuBHm7h10b854d4ahnr"; obj.country = model.Country;// "菲律宾"; obj.AccessTokenUpdateTime = model.AccessTokenUpdateTime.Value; try { List ListOrderModel = obj.GetOrders(DateTime.Today.AddDays(-7), DateTime.Today, out error);//"309439539844901" //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入lazada", "店铺名称:" + model.ShopName, "导入订单失败" + error); error="导入订单失败" + error; continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入lazada订单", "店铺名称:" + model.ShopName, "未发货数量:0"); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入lazada订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 5, 0, ListOrderModel); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "导入订单失败" + error); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, ex.Message); continue; } } } return error; } public string ImportLXLazada(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_LXShop model = DataNew.GetLXShopModel(ShopId); if (model.store_id != null && model.store_id != "") { LXOpenApi obj = new LXOpenApi(); try { List ListOrderModel = obj.GetOrders(model.store_id, out error);//"309439539844901" //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入lazada", "店铺名称:" + model.ShopName, "导入订单失败" + error); error = "导入订单失败" + error; continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入lazada订单", "店铺名称:" + model.ShopName, "未发货数量:0"); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入lazada订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 5, 0, ListOrderModel); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "导入订单失败" + error); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, ex.Message); continue; } } } return error; } public string ImportLXWalmart(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_LXShop model = DataNew.GetLXShopModel(ShopId); if (model.store_id != null && model.store_id != "") { LXOpenApi obj = new LXOpenApi(); try { List ListOrderModel = obj.GetOrders(model.store_id, out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Walart", "店铺名称:" + model.ShopName, "导入订单失败" + error); error = "导入订单失败" + error; continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入Walart订单", "店铺名称:" + model.ShopName, "未发货数量:0"); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入Walart订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 6, 0, ListOrderModel); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "导入订单失败" + ex.Message); continue; } } } return error; } #region Lazada //public void ImportLazada() //{ // if (ListLazada == null || ListLazada.Count == 0) return; // LazadaApiNew obj = new LazadaApiNew(); // string error = ""; // for (int i = ListLazada.Count - 1; i >= 0; i--) // { // JC_Shop model = ListLazada[i]; // List ListOrderModel = null; // try // { // obj.ShopId = model.ShopId; // obj.client_id = model.Appkey;// "103013"; // obj.client_secret = model.DeveKey;// "flWVOQHy2X57H76F0OcELAMcsJ8cvthv"; // obj.refresh_token = model.RefreshToken;// "50001200338arqobcSPHTAokoYvsCC1I2khTeVPDYFfrdqRuo71b47637dRB7oe"; // obj.access_token = model.AccessToken;// "50000201f39eSzbr5NwXFjkuhYmtVnfZHwoEOSWQnQ0xeuBHm7h10b854d4ahnr"; // obj.country = model.Country;// "菲律宾"; // obj.AccessTokenUpdateTime = model.AccessTokenUpdateTime.Value; // ListOrderModel = obj.GetOrders(DateTime.Today.AddDays(-14), DateTime.Today, out error); // if (ListOrderModel == null) ListOrderModel = new List(); // if (string.IsNullOrEmpty(error) == false) // { // ErrorFollow.TraceWrite("自动导入Lazada订单", "店铺名称:" + model.ShopName, error); // //ListWish.RemoveAt(i); // continue; // } // else // { // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); // ErrorFollow.TraceWrite("自动导入Lazada订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); // } // API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 5, 0, ListOrderModel); // ListLazada.RemoveAt(i); // } // catch (Exception ex) // { // ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); // continue; // } // } // ListWish = null; //} public void ImportLXLazada() { if (ListLazada == null || ListLazada.Count == 0) return; LXOpenApi obj = new LXOpenApi(); string error = ""; for (int i = ListLazada.Count - 1; i >= 0; i--) { JC_LXShop model = ListLazada[i]; List ListOrderModel = null; try { if (model.store_id != null && model.store_id != "") { ListOrderModel = obj.GetOrders(model.store_id, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Lazada订单", "店铺名称:" + model.ShopName, error); //ListWish.RemoveAt(i); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入Lazada订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 5, 0, ListOrderModel); ListLazada.RemoveAt(i); } } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListLazada = null; } public void ImportLXShopee() { if (ListShopee == null || ListShopee.Count == 0) return; LXOpenApi obj = new LXOpenApi(); string error = ""; for (int i = ListShopee.Count - 1; i >= 0; i--) { JC_LXShop model = ListShopee[i]; List ListOrderModel = null; try { if (model.store_id != null && model.store_id != "") { ListOrderModel = obj.GetOrders(model.store_id, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Shopee订单", "店铺名称:" + model.ShopName, error); //ListWish.RemoveAt(i); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入Shopee订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 16, 0, ListOrderModel); ListShopee.RemoveAt(i); } } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListShopee = null; } public void ImportLXWayfairlist() { if (ListWayFair == null || ListWayFair.Count == 0) return; LXOpenApi obj = new LXOpenApi(); string error = ""; for (int i = ListWayFair.Count - 1; i >= 0; i--) { JC_LXShop model = ListWayFair[i]; List ListOrderModel = null; try { if (model.store_id != null && model.store_id != "") { ListOrderModel = obj.GetOrders(model.store_id, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入WayFair订单", "店铺名称:" + model.ShopName, error); //ListWish.RemoveAt(i); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入WayFair订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 18, 0, ListOrderModel); ListWayFair.RemoveAt(i); } } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListWayFair = null; } #endregion public string ImportShopify(DateTime? StartDate, DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (!string.IsNullOrEmpty(model.AccessToken) && !string.IsNullOrEmpty(model.Appkey) && !string.IsNullOrEmpty(model.DeveKey)) { Shopify obj = new Shopify(); obj.ShopName = model.ShopNo; obj.AccessToken = model.AccessToken; obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; //obj.GetLoanOrder(StartDate, StopDate, out error); try { List ListOrderModel = obj.GetOrdersNew(out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入shopify", "店铺名称:" + model.ShopName, "导入订单失败" + error); continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入shopify订单", "店铺名称:" + model.ShopName, "未发货数量:0"); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入shopify订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 15, 0, ListOrderModel); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } } return error; } #region 速卖通 public void ImportAlibab() { if (ListAlibab == null || ListAlibab.Count == 0) return; string error = ""; for (int i = ListAlibab.Count - 1; i >= 0; i--) { JC_Shop model = ListAlibab[i]; if (model.Code != null && model.Code != "") { AlibabaApiQMNew obj = new AlibabaApiQMNew(); obj.ShopId = model.ShopId.Value; obj.sessionKey = model.Code; var olist = API_OrderInfoService.GetOrderCodeList(2000, model.ShopId.Value); //obj.GetLoanOrder(StartDate, StopDate, out error); try { List ListOrderModel = obj.GetWaitGoods("WAIT_SELLER_SEND_GOODS", 1, DateTime.Today.AddDays(-3), null, true, olist, out error); //List ListOrderModel = obj.GetPayMoneyGoods(true, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "导入订单失败" + error); continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "未发货数量:0"); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 1, 0, ListOrderModel); } //List ListOrderModel1 = obj.GetWaitGoods("RISK_CONTROL", 2, null, null, true, null, out error); ////List ListOrderModel = obj.GetPayMoneyGoods(true, out error); //if (ListOrderModel1 == null) ListOrderModel1 = new List(); //if (string.IsNullOrEmpty(error) == false) //{ // ErrorFollow.TraceWrite("自动导入速卖通已付款未到账订单", "店铺名称:" + model.ShopName, error); // //ListAlibab.RemoveAt(i); // continue; //} //else //{ // einfo += "采集未到账订单:" + ListOrderModel1.Count; // ErrorFollow.TraceWrite("自动导入速卖通已付款未到账订单", "店铺名称:" + model.ShopName, "已付款未到账数量:" + ListOrderModel1.Count); //} //API_OrderInfoService.SaveOrderModel2(model.CompanyId, model.ShopId.Value, model.ShopName, 1, 0, ListOrderModel1); // List ListOrderModel2 = obj.GetWaitGoods("IN_CANCEL", 3, null, null, true, null, out error); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } else { AlibabaApi obj = new AlibabaApi(); obj.ShopId = model.ShopId.Value; obj.Appkey = model.Appkey; obj.DeveKey = model.DeveKey; obj.RefreshToken = model.RefreshToken; obj.AccessToken = model.AccessToken; obj.GroupName = model.ShopName; obj.RefreshTokenSaveTime = model.RefreshTokenSaveTime; obj.AccessTokenUpdateTime = model.AccessTokenUpdateTime; List ListOrderModel = null; try { string einfo = ""; var olist = API_OrderInfoService.GetOrderCodeList(2000, model.ShopId.Value); ListOrderModel = obj.GetWaitGoods(null, null, true, olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, error); //ListAlibab.RemoveAt(i); continue; } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入速卖通订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 1, 0, ListOrderModel); //List ListOrderModel1 = obj.GetPayMoneyGoods(true, out error); //if (ListOrderModel1 == null) ListOrderModel1 = new List(); //if (string.IsNullOrEmpty(error) == false) //{ // ErrorFollow.TraceWrite("自动导入速卖通已付款未到账订单", "店铺名称:" + model.ShopName, error); // //ListAlibab.RemoveAt(i); // continue; //} //else //{ // einfo += "采集未到账订单:" + ListOrderModel1.Count; // ErrorFollow.TraceWrite("自动导入速卖通已付款未到账订单", "店铺名称:" + model.ShopName, "已付款未到账数量:" + ListOrderModel1.Count); //} //API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, einfo); obj.GetMsgData2(DateTime.Now.AddDays(-2), DateTime.Now, out error); //读取留言 // API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 1, 0, ListOrderModel1); ListAlibab.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } } ListAlibab = null; } #endregion #region 亚马逊 public void ImportAmazon() { if (ListAmazon == null || ListAmazon.Count == 0) return; AmazonApi obj = new AmazonApi(); ApiNew.Amazonapinew obj2 = new ApiNew.Amazonapinew(); AmazonNewApi obj3 = new AmazonNewApi(); Amazon_SPApi obj4 = new Amazon_SPApi(); string error = ""; for (int i = ListAmazon.Count - 1; i >= 0; i--) { List ListOrderModel = null; List ListOrderModel2 = null; JC_Shop model = ListAmazon[i]; if (model.Code != null && model.Code == "new2") { obj4.SellerId = model.Appkey; //obj2.MWSAuthToken = "amzn.mws.94ba1459-809f-6157-a36f-967c9209c99b";// ShopModel.AccessToken; obj4.SumoolToKen = model.RefreshToken; obj4.country = model.Country; obj4.MarketplaceId = model.DeveKey; var olist = API_OrderInfoService.GetOrderCodeList(2000, model.ShopId.Value); try { ListOrderModel = obj4.GetOrders(DateTime.Today.AddDays(-15), "MFN", olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 0, ListOrderModel); if (model.IsFba == true) { ListOrderModel2 = obj4.GetOrders(DateTime.Today.AddDays(-15), "AFN", olist, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel2.Count); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 1, ListOrderModel2); } ListAmazon.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } else if (model.Code != null && model.Code == "new") { obj3.SellerId = model.Appkey; obj3.MWSAuthToken = model.AccessToken;// ShopModel.AccessToken; obj3.SumoolToKen = model.RefreshToken; obj3.MarketplaceId = model.DeveKey; obj3.country = model.Country; var olist = API_OrderInfoService.GetOrderCodeList(2000, model.ShopId.Value); try { ListOrderModel = obj3.GetOrders(DateTime.Today.AddDays(-7), null, "MFN", olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 0, ListOrderModel); if (model.IsFba == true) { ListOrderModel2 = obj3.GetOrders(DateTime.Today.AddDays(-4), null, "AFN",olist, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel2.Count); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 1, ListOrderModel2); } ListAmazon.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } else if (model.Code != null && model.Code != "") { var olist = API_OrderInfoService.GetOrderCodeList(2000, model.ShopId.Value); obj2.accessKeyId = model.RefreshToken; obj2.secretAccessKey = model.AccessToken; obj2.merchantId = model.Appkey; obj2.marketplaceId = model.DeveKey; obj2.country = model.Country; obj2.MWSAuthToken = model.Code; try { ListOrderModel = obj2.GetOrders(DateTime.Today.AddDays(-7), null, model.ShopName,olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 0, ListOrderModel); if (model.IsFba == true) { ListOrderModel2 = obj2.GetFBAOrders(DateTime.Today.AddDays(-4), null, model.ShopName, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel2.Count); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 1, ListOrderModel2); } ListAmazon.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } else { obj.accessKeyId = model.RefreshToken; obj.secretAccessKey = model.AccessToken; obj.merchantId = model.Appkey; obj.marketplaceId = model.DeveKey; obj.country = model.Country; try { ListOrderModel = obj.GetOrders(DateTime.Today.AddDays(-7), null, model.ShopName, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 0, ListOrderModel); if (model.IsFba == true) { ListOrderModel2 = obj.GetFBAOrders(DateTime.Today.AddDays(-4), null, model.ShopName, DateTime.Today, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, error); //ListAmazon.RemoveAt(i); continue; } else { ErrorFollow.TraceWrite("自动导入亚马逊海外仓订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel2.Count); // API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 2, 1, ListOrderModel2); } API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count + ";海外仓订单:" + ListOrderModel2.Count); ListAmazon.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } } ListAmazon = null; } #endregion #region 亚马逊数据导入 public string ImportAmazon2(DateTime? StartDate, DateTime? StopDate, List ListModel) { AmazonApi obj = new AmazonApi(); ApiNew.Amazonapinew obj2 = new ApiNew.Amazonapinew(); AmazonNewApi obj3 = new AmazonNewApi(); Amazon_SPApi obj4 = new Amazon_SPApi(); string error = ""; string mess = ""; foreach (int ShopId in ListModel) { JC_Shop ShopModel = JC_ShopService.GetModel(ShopId); if (ShopModel.Code != null && ShopModel.Code == "new2") { obj4.SellerId = ShopModel.Appkey; //obj2.MWSAuthToken = "amzn.mws.94ba1459-809f-6157-a36f-967c9209c99b";// ShopModel.AccessToken; obj4.SumoolToKen = ShopModel.RefreshToken; obj4.country = ShopModel.Country; obj4.MarketplaceId = ShopModel.DeveKey; ErrorFollow.TraceWrite("ImportAmazon2", "店铺名称:" + ShopModel.ShopName, ""); var olist = API_OrderInfoService.GetOrderCodeList(2000, ShopId); List ListOrderModel = obj4.GetOrders(StartDate, "MFN", olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 0, ListOrderModel); mess = "导入普通订单:" + ListOrderModel.Count.ToString() + "条;"; if (ShopModel.IsFba == true) { System.Threading.Thread.Sleep(10000);//暂停60秒 List ListOrderModel2 = obj4.GetOrders(StartDate, "AFN", olist, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) return mess + "导入海外仓订单订单失败:" + error; mess += "导入海外仓订单:" + ListOrderModel2.Count.ToString() + "条;"; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 1, ListOrderModel2); } } else if (ShopModel.Code != null && ShopModel.Code == "new") { ErrorFollow.TraceWrite("ImportAmazon2", "店铺名称:" + ShopModel.ShopName, ""); obj3.SellerId = ShopModel.Appkey; obj3.MWSAuthToken = ShopModel.AccessToken;// ShopModel.AccessToken; obj3.SumoolToKen = ShopModel.RefreshToken; obj3.MarketplaceId = ShopModel.DeveKey; obj3.country = ShopModel.Country; var olist = API_OrderInfoService.GetOrderCodeList(2000, ShopId); List ListOrderModel = obj3.GetOrders(StartDate, StopDate, "MFN", olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 0, ListOrderModel); mess = "导入普通订单:" + ListOrderModel.Count.ToString() + "条;"; if (ShopModel.IsFba == true) { System.Threading.Thread.Sleep(10000);//暂停60秒 List ListOrderModel2 = obj3.GetOrders(StartDate, StopDate, "AFN", olist, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) return mess + "导入海外仓订单订单失败:" + error; mess += "导入海外仓订单:" + ListOrderModel2.Count.ToString() + "条;"; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 1, ListOrderModel2); } } else if (ShopModel.Code != null && ShopModel.Code != "") { obj2.accessKeyId = ShopModel.RefreshToken; obj2.secretAccessKey = ShopModel.AccessToken; obj2.merchantId = ShopModel.Appkey; obj2.marketplaceId = ShopModel.DeveKey; obj2.country = ShopModel.Country; obj2.MWSAuthToken = ShopModel.Code; var olist = API_OrderInfoService.GetOrderCodeList(2000, ShopId); List ListOrderModel = obj2.GetOrders(StartDate, StopDate, ShopModel.ShopName, olist, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 0, ListOrderModel); mess = "导入普通订单:" + ListOrderModel.Count.ToString() + "条;"; if (ShopModel.IsFba == true) { System.Threading.Thread.Sleep(60000);//暂停60秒 List ListOrderModel2 = obj2.GetFBAOrders(StartDate, StopDate, ShopModel.ShopName, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) return mess + "导入海外仓订单订单失败:" + error; mess += "导入海外仓订单:" + ListOrderModel2.Count.ToString() + "条;"; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 1, ListOrderModel2); } } else { obj.accessKeyId = ShopModel.RefreshToken; obj.secretAccessKey = ShopModel.AccessToken; obj.merchantId = ShopModel.Appkey; obj.marketplaceId = ShopModel.DeveKey; obj.country = ShopModel.Country; List ListOrderModel = obj.GetOrders(StartDate, StopDate, ShopModel.ShopName, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) return "导入订单失败:" + error; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 0, ListOrderModel); mess = "导入普通订单:" + ListOrderModel.Count.ToString() + "条;"; if (ShopModel.IsFba == true) { System.Threading.Thread.Sleep(60000);//暂停60秒 List ListOrderModel2 = obj.GetFBAOrders(StartDate, StopDate, ShopModel.ShopName, DateTime.Today, out error); if (ListOrderModel2 == null) ListOrderModel2 = new List(); if (string.IsNullOrEmpty(error) == false) return mess + "导入海外仓订单订单失败:" + error; mess += "导入海外仓订单:" + ListOrderModel2.Count.ToString() + "条;"; API_OrderInfoService.SaveOrderModel(ShopModel.CompanyId, ShopId, ShopModel.ShopName, 2, 1, ListOrderModel2); } } } return mess; } #endregion #region Ebay public void ImportEbay() { if (ListEbay == null || ListEbay.Count == 0) return; EbayApiNew obj = new EbayApiNew(); string error = ""; for (int i = ListEbay.Count - 1; i >= 0; i--) { JC_Shop model = ListEbay[i]; obj.Appkey = model.Appkey; obj.DeveKey = model.DeveKey; obj.CertKey = model.RefreshToken; List ListOrderModel = null; try { ListOrderModel = obj.GetOrdersForTM(DateTime.Today.AddDays(-7), null, model.AccessToken, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Ebay订单", "店铺名称:" + model.ShopName, error); //ListEbay.RemoveAt(i); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入Ebay订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } DataNew.SaveOrderModel2(model.CompanyId, model.ShopId.Value, model.ShopName, 3, 0, ListOrderModel); ListEbay.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListEbay = null; } #endregion #region Wish public void ImportWish() { if (ListWish == null || ListWish.Count == 0) return; WishNew obj = new WishNew(); string error = ""; for (int i = ListWish.Count - 1; i >= 0; i--) { JC_Shop model = ListWish[i]; List ListOrderModel = null; try { ListOrderModel = obj.GetOrders(model.AccessToken, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Wish订单", "店铺名称:" + model.ShopName, error); //ListWish.RemoveAt(i); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入Wish订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 4, 0, ListOrderModel); ListWish.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListWish = null; } public void ImportWish2() { if (ListWish == null || ListWish.Count == 0) return; WishApi obj = new WishApi(); string error = ""; for (int i = ListWish.Count - 1; i >= 0; i--) { JC_Shop model = ListWish[i]; List ListOrderModel = null; try { obj.ShopId = model.ShopId.Value; obj.client_id = model.Appkey; obj.client_secret = model.DeveKey; obj.AccessToken = model.AccessToken; obj.RefreshToken = model.RefreshToken; obj.AccessTokenUpdateTime = model.AccessTokenUpdateTime; obj.RefreshTokenSaveTime = model.RefreshTokenSaveTime; obj.code = model.Code; ListOrderModel = obj.GetOrdersNew(out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Wish订单", "店铺名称:" + model.ShopName, error); //ListWish.RemoveAt(i); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入Wish订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 4, 0, ListOrderModel); ListWish.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListWish = null; } #endregion #region 沃尔玛 public void ImportWalmart() { if (ListWalmart == null || ListWalmart.Count == 0) return; WalmartApi obj = new WalmartApi(); string error = ""; for (int i = ListWalmart.Count - 1; i >= 0; i--) { List ListOrderModel = null; JC_Shop model = ListWalmart[i]; try { WalmartApi.ShopId = model.ShopId; WalmartApi.ACCESS_TOKEN = model.AccessToken; WalmartApi.ClientID = model.Appkey; WalmartApi.ClientSecret = model.DeveKey; WalmartApi.GetTokenTime = model.AccessTokenUpdateTime; ListOrderModel = obj.GetWalmartOrder(DateTime.Today.AddDays(-5), null, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入沃尔玛订单", "店铺名称:" + model.ShopName, error); continue; } ErrorFollow.TraceWrite("自动导入沃尔玛订单", "店铺名称:" + model.ShopName, "数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 6, 0, ListOrderModel); ListWalmart.RemoveAt(i); //确认 try { foreach (var md in ListOrderModel) { obj.GetWalmartOrderSure(md.OrderCode, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("沃尔玛订单确认", "单号:" + md.OrderCode, error); } } } catch (Exception ex) { ErrorFollow.TraceWrite("确认" + ex.TargetSite.Name, ex.StackTrace, ex.Message); } } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListWalmart = null; } #endregion #region TikTok public string ImportTikTokForTM(DateTime? StartDate,DateTime? StopDate, List ListModel) { string error = ""; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (!string.IsNullOrEmpty(model.AccessToken) && !string.IsNullOrEmpty(model.Appkey) && !string.IsNullOrEmpty(model.DeveKey)) { TikTok obj = new TikTok(); obj.ShopName = model.ShopName; obj.AccessToken = model.AccessToken; obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; obj.Shop_Cipher = model.Code; obj.RefershToken = model.RefreshToken; try { List ListOrderModel = obj.GetOrders(out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入TikTok", "店铺名称:" + model.ShopName, "导入订单失败" + error); continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入TikTok订单", "店铺名称:" + model.ShopName, "未发货数量:0"); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入TikTok订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 22, 0, ListOrderModel); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); //continue; } //店铺AccessToken的有效期是七天,所以每次店铺获取完数据之后都去刷新一遍AccessToken string acc_token = ""; string refre_token = ""; var isRefresh = obj.RefershAccessToken(out acc_token, out refre_token); if (isRefresh && !string.IsNullOrEmpty(acc_token) && !string.IsNullOrEmpty(refre_token)) { model.AccessToken = acc_token; model.RefreshToken = refre_token; DataNew.UpdateShopToken(model); } else { error += " 刷新AccessToken失败"; } } } return error; } public void ImportTikTok() { if (ListTikTok == null || ListTikTok.Count == 0) return; TikTok obj = new TikTok(); string error = ""; for (int i = ListTikTok.Count - 1; i >= 0; i--) { JC_Shop model = ListTikTok[i]; obj.ShopName = model.ShopName; obj.AccessToken = model.AccessToken; obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; obj.Shop_Cipher = model.Code; obj.RefershToken = model.RefreshToken; List ListOrderModel = null; try { ListOrderModel = obj.GetOrders(out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入TikTok订单", "店铺名称:" + model.ShopName, error); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入TikTok订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 22, 0, ListOrderModel); ListTikTok.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } //店铺AccessToken的有效期是七天,所以每次店铺获取完数据之后都去刷新一遍AccessToken string acc_token = ""; string refre_token = ""; var isRefresh = obj.RefershAccessToken(out acc_token, out refre_token); if (isRefresh && !string.IsNullOrEmpty(acc_token) && !string.IsNullOrEmpty(refre_token)) { model.AccessToken = acc_token; model.RefreshToken = refre_token; DataNew.UpdateShopToken(model); } else { error += " 刷新AccessToken失败"; } } ListTikTok = null; } #endregion #region Shein public string ImportSheinForTM(DateTime? StartDate, DateTime? ShopDate, List ListModel) { string error = ""; //var ListModel = new List() { 84 }; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (!string.IsNullOrEmpty(model.Appkey) && !string.IsNullOrEmpty(model.DeveKey)) { SheinNew obj = new SheinNew(); obj.ShopName = model.ShopName; obj.ShopId= ShopId; obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; obj.StartTime = StartDate.HasValue ? StartDate.Value : DateTime.Now; //订单同步的时间区间不能大于2天48小时 try { List ListOrderModel = obj.GetOrders(out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Shein", "店铺名称:" + model.ShopName, "导入订单失败" + error); continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入Shein订单", "店铺名称:" + model.ShopName, "未发货数量:0"); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入Shein订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 21, 0, ListOrderModel); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); //continue; } } } return error; } public void ImportShein() { if (ListShein == null || ListShein.Count == 0) return; SheinNew obj = new SheinNew(); string error = ""; for (int i = ListShein.Count - 1; i >= 0; i--) { JC_Shop model = ListShein[i]; obj.ShopName = model.ShopName; obj.ShopId = model.ShopId.Value; obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; obj.StartTime = DateTime.Now.AddDays(-2); List ListOrderModel = null; try { ListOrderModel = obj.GetOrders(out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入Shein订单", "店铺名称:" + model.ShopName, error); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入Shein订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 21, 0, ListOrderModel); ListShein.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListShein = null; } #endregion #region TEMU public string ImportTemuForTM(DateTime? StartDate,DateTime? EndDate,List ListModel) { string error = ""; //var ListModel = new List() { 84 }; foreach (int ShopId in ListModel) { JC_Shop model = JC_ShopService.GetModel(ShopId); if (!string.IsNullOrEmpty(model.Appkey) && !string.IsNullOrEmpty(model.DeveKey)) { Temu obj = new Temu(); obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; obj.AccessToken = model.RefreshToken; obj.shopid = ShopId; var sdate = StartDate.HasValue ? StartDate.Value.AddDays(-1) : DateTime.Now.AddDays(-4); var edate = EndDate.HasValue ? EndDate.Value.AddDays(1) : DateTime.Now.AddDays(2); ErrorFollow.TraceWrite("自动导入TEMU订单", "店铺名称:" + model.ShopName, "开始时间:" + sdate.ToString("yyyy-MM-dd hh:mm:ss") + "; 结束时间:" + edate.ToString("yyyy-MM-dd hh:mm:ss")); try { List ListOrderModel = obj.GetOrders(sdate, edate, out error); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入TEMU", "店铺名称:" + model.ShopName, "导入订单失败" + error); continue; } string einfo = ""; if (ListOrderModel == null) { einfo = "采集到账订单:0"; ErrorFollow.TraceWrite("自动导入TEMU订单", "店铺名称:" + model.ShopName, "未发货数量:0"); } else { einfo = "采集到账订单:" + ListOrderModel.Count; ErrorFollow.TraceWrite("自动导入TEMU订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 23, 0, ListOrderModel); } error = einfo; } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); //continue; } } } return error; } public void ImportTemu() { try { if (ListTemu == null || ListTemu.Count == 0) return; Temu obj = new Temu(); string error = ""; for (int i = ListTemu.Count - 1; i >= 0; i--) { JC_Shop model = ListTemu[i]; obj.AppKey = model.Appkey; obj.AppSecret = model.DeveKey; obj.AccessToken = model.RefreshToken; obj.shopid = model.ShopId.Value; var sdate = DateTime.Now.AddDays(-3); var edate = DateTime.Now.AddDays(1); List ListOrderModel = null; try { ListOrderModel = obj.GetOrders(sdate, edate, out error); if (ListOrderModel == null) ListOrderModel = new List(); if (string.IsNullOrEmpty(error) == false) { ErrorFollow.TraceWrite("自动导入TEMU订单", "店铺名称:" + model.ShopName, error); continue; } else { API_OrderInfoService.SaveImpotShopInfo(model.ShopId.Value, "采集订单:" + ListOrderModel.Count); ErrorFollow.TraceWrite("自动导入TEMU订单", "店铺名称:" + model.ShopName, "未发货数量:" + ListOrderModel.Count); } API_OrderInfoService.SaveOrderModel(model.CompanyId, model.ShopId.Value, model.ShopName, 23, 0, ListOrderModel); ListTemu.RemoveAt(i); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); continue; } } ListTemu = null; } catch(Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); ListTemu = null; } } #endregion #region 延迟执行 void DelayAction() { AutoReset.WaitOne(OrderDelayTime * 60 * 1000, false); if (IsRun == false) return; for (int i = CurrentOrderReadNum; i < OrderReadNum; i++) { ImportAlibab(); ImportAmazon(); ImportEbay(); ImportWish(); ImportLXLazada(); ImportLXShopee(); ImportLXWayfairlist(); ImportTikTok(); ImportShein(); ImportTemu(); if (ListAlibab != null || ListAmazon != null || ListEbay != null || ListWish != null || ListLazada != null || ListWalmart != null || ListShopee != null || ListWayFair != null || ListTikTok!=null || ListShein!=null || ListTemu!=null) { AutoReset.WaitOne(OrderDelayTime * 60 * 1000, false); if (IsRun == false) return; } else { break; } } EndOrder(); } #endregion #region 处理已导入的订单 public void EndOrder() { try { List ListCompany = BaseService.GetListCompany(0); foreach (BaseModel item in ListCompany) { int CompanyID = item.ID; List ListOrder = API_OrderInfoService.GetList(CompanyID); foreach (int OrderID in ListOrder) { BaseService.OrderAddForTM(CompanyID, OrderID, 0); } } //DD_OrderData obj = new DD_OrderData(); //obj.MonthOrderGoodsNum(); //TradeManage.UserService obj2 = new TradeManage.UserService(); //obj2.GetTrackList(); //obj.GetOrderTrackCode(); } catch (Exception ex) { ErrorFollow.TraceWrite(ex.TargetSite.Name, ex.StackTrace, ex.Message); } } #endregion } }