You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1134 lines
56 KiB
C#

2 months ago
using NetLibrary.Common.Configuration;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading;
using NetLibrary.Log;
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
using TradeManageNew;
using TradeData;
using TradeModel;
using System.IO.Compression;
namespace TradeServer
{
partial class Service1 : ServiceBase
{
OrderInfoService ser = new OrderInfoService();
Thread threadListen = null;
Thread thread1 = null;
public DateTime? FedexSDate = null;
public DateTime? FedexEDate = null;
Thread threadListen2 = null;
Thread threadListen3 = null;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
ReadSetting();
ser.StartRunTime = StaticModel.OrderReadTime;
ser.FedexReadTime = StaticModel.FedexReadTime;
ser.OrderDelayTime = StaticModel.OrderDelayTime;
ser.OrderReadNum = StaticModel.OrderReadNum;
ser.Start();
//threadListen = new Thread(new ThreadStart(GetStar));
// threadListen.Start();
// thread1 = new Thread(GetTrackCode);
// thread1.Start(); // 只要使用Start方法线程才会运行
//if (FedexSDate != null && FedexEDate != null)
//{
threadListen2 = new Thread(new ThreadStart(GetPM));//排名
threadListen2.Start();
// threadListen3 = new Thread(new ThreadStart(GetOrderReturn2));//退货
// threadListen3.Start();
//}
}
public void GetOrderReturn()
{
while (true)
{
try
{
var slist = DataNew.GetListGoodsShopTH(2);
if (slist != null)
{
foreach (var smd in slist)
{
AmazonNewApi obj2 = new AmazonNewApi();
obj2.SellerId = smd.Appkey;// "A1TCQIR9I01XTZ";
obj2.MWSAuthToken = smd.AccessToken;// "amzn.mws.62ba145e-2196-8467-6004-3c51f61ba7e0";// ShopModel.AccessToken;
obj2.SumoolToKen = "ccb0a9d7-3d71-4e2f-81da-dd844e86de70";//obj2.marketplaceId = "ATVPDKIKX0DER";// ShopModel.DeveKey;
obj2.country = "美国";
obj2.MarketplaceId = "ATVPDKIKX0DER";
DateTime sdt = DateTime.Today.AddDays(-60);
DateTime edt = DateTime.Today;
string requestid = obj2.GetGoodsReturnRequest(sdt, edt);
if (requestid != null && requestid != "")
{
Thread.Sleep(300 * 1000);
var rlist = obj2.GetGoodsReturn(sdt, edt, requestid);
if (rlist != null)
{
Random rd = new Random();
foreach (var rmd in rlist)
{
var olist = obj2.GetGoodsReturnOrders(rmd.ReportId);
if (olist != null)
{
foreach (var oomd in olist)
{
if (oomd.label_details != null)
{
foreach (var lmd in oomd.label_details)
{
if (oomd.return_details != null)
{
foreach (var dmd in oomd.return_details)
{
var omd = new DT_OrderReturn();
omd.id = 0;
omd.orderid = 0;
omd.detailid = 0;
omd.ordercode = oomd.order_id;
if (oomd.order_date != null && oomd.order_date != "")
omd.order_date = Convert.ToDateTime(oomd.order_date);
omd.return_request_date = DateTime.Now;
omd.return_request_status = oomd.return_request_status;
omd.in_policy = dmd.in_policy;
omd.merchant_sku = dmd.merchant_sku;
omd.asin = dmd.asin;
omd.return_quantity = dmd.return_quantity;
omd.return_reason_code = dmd.return_reason_code;
omd.refund_amount = dmd.refund_amount;
omd.tracking_id = lmd.tracking_id;
omd.return_carrier = lmd.return_carrier;
omd.label_cost = lmd.label_cost;
omd.barcode = DateTime.Now.ToString("yyyyMMddHHmmss") + rd.Next(0, 10000).ToString();
DataNew.Save_OrderReturn(omd);
}
}
}
}
}
}
}
}
}
}
}
}
catch (Exception ex)
{
// DataNew.Save_DD_GoodsSync(md.Id.Value);
ErrorFollow.TraceWrite("GetOrderReturn", "", ex.Message);
Thread.Sleep(3600 * 8 * 1000);
}
Thread.Sleep(3600 * 24 * 1000);
}
}
public void GetOrderReturn2()
{
while (true)
{
try
{
var slist = DataNew.GetListGoodsShopTH(2);
if (slist != null)
{
foreach (var smd in slist)
{
Amazon_SPApi obj2 = new Amazon_SPApi();
obj2.SellerId = smd.Appkey;// "A1TCQIR9I01XTZ";
obj2.MWSAuthToken = smd.AccessToken;// "amzn.mws.62ba145e-2196-8467-6004-3c51f61ba7e0";// ShopModel.AccessToken;
obj2.SumoolToKen = smd.RefreshToken;// "ccb0a9d7-3d71-4e2f-81da-dd844e86de70";//obj2.marketplaceId = "ATVPDKIKX0DER";// ShopModel.DeveKey;
obj2.country = smd.Country;// "美国";
obj2.MarketplaceId = smd.DeveKey;// "ATVPDKIKX0DER";
DateTime sdt = DateTime.Today.AddDays(-60);
DateTime edt = DateTime.Today;
string ReportId = obj2.GetGoodsReturnRequest(sdt, edt);
if (ReportId != null && ReportId != "")
{
Thread.Sleep(300 * 1000);
string docid = obj2.GetGoodsReturn(ReportId);
Thread.Sleep(300 * 1000);
string url = obj2.Getdocuments(docid);
if (url != "")
{
Random rd = new Random();
var olist = obj2.GetGoodsReturnOrders(url);
if (olist != null)
{
foreach (var oomd in olist)
{
if (oomd.label_details != null)
{
foreach (var lmd in oomd.label_details)
{
if (oomd.return_details != null)
{
foreach (var dmd in oomd.return_details)
{
var omd = new DT_OrderReturn();
omd.id = 0;
omd.orderid = 0;
omd.detailid = 0;
omd.ordercode = oomd.order_id;
if (oomd.order_date != null && oomd.order_date != "")
omd.order_date = Convert.ToDateTime(oomd.order_date);
omd.return_request_date = DateTime.Now;
omd.return_request_status = oomd.return_request_status;
omd.in_policy = dmd.in_policy;
omd.merchant_sku = dmd.merchant_sku;
omd.asin = dmd.asin;
omd.return_quantity = dmd.return_quantity;
omd.return_reason_code = dmd.return_reason_code;
omd.refund_amount = dmd.refund_amount;
omd.tracking_id = lmd.tracking_id;
omd.return_carrier = lmd.return_carrier;
omd.label_cost = lmd.label_cost;
omd.barcode = DateTime.Now.ToString("yyyyMMddHHmmss") + rd.Next(0, 10000).ToString();
DataNew.Save_OrderReturn(omd);
}
}
}
}
}
}
}
}
}
}
}
catch (Exception ex)
{
// DataNew.Save_DD_GoodsSync(md.Id.Value);
ErrorFollow.TraceWrite("GetOrderReturn", "", ex.Message);
Thread.Sleep(3600 * 8 * 1000);
}
Thread.Sleep(3600 * 24 * 1000);
}
}
public void GetPM()
{
while (true)
{
try
{
var ulist = DataNew.GetGoodsLink2(5);
// ErrorFollow.TraceWrite("GetPM1", "", ulist.Count.ToString());
if (ulist != null)
{
var glist = new List<AMGoodsPM>();
int shopid = 0;
foreach (var md in ulist)
{
if (shopid > 0 && shopid != md.ShopId.Value)
{
continue;
}
AMGoodsPM gmd = new AMGoodsPM();
gmd.id = md.Id;
gmd.ASIN = md.Url;
gmd.ShopId = md.ShopId;
gmd.GoodsId = md.GoodsId;
gmd.PM1 = 0;
gmd.PM2 = 0;
glist.Add(gmd);
shopid = md.ShopId.Value;
}
// ErrorFollow.TraceWrite("GetPM1", "", glist.Count.ToString());
var mlist = new List<AMGoodsPM>();
if (glist != null && glist.Count > 0)
{
if (ulist[0].Code == "new2")
{
Amazon_SPApi obj2 = new Amazon_SPApi();
obj2.SellerId = ulist[0].Appkey;
obj2.MWSAuthToken = ulist[0].AccessToken;// ShopModel.AccessToken;
obj2.SumoolToKen = ulist[0].RefreshToken;//obj2.marketplaceId = "ATVPDKIKX0DER";// ShopModel.DeveKey;
obj2.country = ulist[0].Country;
obj2.MarketplaceId = ulist[0].DeveKey;
string ErrorMessage = "";
mlist = obj2.GetProductPM_New(glist,out ErrorMessage);
}
else
{
AmazonNewApi obj2 = new AmazonNewApi();
obj2.SellerId = ulist[0].Appkey;
obj2.MWSAuthToken = ulist[0].AccessToken;// ShopModel.AccessToken;
obj2.SumoolToKen = ulist[0].RefreshToken;//obj2.marketplaceId = "ATVPDKIKX0DER";// ShopModel.DeveKey;
obj2.country = ulist[0].Country;
obj2.MarketplaceId = ulist[0].DeveKey;
mlist = obj2.GetGoodsPM(glist);
}
// ErrorFollow.TraceWrite("GetPM2", "", mlist.Count.ToString());
foreach (var md in glist)
{
DataNew.Save_DD_GoodsSync2(md.id.Value);
}
}
if (mlist != null)
{
foreach (var md in mlist)
{
if (md.PM1 > 0 && md.PM2 > 0)
{
DD_GoodsCodeData smd = new DD_GoodsCodeData();
smd.ShopId = md.ShopId;
smd.GoodsId = md.GoodsId;
smd.Int5 = 0;
smd.InDate = DateTime.Now;
smd.OrderDate = DateTime.Today;
smd.Int2 = md.PM1;
smd.Int3 = md.PM2;
smd.asin = md.ASIN;
DataNew.Save_GoodsCodeData2(smd);
// ErrorFollow.TraceWrite("GetPM3", md.PM1.ToString() + ";" + md.PM2.ToString(), md.GoodsId.ToString() + "," + md.ShopId.ToString());
//var umd = ulist.Find(n => n.ShopId == md.ShopId && n.GoodsId != md.GoodsId);
//if (umd != null)
// DataNew.Save_DD_GoodsSync2(umd.Id.Value);
}
//else
//{
// var umd = ulist.Find(n => n.ShopId == md.ShopId && n.GoodsId != md.GoodsId);
// if (umd != null)
// DataNew.Save_DD_GoodsSync2(umd.Id.Value);
//}
}
}
}
else
{
DataNew.AddDD_GoodsPM();
Thread.Sleep(30*60*1000);
}
}
catch (Exception ex)
{
// DataNew.Save_DD_GoodsSync(md.Id.Value);
ErrorFollow.TraceWrite("GetPM", "", ex.Message);
Thread.Sleep(5 * 60 * 1000);
}
Thread.Sleep(2000);
}
}
public void GetPM2()
{
while (true)
{
var ulist = DataNew.GetGoodsLink(5);
// ErrorFollow.TraceWrite("GetPM1", "", ulist.Count.ToString());
if (ulist != null)
{
foreach (var md in ulist)
{
try
{
if (md.Url.Contains("amazon") == false)
{
DataNew.Save_DD_GoodsSync(md.Id.Value);
continue;
}
string url = md.Url.Trim();// "https://www.amazon.com/gp/product/B07BHGSL5M";
if (!(url.Contains("http://") || url.Contains("https://")))
{
url = "http://" + url;
}
// ErrorFollow.TraceWrite("GetPM2", "", url);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.UserAgent = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
req.Accept = "*/*";
req.Headers.Add("Accept-Language", "zh-cn,en-us;q=0.5");
req.ContentType = "text/xml";
string sHTML = "";
using (HttpWebResponse response = (HttpWebResponse)req.GetResponse())
{
if (response.ContentEncoding.ToLower().Contains("gzip"))
{
using (GZipStream stream = new GZipStream(response.GetResponseStream(), CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
sHTML = reader.ReadToEnd();
}
}
}
else if (response.ContentEncoding.ToLower().Contains("deflate"))
{
using (DeflateStream stream = new DeflateStream(response.GetResponseStream(), CompressionMode.Decompress))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
sHTML = reader.ReadToEnd();
}
}
}
else
{
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
sHTML = reader.ReadToEnd();
}
}
}
}
//id="SalesRank" #54,746 <span class="zg_hrsr_rank">#30</span>
// ErrorFollow.TraceWrite("GetPM3", "", sHTML);
string pm1 = "";
string pm2 = "";
int s = -1;
s = sHTML.IndexOf("Best Sellers Rank");
int es = 0;
if (s <= 0)
s = sHTML.IndexOf("id=\"SalesRank\"");
if (s <= 0)
{
DataNew.Save_DD_GoodsSync(md.Id.Value);
continue;
}
// ErrorFollow.TraceWrite("GetPM", "", s.ToString());
if (s > 0)
{
int ss = sHTML.IndexOf("#", s);
int ee = sHTML.IndexOf(" ", ss);
if (ss > s && ee > ss + 1)
{
pm1 = sHTML.Substring(ss + 1, ee - ss);
}
es = ee;
}
int s2 = sHTML.IndexOf("zg_hrsr_rank", s);
// ErrorFollow.TraceWrite("GetPM", "", s2.ToString());
if (s2 <= 0 && es > 0)
{
s2 = es + 5;
}
if (s2 > 0)
{
int ss2 = sHTML.IndexOf("#", s2);
int ee2 = sHTML.IndexOf("in", ss2);
if (ss2 > s2 && ee2 > ss2 + 1)
{
pm2 = sHTML.Substring(ss2 + 1, ee2 - ss2 - 1).Trim();
}
}
string a = pm1.Trim().Replace(",", "").Replace("", "");
string a1 = pm2.Trim().Replace(",", "").Replace("", "");
int dpm = 0;
int xpm = 0;
string reg = "^[0-9]*$";
if (Regex.IsMatch(a, reg) == true)
dpm = Convert.ToInt32(a);
if (Regex.IsMatch(a1, reg) == true)
xpm = Convert.ToInt32(a1);
if (dpm > 0 || xpm > 0)
{
DD_GoodsCodeData smd = new DD_GoodsCodeData();
smd.ShopId = md.ShopId;
smd.GoodsId = md.GoodsId;
smd.Int5 = 0;
smd.InDate = DateTime.Now;
smd.OrderDate = DateTime.Today;
smd.Int2 = dpm;
smd.Int3 = xpm;
DataNew.Save_GoodsCodeData2(smd);
DataNew.Save_DD_GoodsSync(md.Id.Value);
}
Random rd2 = new Random();
int st2 = rd2.Next(1, 10);
Thread.Sleep(st2 * 1000);
}
catch (Exception ex)
{
DataNew.Save_DD_GoodsSync(md.Id.Value);
ErrorFollow.TraceWrite("GetPM", "", ex.Message);
}
}
}
else
{
Thread.Sleep(30*60*1000);
}
Random rd = new Random();
int st = rd.Next(50, 500);
Thread.Sleep(st * 1000);
}
}
public void GetFedex2()
{
while (true)
{
try
{
JC_ExpressService service = new JC_ExpressService();
// JC_PostAddress address = DataNew.GetAddressModel22(4);
JC_ExpressPost expressModel = service.GetExpressModel(1, 228);
List<DT_OrderModel> fedexOrderList = DataNew.GetFedexOrderList2(FedexSDate, FedexEDate);
if (fedexOrderList == null || fedexOrderList.Count == 0)
{
Thread.Sleep(10000000);
}
string str = "";
if (fedexOrderList != null)
{
foreach (DT_OrderModel model in fedexOrderList)
{
str = str + model.OrderId + ",";
}
}
List<DT_OrderMateGoods> fedexOrderGoodsList = new List<DT_OrderMateGoods>();
List<DT_SpareFee> spareList = new List<DT_SpareFee>();
if (str != "")
{
fedexOrderGoodsList = API_OrderInfoService.GetFedexOrderGoodsList(str.TrimEnd(','));
spareList = DataNew.GetFedexOrderGoodsListSPare(str.TrimEnd(','));
}
if (fedexOrderList != null)
{
foreach (var fmd in fedexOrderList)
{
var isspare = 0;
string str2 = "";
if (spareList != null)
{
var smd = spareList.FindAll(n => n.OrderId == fmd.OrderId);
if (smd != null)
{
isspare = 1;
foreach (var ssmd in smd)
{
if (ssmd.Weight == null || ssmd.Weight == "")
return;
TradeManageNew.FedexRateNew2 rate = new TradeManageNew.FedexRateNew2();
TradeManageNew.FedexRateNew2.Key = expressModel.UserCode;
TradeManageNew.FedexRateNew2.Password = expressModel.CheckCode;
TradeManageNew.FedexRateNew2.AccountNumber = expressModel.client_id;
TradeManageNew.FedexRateNew2.MeterNumber = expressModel.client_secret;
TradeManageNew.FedexRateNew2.PayAccountNumber = expressModel.refresh_token;
TradeManageNew.FedexRateNew2.HubId = expressModel.Code;
TradeManageNew.FedexFeeMdNew md = new TradeManageNew.FedexFeeMdNew();
TradeManageNew.FedexRateNew2.Addr2 = 1;
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 = "1801 North Andrews Ave";// address.EnglishAddress;
md.SendCountry = "US";// address.countycode;
md.SendCity = "Pompano Beach";// address.city;
md.SendProv = "FL";// address.provincecode;
md.SendPostCode = "33069";// address.PostCode;
//md.SendAddr = "480 W 83rd St";// address.EnglishAddress;
//md.SendCountry = "US";// address.countycode;
//md.SendCity = "Hialeah";// address.city;
//md.SendProv = "FL";// address.provincecode;
//md.SendPostCode = "33166";// address.PostCode;
if (ssmd.Width != null && ssmd.Width != "")
{
md.Width = (Math.Ceiling(Convert.ToDecimal(ssmd.Width)).ToString());
}
if (ssmd.Height != null && ssmd.Height != "")
{
md.Height = Math.Ceiling(Convert.ToDecimal(ssmd.Height)).ToString();
}
if (ssmd.Long != null && ssmd.Long != "")
{
md.Lenght = Math.Ceiling(Convert.ToDecimal(ssmd.Long)).ToString();
}
md.Weight = Convert.ToDecimal(ssmd.Weight);
md.PostType = "SMART_POST";
rate.GetFee(md, out str2);
Thread.Sleep(3000);
md.PostType = "FEDEX_GROUND";
rate.GetFee(md, out str2);
Thread.Sleep(3000);
md.PostType = "GROUND_HOME_DELIVERY";
rate.GetFee(md, out str2);
Thread.Sleep(5000);
}
}
}
if (isspare == 0)
{
List<DT_OrderMateGoods> list3 = null;
if (fedexOrderGoodsList != null)
{
list3 = fedexOrderGoodsList.FindAll(n => n.OrderId == fmd.OrderId);
}
decimal num = 0M;
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.FedexRateNew2 rate = new TradeManageNew.FedexRateNew2();
TradeManageNew.FedexRateNew2.Key = expressModel.UserCode;
TradeManageNew.FedexRateNew2.Password = expressModel.CheckCode;
TradeManageNew.FedexRateNew2.AccountNumber = expressModel.client_id;
TradeManageNew.FedexRateNew2.MeterNumber = expressModel.client_secret;
TradeManageNew.FedexRateNew2.PayAccountNumber = expressModel.refresh_token;
TradeManageNew.FedexRateNew2.HubId = expressModel.Code;
TradeManageNew.FedexFeeMdNew md = new TradeManageNew.FedexFeeMdNew();
TradeManageNew.FedexRateNew2.Addr2 = 1;
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 = "1801 North Andrews Ave";// address.EnglishAddress;
md.SendCountry = "US";// address.countycode;
md.SendCity = "Pompano Beach";// address.city;
md.SendProv = "FL";// address.provincecode;
md.SendPostCode = "33069";// address.PostCode;
//md.SendAddr = "480 W 83rd St";// address.EnglishAddress;
//md.SendCountry = "US";// address.countycode;
//md.SendCity = "Hialeah";// address.city;
//md.SendProv = "FL";// address.provincecode;
//md.SendPostCode = "33166";// 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";
rate.GetFee(md, out str2);
Thread.Sleep(3000);
md.PostType = "FEDEX_GROUND";
rate.GetFee(md, out str2);
Thread.Sleep(3000);
md.PostType = "GROUND_HOME_DELIVERY";
rate.GetFee(md, out str2);
Thread.Sleep(5000);
}
}
if (str2 != "")
{
DataNew.Save_Fedex(fmd.OrderId.Value);
}
// 1.三种里面如果最便宜是S, 就用S
//2. 如果是RESIDENTIAL, smart 贵, 就走home devlivery,
//3. 如果是COMMERCIAL 就smart 和GROUND比较哪个便宜走哪个。
//4.超过70L 就用GROUND
}
}
}
catch (Exception exception)
{
ErrorFollow.TraceWrite("GetFedex2", "", exception.Message);
}
}
}
public void GetTrackCode()
{
while (true)
{
// ErrorFollow.TraceWrite("GetTrackCode", "", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
try
{
string error = "";
var md = DataNew.GetAutoCodeNew(1,6);//smart
var obj11 = new BaseService();
int ExpressId = 228;
// if(md!=null)
// ErrorFollow.TraceWrite("GetTrackCode", "md1", md.PlatOrderCode);
var companymd = obj11.GetAddressModel2(ExpressId);
var pmd = DataNew.GetExpressModel(1, ExpressId);
if (md != null && pmd != null && companymd != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md, pmd, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodesmart", "", error);
Thread.Sleep(2000);
md = DataNew.GetAutoCodeNew(2,6);//smart
ExpressId = 228;
companymd = obj11.GetAddressModel2(ExpressId);
pmd = DataNew.GetExpressModel(1, ExpressId);
if (md != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md, pmd, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodesmart", "", error);
Thread.Sleep(1000);
error = "";
var md3 = DataNew.GetAutoCodeNew(5,6);//home
ExpressId = 234;
companymd = obj11.GetAddressModel2(ExpressId);
var pmd3 = DataNew.GetExpressModel(1, ExpressId);
if (md3 != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md3, pmd3, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodehome", "", error);
Thread.Sleep(1000);
error = "";
var md2 = DataNew.GetAutoCodeNew(3, 6);//groud
ExpressId = 233;
companymd = obj11.GetAddressModel2(ExpressId);
var pmd2 = DataNew.GetExpressModel(1, ExpressId);
if (md2 != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md2, pmd2, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodegroud", "", error);
Thread.Sleep(1000);
error = "";
md2 = DataNew.GetAutoCodeNew(4, 6);//groud
ExpressId = 233;
companymd = obj11.GetAddressModel2(ExpressId);
pmd2 = DataNew.GetExpressModel(1, ExpressId);
if (md2 != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md2, pmd2, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodegroud", "", error);
GetTrackCode2();
}
catch (Exception ex)
{
ErrorFollow.TraceWrite("GetTrackCode", "", ex.Message);
}
Thread.Sleep(3000);
// if (DateTime.Now.Hour >= 18)
// Thread.Sleep(10000);
}
//}
//catch (Exception exception)
//{
// ErrorFollow.TraceWrite("GetTrackCode", "", exception.Message);
// thread1.Abort();
// Thread.Sleep(500000);
// thread1 = new Thread(GetTrackCode);
// thread1.Start();
//}
}
public void GetTrackCode2()
{
// ErrorFollow.TraceWrite("GetTrackCode", "", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
try
{
string error = "";
var md = DataNew.GetAutoCodeNew(1, 11);//smart
var obj11 = new BaseService();
int ExpressId = 237;
// if(md!=null)
// ErrorFollow.TraceWrite("GetTrackCode", "md1", md.PlatOrderCode);
var companymd = obj11.GetAddressModel2(ExpressId);
var pmd = DataNew.GetExpressModel(1, ExpressId);
if (md != null && pmd != null && companymd != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md, pmd, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodesmart", "", error);
Thread.Sleep(1000);
md = DataNew.GetAutoCodeNew(2, 11);//smart
ExpressId = 237;
companymd = obj11.GetAddressModel2(ExpressId);
pmd = DataNew.GetExpressModel(1, ExpressId);
if (md != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md, pmd, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodesmart", "", error);
Thread.Sleep(1000);
error = "";
var md3 = DataNew.GetAutoCodeNew(5, 11);//home
ExpressId = 239;
companymd = obj11.GetAddressModel2(ExpressId);
var pmd3 = DataNew.GetExpressModel(1, ExpressId);
if (md3 != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md3, pmd3, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodehome", "", error);
Thread.Sleep(1000);
error = "";
var md2 = DataNew.GetAutoCodeNew(3, 11);//groud
ExpressId = 238;
companymd = obj11.GetAddressModel2(ExpressId);
var pmd2 = DataNew.GetExpressModel(1, ExpressId);
if (md2 != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md2, pmd2, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodegroud", "", error);
Thread.Sleep(1000);
error = "";
md2 = DataNew.GetAutoCodeNew(4, 11);//groud
ExpressId = 238;
companymd = obj11.GetAddressModel2(ExpressId);
pmd2 = DataNew.GetExpressModel(1, ExpressId);
if (md2 != null)
error = DD_OrderServiceNew.GetOrderPostCodeAuto(md2, pmd2, companymd, ExpressId);
if (error != "")
ErrorFollow.TraceWrite("GetTrackCodegroud", "", error);
}
catch (Exception ex)
{
ErrorFollow.TraceWrite("GetTrackCode", "", ex.Message);
}
}
private void GetStar()
{
while (true)
{
Thread.Sleep(30000);
try
{
var list = DataLogic.GetLinkList();
if (list != null)
{
foreach (var md in list)
{
if (md.Url == null || md.Url == "")
continue;
string aa = "";
try
{
WebRequest request = WebRequest.Create(md.Url);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
aa = reader.ReadToEnd();
reader.Close();
reader.Dispose();
response.Close();
}
catch (Exception ex)
{
ErrorFollow.TraceWrite("WebRequestGetStarlist", ex.Message, ex.Data.ToString());
DataLogic.UpdateGoodsStar2(md.Id.Value);
Thread.Sleep(3000);
}
if (aa == "")
continue;
Match m = Regex.Match(aa, "<span data-hook=\"total-review-count\" class=\"a-size-medium totalReviewCount\">(?<TotalNum>.*?)</span>");
int TotalNum = 0;
if (m.Success)
{
if (m.Groups["TotalNum"] != null && m.Groups["TotalNum"].Value != null)
TotalNum = Convert.ToInt32(m.Groups["TotalNum"].Value);
}
int Star1 = 0;
int Star2 = 0;
int Star3 = 0;
int Star4 = 0;
int Star5 = 0;
int s1 = aa.IndexOf("cm_cr_dp_d_hist_1");
if (s1 > 0)
{
int s = aa.IndexOf("star (", s1);
int end = aa.IndexOf("%)", s);
string bb = aa.Substring(s + 6, end - s - 6);
if (bb != "")
Star1 = Convert.ToInt32(bb);
}
s1 = aa.IndexOf("cm_cr_dp_d_hist_2");
if (s1 > 0)
{
int s = aa.IndexOf("star (", s1);
int end = aa.IndexOf("%)", s);
string bb = aa.Substring(s + 6, end - s - 6);
if (bb != "")
Star2 = Convert.ToInt32(bb);
}
s1 = aa.IndexOf("cm_cr_dp_d_hist_3");
if (s1 > 0)
{
int s = aa.IndexOf("star (", s1);
int end = aa.IndexOf("%)", s);
string bb = aa.Substring(s + 6, end - s - 6);
if (bb != "")
Star3 = Convert.ToInt32(bb);
}
s1 = aa.IndexOf("cm_cr_dp_d_hist_4");
if (s1 > 0)
{
int s = aa.IndexOf("star (", s1);
int end = aa.IndexOf("%)", s);
string bb = aa.Substring(s + 6, end - s - 6);
if (bb != "")
Star4 = Convert.ToInt32(bb);
}
s1 = aa.IndexOf("cm_cr_dp_d_hist_5");
if (s1 > 0)
{
int s = aa.IndexOf("star (", s1);
int end = aa.IndexOf("%)", s);
string bb = aa.Substring(s + 6, end - s - 6);
if (bb != "")
Star5 = Convert.ToInt32(bb);
}
if (TotalNum > 0 && (Star1 > 0 || Star2 > 0 || Star3 > 0 || Star4 > 0 || Star5 > 0))
{
md.Star6 = TotalNum;
md.Star1 = Star1;
md.Star2 = Star2;
md.Star3 = Star3;
md.Star4 = Star4;
md.Star5 = Star5;
DataLogic.Save_GoodsStar(md);
}
else
{
DataLogic.UpdateGoodsStar2(md.Id.Value);
Thread.Sleep(10000);
}
Thread.Sleep(10000);
}
}
else
{
DataLogic.AddGoodsStar();
Thread.Sleep(40000000);
}
}
catch (Exception ex)
{
ErrorFollow.TraceWrite("GetStar", ex.Message, ex.Data.ToString());
}
}
}
#region 读取配置
public void ReadSetting()
{
string SetupPath = AppDomain.CurrentDomain.BaseDirectory + "Setup.ini";
StaticModel.OrderReadTime = ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "OrderReadTime");
string OrderDelayTime = ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "OrderDelayTime");
if (string.IsNullOrEmpty(OrderDelayTime) == false) StaticModel.OrderDelayTime = Convert.ToInt32(OrderDelayTime);
StaticModel.OrderJGTime = Convert.ToInt32(ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "OrderJGTime"));
string OrderReadNum = ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "OrderReadNum");
if (string.IsNullOrEmpty(OrderReadNum) == false) StaticModel.OrderReadNum = Convert.ToInt32(OrderReadNum);
string FedexReadTime = ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "FedexReadTime");
if (string.IsNullOrEmpty(FedexReadTime) == false) StaticModel.FedexReadTime = FedexReadTime;
string FedexReadTimeS = ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "FedexReadTimeS");
if (string.IsNullOrEmpty(FedexReadTimeS) == false) FedexSDate = Convert.ToDateTime(FedexReadTimeS);
string FedexReadTimeE = ConfigurationSourceSection.LoadXml_Attribute(SetupPath, "FedexReadTimeE");
if (string.IsNullOrEmpty(FedexReadTimeE) == false) FedexEDate = Convert.ToDateTime(FedexReadTimeE); ;
}
#endregion
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
if (threadListen != null)
threadListen.Abort();
if (thread1 != null)
thread1.Abort();
if (threadListen2 != null)
threadListen2.Abort();
if (threadListen3 != null)
threadListen3.Abort();
ser.Stop();
}
}
}