|
|
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<JC_Shop> 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<JC_Shop> ListAlibab = null;
|
|
|
List<JC_Shop> ListAmazon = null;
|
|
|
List<JC_Shop> ListEbay = null;
|
|
|
List<JC_Shop> ListWish = null;
|
|
|
List<JC_LXShop> ListLazada = null;
|
|
|
List<JC_LXShop> ListShopee = null;
|
|
|
List<JC_Shop> ListWalmart = null;
|
|
|
|
|
|
List<JC_LXShop> ListWayFair = null;
|
|
|
|
|
|
List<JC_Shop> ListTikTok = null;
|
|
|
List<JC_Shop> ListShein = null;
|
|
|
|
|
|
List<JC_Shop> ListTemu = null;
|
|
|
public string FedexReadTime { get; set; }
|
|
|
// Thread threadListen = null;
|
|
|
List<JC_ProductOnOff> 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<DT_OrderModel> 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<DT_OrderMateGoods> fedexOrderGoodsList = new List<DT_OrderMateGoods>();
|
|
|
if (str != "")
|
|
|
{
|
|
|
fedexOrderGoodsList = API_OrderInfoService.GetFedexOrderGoodsList(str.TrimEnd(','));
|
|
|
}
|
|
|
if (fedexOrderList != null)
|
|
|
{
|
|
|
foreach (var fmd in fedexOrderList)
|
|
|
{
|
|
|
List<DT_OrderMateGoods> 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<DT_OrderMateGoods> 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);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取TEMU平台店铺的订单,去获取发货渠道价格
|
|
|
/// </summary>
|
|
|
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()));
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取temu 平台订单的运费
|
|
|
/// </summary>
|
|
|
/// <param name="orderid"></param>
|
|
|
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<TemuShipChannel>();
|
|
|
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<TemuShipChannelReturn>(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<TemuShipChannelReturn>(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<JC_Shop>();
|
|
|
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<int> ListModel = new List<int>();
|
|
|
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<int> 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<int> 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<AmazonResult>(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<SyncAmazonCatalogModel>(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<int> 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<OrderModel> ListOrderModel = obj.GetOrdersForTM(StartDate, StopDate, ShopModel.AccessToken, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<int> 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<OrderModel> ListOrderModel = obj.GetOrdersNew(out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<int> 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<OrderModel> ListOrderModel = obj.GetWaitGoods("WAIT_SELLER_SEND_GOODS", 1, StartDate, StopDate, true, olist, out error);
|
|
|
//List<OrderModel> 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<int> 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<OrderModel> ListOrderModel = obj.GetOrders(out error);
|
|
|
//List<OrderModel> 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<int> 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<OrderModel> ListOrderModel = obj.GetOrders(model.store_id,out error);
|
|
|
//List<OrderModel> 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<int> 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<OrderModel> ListOrderModel = obj.GetOrders(model.store_id, out error);
|
|
|
//List<OrderModel> 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<int> 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<OrderModel> ListOrderModel = obj.GetOrders(DateTime.Today.AddDays(-7), DateTime.Today, out error);//"309439539844901"
|
|
|
//List<OrderModel> 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<int> 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<OrderModel> ListOrderModel = obj.GetOrders(model.store_id, out error);//"309439539844901"
|
|
|
//List<OrderModel> 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<int> 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<OrderModel> ListOrderModel = obj.GetOrders(model.store_id, out error);
|
|
|
//List<OrderModel> 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<OrderModel> 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<OrderModel>();
|
|
|
// 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<OrderModel> 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<OrderModel>();
|
|
|
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<OrderModel> 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<OrderModel>();
|
|
|
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<OrderModel> 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<OrderModel>();
|
|
|
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<int> 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<OrderModel> ListOrderModel = obj.GetOrdersNew(out error);
|
|
|
//List<OrderModel> 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<OrderModel> ListOrderModel = obj.GetWaitGoods("WAIT_SELLER_SEND_GOODS", 1, DateTime.Today.AddDays(-3), null, true, olist, out error);
|
|
|
//List<OrderModel> 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<OrderModel> ListOrderModel1 = obj.GetWaitGoods("RISK_CONTROL", 2, null, null, true, null, out error);
|
|
|
////List<OrderModel> ListOrderModel = obj.GetPayMoneyGoods(true, out error);
|
|
|
//if (ListOrderModel1 == null) ListOrderModel1 = new List<OrderModel>();
|
|
|
//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<OrderModel> 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<OrderModel> 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<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel1 = obj.GetPayMoneyGoods(true, out error);
|
|
|
|
|
|
//if (ListOrderModel1 == null) ListOrderModel1 = new List<OrderModel>();
|
|
|
//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<OrderModel> ListOrderModel = null;
|
|
|
List<OrderModel> 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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<OrderModel>();
|
|
|
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<int> 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<OrderModel> ListOrderModel = obj4.GetOrders(StartDate, "MFN", olist, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel2 = obj4.GetOrders(StartDate, "AFN", olist, out error);
|
|
|
if (ListOrderModel2 == null) ListOrderModel2 = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel = obj3.GetOrders(StartDate, StopDate, "MFN", olist, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel2 = obj3.GetOrders(StartDate, StopDate, "AFN", olist, out error);
|
|
|
if (ListOrderModel2 == null) ListOrderModel2 = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel = obj2.GetOrders(StartDate, StopDate, ShopModel.ShopName, olist, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel2 = obj2.GetFBAOrders(StartDate, StopDate, ShopModel.ShopName, out error);
|
|
|
if (ListOrderModel2 == null) ListOrderModel2 = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel = obj.GetOrders(StartDate, StopDate, ShopModel.ShopName, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel2 = obj.GetFBAOrders(StartDate, StopDate, ShopModel.ShopName, DateTime.Today, out error);
|
|
|
if (ListOrderModel2 == null) ListOrderModel2 = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel = null;
|
|
|
try
|
|
|
{
|
|
|
ListOrderModel = obj.GetOrdersForTM(DateTime.Today.AddDays(-7), null, model.AccessToken, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<OrderModel> ListOrderModel = null;
|
|
|
try
|
|
|
{
|
|
|
ListOrderModel = obj.GetOrders(model.AccessToken, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<OrderModel> 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<OrderModel>();
|
|
|
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<OrderModel> 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<OrderModel>();
|
|
|
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<int> 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<OrderModel> 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<OrderModel> ListOrderModel = null;
|
|
|
try
|
|
|
{
|
|
|
ListOrderModel = obj.GetOrders(out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<int> ListModel)
|
|
|
{
|
|
|
string error = "";
|
|
|
//var ListModel = new List<int>() { 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<OrderModel> 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<OrderModel> ListOrderModel = null;
|
|
|
try
|
|
|
{
|
|
|
ListOrderModel = obj.GetOrders(out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<int> ListModel)
|
|
|
{
|
|
|
string error = "";
|
|
|
//var ListModel = new List<int>() { 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<OrderModel> 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<OrderModel> ListOrderModel = null;
|
|
|
try
|
|
|
{
|
|
|
ListOrderModel = obj.GetOrders(sdate, edate, out error);
|
|
|
if (ListOrderModel == null) ListOrderModel = new List<OrderModel>();
|
|
|
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<BaseModel> ListCompany = BaseService.GetListCompany(0);
|
|
|
foreach (BaseModel item in ListCompany)
|
|
|
{
|
|
|
int CompanyID = item.ID;
|
|
|
List<int> 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|