|
@@ -0,0 +1,396 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Data;
|
|
|
+using System.Threading;
|
|
|
+using MySystem.Models.Main;
|
|
|
+using Library;
|
|
|
+using LitJson;
|
|
|
+using System.Net;
|
|
|
+using System.IO;
|
|
|
+using AppConfig;
|
|
|
+
|
|
|
+namespace MySystem
|
|
|
+{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public class GetHaoDaFTPInfoService
|
|
|
+ {
|
|
|
+ public readonly static GetHaoDaFTPInfoService Instance = new GetHaoDaFTPInfoService();
|
|
|
+ private GetHaoDaFTPInfoService()
|
|
|
+ { }
|
|
|
+
|
|
|
+
|
|
|
+ public void Start()
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Thread th2 = new Thread(GetFTPDataInfoYesterday);
|
|
|
+ th2.IsBackground = true;
|
|
|
+ th2.Start();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static void GetFTPDataInfoHalfHour()
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string ftpServerAddress = Base.HaoDaFtpHost;
|
|
|
+
|
|
|
+ string ftpUser = Base.HaoDaFtpLoginName;
|
|
|
+ string ftpPassword = Base.HaoDaFtpLoginPwd;
|
|
|
+
|
|
|
+ string filePath = "/haoda-trade/" + DateTime.Now.ToString("yyyyMMdd") + ".csv";
|
|
|
+
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+ FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServerAddress + filePath);
|
|
|
+ request.Method = WebRequestMethods.Ftp.DownloadFile;
|
|
|
+ request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
|
|
|
+
|
|
|
+
|
|
|
+ FtpWebResponse response = (FtpWebResponse)request.GetResponse();
|
|
|
+
|
|
|
+
|
|
|
+ Stream responseStream = response.GetResponseStream();
|
|
|
+ using (StreamReader reader = new StreamReader(responseStream))
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+
|
|
|
+ string fileContents = reader.ReadToEnd();
|
|
|
+ if (!string.IsNullOrEmpty(fileContents))
|
|
|
+ {
|
|
|
+ var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
|
|
|
+ var DataList = DataInfo[1].Split('\n');
|
|
|
+ foreach (var DataListItem in DataList)
|
|
|
+ {
|
|
|
+ var DataListInfo = DataListItem.Split(',');
|
|
|
+
|
|
|
+ var MerchantNo = "";
|
|
|
+ var BaseNo = "";
|
|
|
+ var OrderNo = "";
|
|
|
+ var PayWay = "";
|
|
|
+ var TradeType = "";
|
|
|
+ var TradeAmount = "";
|
|
|
+ var TradeFee = "";
|
|
|
+ var TradeDate = "";
|
|
|
+ var TradeCycle = "";
|
|
|
+
|
|
|
+ MerchantNo = DataListInfo[0];
|
|
|
+ BaseNo = DataListInfo[1];
|
|
|
+ OrderNo = DataListInfo[2];
|
|
|
+ PayWay = DataListInfo[3];
|
|
|
+ TradeType = DataListInfo[4];
|
|
|
+ TradeAmount = DataListInfo[5];
|
|
|
+ TradeFee = DataListInfo[6];
|
|
|
+ TradeDate = DataListInfo[7];
|
|
|
+ TradeCycle = DataListInfo[8];
|
|
|
+
|
|
|
+ TradeDate = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2) + " " + TradeDate.Substring(8, 2) + ":" + TradeDate.Substring(10, 2) + ":" + TradeDate.Substring(12, 2);
|
|
|
+
|
|
|
+ var PayMode = 0;
|
|
|
+ if (PayWay.Contains("支付宝")) PayMode = 1;
|
|
|
+ if (PayWay.Contains("微信")) PayMode = 2;
|
|
|
+
|
|
|
+ var merchantAddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerchantNo) ?? new MerchantAddInfo();
|
|
|
+ if (merchantAddInfo.Id > 0)
|
|
|
+ {
|
|
|
+ var merchantInfo = db.MerchantInfo.FirstOrDefault(m => m.Id == merchantAddInfo.Id) ?? new MerchantInfo();
|
|
|
+ var orders = db.ConsumerOrders.FirstOrDefault(m => m.SeoTitle == OrderNo && OrderNo == OrderNo) ?? new ConsumerOrders();
|
|
|
+ if (orders.Id == 0)
|
|
|
+ {
|
|
|
+ var query = db.ConsumerOrders.Add(new ConsumerOrders()
|
|
|
+ {
|
|
|
+ Status = 1,
|
|
|
+ CreateDate = DateTime.Parse(TradeDate),
|
|
|
+ UpdateDate = DateTime.Parse(TradeDate),
|
|
|
+ SnNo = BaseNo,
|
|
|
+ PayMoney = decimal.Parse(TradeAmount),
|
|
|
+ PayMode = PayMode,
|
|
|
+ SeoTitle = OrderNo,
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ MerchantId = merchantAddInfo.Id,
|
|
|
+ UserId = merchantInfo.UserId
|
|
|
+ }).Entity;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ response.Close();
|
|
|
+ Thread.Sleep(1800000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (WebException ex)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ if (((FtpWebResponse)ex.Response).StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString() + "文件" + filePath + "不存在", "获取好哒FTP文件数据异常");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "获取好哒FTP文件数据异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static void GetFTPDataInfoToday()
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string ftpServerAddress = Base.HaoDaFtpHost;
|
|
|
+
|
|
|
+ string ftpUser = Base.HaoDaFtpLoginName;
|
|
|
+ string ftpPassword = Base.HaoDaFtpLoginPwd;
|
|
|
+
|
|
|
+ string filePath = "/haoda-trade/" + DateTime.Now.ToString("yyyyMMdd") + ".csv";
|
|
|
+
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ if (DateTime.Now.Hour > 0 && DateTime.Now.Hour < 9)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+ FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServerAddress + filePath);
|
|
|
+ request.Method = WebRequestMethods.Ftp.DownloadFile;
|
|
|
+ request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
|
|
|
+
|
|
|
+
|
|
|
+ FtpWebResponse response = (FtpWebResponse)request.GetResponse();
|
|
|
+
|
|
|
+
|
|
|
+ Stream responseStream = response.GetResponseStream();
|
|
|
+ using (StreamReader reader = new StreamReader(responseStream))
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+
|
|
|
+ string fileContents = reader.ReadToEnd();
|
|
|
+ if (!string.IsNullOrEmpty(fileContents))
|
|
|
+ {
|
|
|
+ var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
|
|
|
+ var DataList = DataInfo[1].Split('\n');
|
|
|
+ foreach (var DataListItem in DataList)
|
|
|
+ {
|
|
|
+ var DataListInfo = DataListItem.Split(',');
|
|
|
+
|
|
|
+ var MerchantNo = "";
|
|
|
+ var BaseNo = "";
|
|
|
+ var OrderNo = "";
|
|
|
+ var PayWay = "";
|
|
|
+ var TradeType = "";
|
|
|
+ var TradeAmount = "";
|
|
|
+ var TradeFee = "";
|
|
|
+ var TradeDate = "";
|
|
|
+ var TradeCycle = "";
|
|
|
+
|
|
|
+ MerchantNo = DataListInfo[0];
|
|
|
+ BaseNo = DataListInfo[1];
|
|
|
+ OrderNo = DataListInfo[2];
|
|
|
+ PayWay = DataListInfo[3];
|
|
|
+ TradeType = DataListInfo[4];
|
|
|
+ TradeAmount = DataListInfo[5];
|
|
|
+ TradeFee = DataListInfo[6];
|
|
|
+ TradeDate = DataListInfo[7];
|
|
|
+ TradeCycle = DataListInfo[8];
|
|
|
+
|
|
|
+ TradeDate = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2) + " " + TradeDate.Substring(8, 2) + ":" + TradeDate.Substring(10, 2) + ":" + TradeDate.Substring(12, 2);
|
|
|
+
|
|
|
+ var PayMode = 0;
|
|
|
+ if (PayWay.Contains("支付宝")) PayMode = 1;
|
|
|
+ if (PayWay.Contains("微信")) PayMode = 2;
|
|
|
+
|
|
|
+ var merchantAddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerchantNo) ?? new MerchantAddInfo();
|
|
|
+ if (merchantAddInfo.Id > 0)
|
|
|
+ {
|
|
|
+ var merchantInfo = db.MerchantInfo.FirstOrDefault(m => m.Id == merchantAddInfo.Id) ?? new MerchantInfo();
|
|
|
+ var orders = db.ConsumerOrders.FirstOrDefault(m => m.SeoTitle == OrderNo && OrderNo == OrderNo) ?? new ConsumerOrders();
|
|
|
+ if (orders.Id == 0)
|
|
|
+ {
|
|
|
+ var query = db.ConsumerOrders.Add(new ConsumerOrders()
|
|
|
+ {
|
|
|
+ Status = 1,
|
|
|
+ CreateDate = DateTime.Parse(TradeDate),
|
|
|
+ UpdateDate = DateTime.Parse(TradeDate),
|
|
|
+ SnNo = BaseNo,
|
|
|
+ PayMoney = decimal.Parse(TradeAmount),
|
|
|
+ PayMode = PayMode,
|
|
|
+ SeoTitle = OrderNo,
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ MerchantId = merchantAddInfo.Id,
|
|
|
+ UserId = merchantInfo.UserId
|
|
|
+ }).Entity;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ response.Close();
|
|
|
+ Thread.Sleep(1800000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (WebException ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "获取好哒FTP文件数据异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public static void GetFTPDataInfoYesterday()
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string ftpServerAddress = Base.HaoDaFtpHost;
|
|
|
+
|
|
|
+ string ftpUser = Base.HaoDaFtpLoginName;
|
|
|
+ string ftpPassword = Base.HaoDaFtpLoginPwd;
|
|
|
+
|
|
|
+ string filePath = "/haoda-trade/" + DateTime.Now.AddDays(-1).ToString("yyyyMMdd") + ".csv";
|
|
|
+
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ string check = function.ReadInstance("/GetFTPDataInfoYesterday/check" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + ".txt");
|
|
|
+ if (string.IsNullOrEmpty(check))
|
|
|
+ {
|
|
|
+ if (DateTime.Now.Hour > 11 && DateTime.Now.Hour < 24)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+ FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServerAddress + filePath);
|
|
|
+ request.Method = WebRequestMethods.Ftp.DownloadFile;
|
|
|
+ request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
|
|
|
+
|
|
|
+
|
|
|
+ FtpWebResponse response = (FtpWebResponse)request.GetResponse();
|
|
|
+
|
|
|
+
|
|
|
+ Stream responseStream = response.GetResponseStream();
|
|
|
+ using (StreamReader reader = new StreamReader(responseStream))
|
|
|
+ {
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+
|
|
|
+ string fileContents = reader.ReadToEnd();
|
|
|
+ if (!string.IsNullOrEmpty(fileContents))
|
|
|
+ {
|
|
|
+ var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
|
|
|
+ var DataList = DataInfo[1].Split('\n');
|
|
|
+ foreach (var DataListItem in DataList)
|
|
|
+ {
|
|
|
+ var DataListInfo = DataListItem.Split(',');
|
|
|
+
|
|
|
+ var MerchantNo = "";
|
|
|
+ var BaseNo = "";
|
|
|
+ var OrderNo = "";
|
|
|
+ var PayWay = "";
|
|
|
+ var TradeType = "";
|
|
|
+ var TradeAmount = "";
|
|
|
+ var TradeFee = "";
|
|
|
+ var TradeDate = "";
|
|
|
+ var TradeCycle = "";
|
|
|
+
|
|
|
+ MerchantNo = DataListInfo[0];
|
|
|
+ BaseNo = DataListInfo[1];
|
|
|
+ OrderNo = DataListInfo[2];
|
|
|
+ PayWay = DataListInfo[3];
|
|
|
+ TradeType = DataListInfo[4];
|
|
|
+ TradeAmount = DataListInfo[5];
|
|
|
+ TradeFee = DataListInfo[6];
|
|
|
+ TradeDate = DataListInfo[7];
|
|
|
+ TradeCycle = DataListInfo[8];
|
|
|
+
|
|
|
+ TradeDate = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2) + " " + TradeDate.Substring(8, 2) + ":" + TradeDate.Substring(10, 2) + ":" + TradeDate.Substring(12, 2);
|
|
|
+
|
|
|
+ var PayMode = 0;
|
|
|
+ if (PayWay.Contains("支付宝")) PayMode = 1;
|
|
|
+ if (PayWay.Contains("微信")) PayMode = 2;
|
|
|
+
|
|
|
+ var merchantAddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerchantNo) ?? new MerchantAddInfo();
|
|
|
+ if (merchantAddInfo.Id > 0)
|
|
|
+ {
|
|
|
+ var merchantInfo = db.MerchantInfo.FirstOrDefault(m => m.Id == merchantAddInfo.Id) ?? new MerchantInfo();
|
|
|
+ var orders = db.ConsumerOrders.FirstOrDefault(m => m.SeoTitle == OrderNo && OrderNo == OrderNo) ?? new ConsumerOrders();
|
|
|
+ if (orders.Id == 0)
|
|
|
+ {
|
|
|
+ var query = db.ConsumerOrders.Add(new ConsumerOrders()
|
|
|
+ {
|
|
|
+ Status = 1,
|
|
|
+ CreateDate = DateTime.Parse(TradeDate),
|
|
|
+ UpdateDate = DateTime.Parse(TradeDate),
|
|
|
+ SnNo = BaseNo,
|
|
|
+ PayMoney = decimal.Parse(TradeAmount),
|
|
|
+ PayMode = PayMode,
|
|
|
+ SeoTitle = OrderNo,
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ MerchantId = merchantAddInfo.Id,
|
|
|
+ UserId = merchantInfo.UserId
|
|
|
+ }).Entity;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.SaveChanges();
|
|
|
+ db.Dispose();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ response.Close();
|
|
|
+ Thread.Sleep(1800000);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (WebException ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "获取好哒FTP文件数据异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|