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#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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