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(); 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(); 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 #30 // 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 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 fedexOrderGoodsList = new List(); List spareList = new List(); 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 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, "(?.*?)"); 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(); } } }