|
@@ -4,7 +4,6 @@ using System.Linq;
|
|
|
using System.Data;
|
|
|
using System.Threading;
|
|
|
using Library;
|
|
|
-using LitJson;
|
|
|
using System.Net;
|
|
|
using System.IO;
|
|
|
using MySystem.SpModels;
|
|
@@ -52,9 +51,11 @@ namespace MySystem
|
|
|
if (string.IsNullOrEmpty(check))
|
|
|
{
|
|
|
function.WritePage("/GetFTPDepositYesterday/", "check" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString());
|
|
|
- GetDepositData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ SaveDepositData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ GetDepositData();
|
|
|
Thread.Sleep(60000);
|
|
|
- GetTradeData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ SaveTradeData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ GetTradeData();
|
|
|
}
|
|
|
}
|
|
|
Thread.Sleep(7200000);
|
|
@@ -78,9 +79,13 @@ namespace MySystem
|
|
|
{
|
|
|
if (DateTime.Now > DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 10:05:00"))
|
|
|
{
|
|
|
- GetDepositData("d_" + DateTime.Now.ToString("yyyyMMdd"));
|
|
|
+ SaveDepositData("d_" + DateTime.Now.ToString("yyyyMMdd"));
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ GetDepositData();
|
|
|
}
|
|
|
- GetTradeData(DateTime.Now.ToString("yyyyMMdd"));
|
|
|
+ SaveTradeData(DateTime.Now.ToString("yyyyMMdd"));
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ GetTradeData();
|
|
|
Thread.Sleep(1800000);
|
|
|
}
|
|
|
}
|
|
@@ -102,39 +107,9 @@ namespace MySystem
|
|
|
string content = RedisDbconn.Instance.RPop<string>("ListenDepositDataQueue2");
|
|
|
if (!string.IsNullOrEmpty(content))
|
|
|
{
|
|
|
- GetDepositData2(content);
|
|
|
+ SaveDepositData(content);
|
|
|
Thread.Sleep(2000);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Thread.Sleep(60000);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void StartListenOne()
|
|
|
- {
|
|
|
- //每天凌晨执行获取好哒FTP昨日交易数据
|
|
|
- Thread th = new Thread(ListenDepositOne);
|
|
|
- th.IsBackground = true;
|
|
|
- th.Start();
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 获取好哒FTP昨日交易数据
|
|
|
- /// </summary>
|
|
|
- public void ListenDepositOne()
|
|
|
- {
|
|
|
- while (true)
|
|
|
- {
|
|
|
- string content = RedisDbconn.Instance.RPop<string>("ListenDepositOneQueue");
|
|
|
- if (!string.IsNullOrEmpty(content))
|
|
|
- {
|
|
|
- string[] data = content.Split('|');
|
|
|
- WebCMSEntities db = new WebCMSEntities();
|
|
|
- MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
|
|
|
- DataInDatabase(db, mpdb2, data[0], data[1]);
|
|
|
- db.Dispose();
|
|
|
- mpdb2.Dispose();
|
|
|
+ GetDepositData();
|
|
|
Thread.Sleep(2000);
|
|
|
}
|
|
|
else
|
|
@@ -144,7 +119,7 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void GetDepositData(string Date)
|
|
|
+ public void SaveDepositData(string Date)
|
|
|
{
|
|
|
// 要下载的文件路径
|
|
|
string filePath = "/haoda-deposit/deposit_" + Date + ".csv";
|
|
@@ -166,19 +141,71 @@ namespace MySystem
|
|
|
string fileContents = reader.ReadToEnd();
|
|
|
if (!string.IsNullOrEmpty(fileContents))
|
|
|
{
|
|
|
- WebCMSEntities db = new WebCMSEntities();
|
|
|
- MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
|
|
|
+ MpMainModels2.WebCMSEntities db = new MpMainModels2.WebCMSEntities();
|
|
|
+ List<string> SnNos = db.HdDepositTmp.Select(m => m.SnNo).ToList();
|
|
|
+ List<string> ChkSnNos = new List<string>();
|
|
|
var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
|
|
|
if(DataInfo.Length > 1)
|
|
|
{
|
|
|
+ int index = 0;
|
|
|
var DataList = DataInfo[1].Split('\n');
|
|
|
foreach (var DataListItem in DataList)
|
|
|
{
|
|
|
- DataInDatabase(db, mpdb2, DataListItem, Date);
|
|
|
+ index += 1;
|
|
|
+ var DataListInfo = DataListItem.Split(',');
|
|
|
+
|
|
|
+ string SnNo = DataListInfo[0]; //sn
|
|
|
+ string MerNo = DataListInfo[1]; //商户编号
|
|
|
+ string PosKind = DataListInfo[2]; //机具型号
|
|
|
+ string ActDate = DataListInfo[3]; //激活时间
|
|
|
+ string Deposit = DataListInfo[4]; //押金金额
|
|
|
+ string PrizeAmt = "0"; //奖励金额
|
|
|
+ string PrizeDate = "None"; //奖励发放时间
|
|
|
+ string Name = ""; //发放人姓名
|
|
|
+ string MerName = ""; //商户名称
|
|
|
+ string PassDate = ""; //审核通过时期
|
|
|
+ string MerKind = ""; //商户类型
|
|
|
+ if(Date.StartsWith("d_"))
|
|
|
+ {
|
|
|
+ MerName = DataListInfo[5]; //商户名称
|
|
|
+ PassDate = DataListInfo[6]; //审核通过时期
|
|
|
+ MerKind = DataListInfo[7]; //商户类型
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ PrizeAmt = DataListInfo[5]; //奖励金额
|
|
|
+ PrizeDate = DataListInfo[6]; //奖励发放时间
|
|
|
+ Name = DataListInfo[7]; //发放人姓名
|
|
|
+ MerName = DataListInfo[8]; //商户名称
|
|
|
+ PassDate = DataListInfo[9]; //审核通过时期
|
|
|
+ if(DataListInfo.Length > 10) MerKind = DataListInfo[10]; //商户类型
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!SnNos.Contains(SnNo) && !ChkSnNos.Contains(SnNo))
|
|
|
+ {
|
|
|
+ ChkSnNos.Add(SnNo);
|
|
|
+ db.HdDepositTmp.Add(new MpMainModels2.HdDepositTmp()
|
|
|
+ {
|
|
|
+ SnNo = SnNo,
|
|
|
+ MerKind = MerKind,
|
|
|
+ PassDate = PassDate,
|
|
|
+ MerName = MerName,
|
|
|
+ SendMan = Name,
|
|
|
+ PrizeDate = PrizeDate,
|
|
|
+ PrizeAmount = decimal.Parse(function.CheckNum(PrizeAmt)),
|
|
|
+ DepositAmount = decimal.Parse(function.CheckNum(Deposit)),
|
|
|
+ ActDate = ActDate,
|
|
|
+ DeviceKind = PosKind,
|
|
|
+ MerNo = MerNo,
|
|
|
+ });
|
|
|
+ if(index % 200 == 0)
|
|
|
+ {
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
db.Dispose();
|
|
|
- mpdb2.Dispose();
|
|
|
}
|
|
|
|
|
|
// 关闭响应
|
|
@@ -192,261 +219,118 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void DataInDatabase(WebCMSEntities db, MpMainModels2.WebCMSEntities mpdb2, string DataListItem, string Date)
|
|
|
- {
|
|
|
- var DataListInfo = DataListItem.Split(',');
|
|
|
-
|
|
|
- string SnNo = DataListInfo[0]; //sn
|
|
|
- string MerNo = DataListInfo[1]; //商户编号
|
|
|
- string PosKind = DataListInfo[2]; //机具型号
|
|
|
- string ActDate = DataListInfo[3]; //激活时间
|
|
|
- string Deposit = DataListInfo[4]; //押金金额
|
|
|
- string PrizeAmt = "0"; //奖励金额
|
|
|
- string PrizeDate = "None"; //奖励发放时间
|
|
|
- string Name = ""; //发放人姓名
|
|
|
- string MerName = ""; //商户名称
|
|
|
- string PassDate = ""; //审核通过时期
|
|
|
- string MerKind = ""; //商户类型
|
|
|
- if(Date.StartsWith("d_"))
|
|
|
- {
|
|
|
- MerName = DataListInfo[5]; //商户名称
|
|
|
- PassDate = DataListInfo[6]; //审核通过时期
|
|
|
- MerKind = DataListInfo[7]; //商户类型
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- PrizeAmt = DataListInfo[5]; //奖励金额
|
|
|
- PrizeDate = DataListInfo[6]; //奖励发放时间
|
|
|
- Name = DataListInfo[7]; //发放人姓名
|
|
|
- MerName = DataListInfo[8]; //商户名称
|
|
|
- PassDate = DataListInfo[9]; //审核通过时期
|
|
|
- if(DataListInfo.Length > 10) MerKind = DataListInfo[10]; //商户类型
|
|
|
- }
|
|
|
-
|
|
|
- string ActDateString = ActDate.Substring(0, 4) + "-" + ActDate.Substring(4, 2) + "-" + ActDate.Substring(6, 2);
|
|
|
- if(DateTime.Parse(ActDateString) >= DateTime.Parse(DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd")))
|
|
|
- {
|
|
|
- string PrizeDateString = "";
|
|
|
- if(PrizeDate == "None")
|
|
|
- {
|
|
|
- PrizeDate = Date.Replace("d_", "");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- PrizeDateString = PrizeDate.Substring(0, 4) + "-" + PrizeDate.Substring(4, 2) + "-" + PrizeDate.Substring(6, 2);
|
|
|
- }
|
|
|
-
|
|
|
- if(!db.BindRecord.Any(m => m.MerSnNo == SnNo))
|
|
|
- {
|
|
|
- string ProductType = "0";
|
|
|
- if(PosKind == "好哒语音王Y512") ProductType = "18";
|
|
|
- if(PosKind == "4G收款王M820") ProductType = "19";
|
|
|
- if(PosKind == "4G收款王M826") ProductType = "20";
|
|
|
- if(PosKind == "好哒S312") ProductType = "21";
|
|
|
- if(PosKind == "好哒扫码通M837") ProductType = "29";
|
|
|
-
|
|
|
- BindRecord mer = db.BindRecord.Add(new BindRecord()
|
|
|
- {
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- UpdateTime = DateTime.Now, //机具绑定、解绑时间
|
|
|
- CreateTime = DateTime.Now, //商户操作时间
|
|
|
- MerSnNo = SnNo, //序列号
|
|
|
- MerNo = MerNo, //商户编号
|
|
|
- MerName = MerName,
|
|
|
- SeoTitle = PrizeAmt,
|
|
|
- SeoKeyword = ActDateString,
|
|
|
- ProductType = ProductType,
|
|
|
- Field1 = Deposit,
|
|
|
- Field2 = PrizeDate,
|
|
|
- Field3 = Name,
|
|
|
- Field4 = PassDate,
|
|
|
- Field5 = MerKind,
|
|
|
- Status = 1,
|
|
|
- }).Entity;
|
|
|
-
|
|
|
- db.Merchants.Add(new Merchants()
|
|
|
- {
|
|
|
- SnNo = SnNo,
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- UpdateTime = DateTime.Now,
|
|
|
- AgentName = Name,
|
|
|
- MerRealName = Name,
|
|
|
- MerNo = MerNo,
|
|
|
- MerName = Name,
|
|
|
- ProductType = ProductType,
|
|
|
- Status = 1,
|
|
|
- });
|
|
|
- db.SaveChanges();
|
|
|
-
|
|
|
- Thread.Sleep(1000);
|
|
|
-
|
|
|
- ActivateRecord act = db.ActivateRecord.Add(new ActivateRecord()
|
|
|
- {
|
|
|
- SnNo = SnNo,
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- SeoTitle = Deposit,
|
|
|
- ActivateDate = DateTime.Now,
|
|
|
- AgentNo = MerNo,
|
|
|
- MerRealName = Name,
|
|
|
- MerNo = MerNo,
|
|
|
- MerName = Name,
|
|
|
- ProductType = ProductType,
|
|
|
- ChannelSerial = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8),
|
|
|
- Status = 1,
|
|
|
- Field1 = PassDate,
|
|
|
- Field2 = MerKind,
|
|
|
- }).Entity;
|
|
|
- db.SaveChanges();
|
|
|
-
|
|
|
- //推送MQ给创业帮
|
|
|
- var merchantAddInfo = mpdb2.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerNo) ?? new MpMainModels2.MerchantAddInfo();
|
|
|
- if (merchantAddInfo.BrandId == 1 && !string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
|
|
|
- {
|
|
|
- SortedList<string, string> obj = new SortedList<string, string>();
|
|
|
- obj.Add("create_time", ActDateString);
|
|
|
- obj.Add("sn", SnNo);
|
|
|
- obj.Add("deposit", Deposit);
|
|
|
- obj.Add("subject_type", merchantAddInfo.SubjectType);
|
|
|
- obj.Add("merch_no", merchantAddInfo.MchtNo);
|
|
|
- obj.Add("maker_code", merchantAddInfo.CybMakerCode);
|
|
|
- PushHelper.Instance.Do(obj, "cashNotify");
|
|
|
-
|
|
|
- PosPushDataNewHelper.Bind(mer);
|
|
|
- PosPushDataNewHelper.Deposit(act);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void GetDepositData2(string Date)
|
|
|
- {
|
|
|
- // 要下载的文件路径
|
|
|
- string filePath = "/haoda-deposit/deposit_" + Date + ".csv";
|
|
|
-
|
|
|
+ public void GetDepositData()
|
|
|
+ {
|
|
|
try
|
|
|
{
|
|
|
- // 创建FtpWebRequest对象
|
|
|
- FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServerAddress + filePath);
|
|
|
- request.Method = WebRequestMethods.Ftp.DownloadFile;
|
|
|
- request.Credentials = new NetworkCredential(ftpUser, ftpPassword);
|
|
|
-
|
|
|
- // 使用WebResponse获取响应
|
|
|
- FtpWebResponse response = (FtpWebResponse)request.GetResponse();
|
|
|
-
|
|
|
- // 打开数据流
|
|
|
- Stream responseStream = response.GetResponseStream();
|
|
|
- StreamReader reader = new StreamReader(responseStream);
|
|
|
- // 读取数据
|
|
|
- string fileContents = reader.ReadToEnd();
|
|
|
- if (!string.IsNullOrEmpty(fileContents))
|
|
|
+ WebCMSEntities db = new WebCMSEntities();
|
|
|
+ MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
|
|
|
+ List<MpMainModels2.HdDepositTmp> deposits = mpdb2.HdDepositTmp.Where(m => m.Status == 0).ToList();
|
|
|
+ if(deposits.Count > 1)
|
|
|
{
|
|
|
- WebCMSEntities db = new WebCMSEntities();
|
|
|
- MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
|
|
|
- var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
|
|
|
- if(DataInfo.Length > 1)
|
|
|
+ foreach (var deposit in deposits)
|
|
|
{
|
|
|
- var DataList = DataInfo[1].Split('\n');
|
|
|
- foreach (var DataListItem in DataList)
|
|
|
+ string SnNo = deposit.SnNo; //sn
|
|
|
+ string MerNo = deposit.MerNo; //商户编号
|
|
|
+ string PosKind = deposit.DeviceKind; //机具型号
|
|
|
+ string ActDate = deposit.ActDate; //激活时间
|
|
|
+ string Deposit = deposit.DepositAmount.ToString(); //押金金额
|
|
|
+ string PrizeAmt = deposit.PrizeAmount.ToString(); //奖励金额
|
|
|
+ string PrizeDate = deposit.PrizeDate; //奖励发放时间
|
|
|
+ string Name = deposit.SendMan; //发放人姓名
|
|
|
+ string MerName = deposit.MerName; //商户名称
|
|
|
+ string PassDate = deposit.PassDate; //审核通过时期
|
|
|
+ string MerKind = deposit.MerKind; //商户类型
|
|
|
+
|
|
|
+ string ActDateString = ActDate.Substring(0, 4) + "-" + ActDate.Substring(4, 2) + "-" + ActDate.Substring(6, 2);
|
|
|
+
|
|
|
+ string ProductType = "0";
|
|
|
+ if(PosKind == "好哒语音王Y512") ProductType = "18";
|
|
|
+ if(PosKind == "4G收款王M820") ProductType = "19";
|
|
|
+ if(PosKind == "4G收款王M826") ProductType = "20";
|
|
|
+ if(PosKind == "好哒S312") ProductType = "21";
|
|
|
+ if(PosKind == "好哒扫码通M837") ProductType = "29";
|
|
|
+
|
|
|
+ BindRecord mer = db.BindRecord.Add(new BindRecord()
|
|
|
{
|
|
|
- var DataListInfo = DataListItem.Split(',');
|
|
|
-
|
|
|
- string SnNo = DataListInfo[0]; //sn
|
|
|
- string MerNo = DataListInfo[1]; //商户编号
|
|
|
- string PosKind = DataListInfo[2]; //机具型号
|
|
|
- string ActDate = DataListInfo[3]; //激活时间
|
|
|
- string Deposit = DataListInfo[4]; //押金金额
|
|
|
- string PrizeAmt = DataListInfo[5]; //奖励金额
|
|
|
- string PrizeDate = DataListInfo[6]; //奖励发放时间
|
|
|
- string Name = DataListInfo[7]; //发放人姓名
|
|
|
-
|
|
|
- string ActDateString = ActDate.Substring(0, 4) + "-" + ActDate.Substring(4, 2) + "-" + ActDate.Substring(6, 2);
|
|
|
- string PrizeDateString = "";
|
|
|
- if(PrizeDate == "None")
|
|
|
- {
|
|
|
- PrizeDate = Date;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- PrizeDateString = PrizeDate.Substring(0, 4) + "-" + PrizeDate.Substring(4, 2) + "-" + PrizeDate.Substring(6, 2);
|
|
|
- }
|
|
|
-
|
|
|
- string ProductType = "0";
|
|
|
- if(PosKind == "好哒语音王Y512") ProductType = "18";
|
|
|
- if(PosKind == "4G收款王M820") ProductType = "19";
|
|
|
- if(PosKind == "4G收款王M826") ProductType = "20";
|
|
|
- if(PosKind == "好哒S312") ProductType = "21";
|
|
|
-
|
|
|
- db.BindRecord.Add(new BindRecord()
|
|
|
- {
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- UpdateTime = DateTime.Now, //机具绑定、解绑时间
|
|
|
- CreateTime = DateTime.Now, //商户操作时间
|
|
|
- MerSnNo = SnNo, //序列号
|
|
|
- MerNo = MerNo, //商户编号
|
|
|
- MerName = Name,
|
|
|
- SeoTitle = PrizeAmt,
|
|
|
- SeoKeyword = ActDateString,
|
|
|
- ProductType = ProductType,
|
|
|
- Field1 = Deposit,
|
|
|
- Field2 = PrizeDate,
|
|
|
- Status = 1,
|
|
|
- });
|
|
|
-
|
|
|
- db.Merchants.Add(new Merchants()
|
|
|
- {
|
|
|
- SnNo = SnNo,
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- UpdateTime = DateTime.Now,
|
|
|
- AgentName = Name,
|
|
|
- MerRealName = Name,
|
|
|
- MerNo = MerNo,
|
|
|
- MerName = Name,
|
|
|
- ProductType = ProductType,
|
|
|
- Status = 1,
|
|
|
- });
|
|
|
- db.SaveChanges();
|
|
|
-
|
|
|
- Thread.Sleep(1000);
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
+ UpdateTime = DateTime.Now, //机具绑定、解绑时间
|
|
|
+ CreateTime = DateTime.Now, //商户操作时间
|
|
|
+ MerSnNo = SnNo, //序列号
|
|
|
+ MerNo = MerNo, //商户编号
|
|
|
+ MerName = MerName,
|
|
|
+ SeoTitle = PrizeAmt,
|
|
|
+ SeoKeyword = ActDateString,
|
|
|
+ ProductType = ProductType,
|
|
|
+ Field1 = Deposit,
|
|
|
+ Field2 = PrizeDate,
|
|
|
+ Field3 = Name,
|
|
|
+ Field4 = PassDate,
|
|
|
+ Field5 = MerKind,
|
|
|
+ Status = 1,
|
|
|
+ }).Entity;
|
|
|
+
|
|
|
+ db.Merchants.Add(new Merchants()
|
|
|
+ {
|
|
|
+ SnNo = SnNo,
|
|
|
+ CreateTime = DateTime.Now,
|
|
|
+ UpdateTime = DateTime.Now,
|
|
|
+ AgentName = Name,
|
|
|
+ MerRealName = Name,
|
|
|
+ MerNo = MerNo,
|
|
|
+ MerName = Name,
|
|
|
+ ProductType = ProductType,
|
|
|
+ Status = 1,
|
|
|
+ });
|
|
|
+ db.SaveChanges();
|
|
|
+
|
|
|
+ Thread.Sleep(1000);
|
|
|
+
|
|
|
+ ActivateRecord act = db.ActivateRecord.Add(new ActivateRecord()
|
|
|
+ {
|
|
|
+ SnNo = SnNo,
|
|
|
+ CreateDate = DateTime.Now,
|
|
|
+ SeoTitle = Deposit,
|
|
|
+ ActivateDate = DateTime.Now,
|
|
|
+ AgentNo = MerNo,
|
|
|
+ MerRealName = Name,
|
|
|
+ MerNo = MerNo,
|
|
|
+ MerName = Name,
|
|
|
+ ProductType = ProductType,
|
|
|
+ ChannelSerial = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8),
|
|
|
+ Status = 1,
|
|
|
+ Field1 = PassDate,
|
|
|
+ Field2 = MerKind,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+
|
|
|
+ //推送MQ给创业帮
|
|
|
+ var merchantAddInfo = mpdb2.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerNo) ?? new MpMainModels2.MerchantAddInfo();
|
|
|
+ if (merchantAddInfo.BrandId == 1 && !string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
|
|
|
+ {
|
|
|
+ SortedList<string, string> obj = new SortedList<string, string>();
|
|
|
+ obj.Add("create_time", ActDateString);
|
|
|
+ obj.Add("sn", SnNo);
|
|
|
+ obj.Add("deposit", Deposit);
|
|
|
+ obj.Add("subject_type", merchantAddInfo.SubjectType);
|
|
|
+ obj.Add("merch_no", merchantAddInfo.MchtNo);
|
|
|
+ obj.Add("maker_code", merchantAddInfo.CybMakerCode);
|
|
|
+ PushHelper.Instance.Do(obj, "cashNotify");
|
|
|
+
|
|
|
+ PosPushDataNewHelper.Bind(mer);
|
|
|
+ PosPushDataNewHelper.Deposit(act);
|
|
|
+ }
|
|
|
|
|
|
- db.ActivateRecord.Add(new ActivateRecord()
|
|
|
- {
|
|
|
- SnNo = SnNo,
|
|
|
- CreateDate = DateTime.Now,
|
|
|
- SeoTitle = Deposit,
|
|
|
- ActivateDate = DateTime.Now,
|
|
|
- AgentNo = MerNo,
|
|
|
- MerRealName = Name,
|
|
|
- MerNo = MerNo,
|
|
|
- MerName = Name,
|
|
|
- ProductType = ProductType,
|
|
|
- ChannelSerial = DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8),
|
|
|
- Status = 1,
|
|
|
- });
|
|
|
+ MpMainModels2.HdDepositTmp edit = mpdb2.HdDepositTmp.FirstOrDefault(m => m.SnNo == SnNo);
|
|
|
+ if(edit != null)
|
|
|
+ {
|
|
|
+ edit.Status = 1;
|
|
|
db.SaveChanges();
|
|
|
-
|
|
|
- //推送MQ给创业帮
|
|
|
- var merchantAddInfo = mpdb2.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerNo) ?? new MpMainModels2.MerchantAddInfo();
|
|
|
- if (merchantAddInfo.BrandId == 1 && !string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
|
|
|
- {
|
|
|
- SortedList<string, string> obj = new SortedList<string, string>();
|
|
|
- obj.Add("create_time", ActDateString);
|
|
|
- obj.Add("sn", SnNo);
|
|
|
- obj.Add("deposit", Deposit);
|
|
|
- obj.Add("subject_type", merchantAddInfo.SubjectType);
|
|
|
- obj.Add("merch_no", merchantAddInfo.MchtNo);
|
|
|
- obj.Add("maker_code", merchantAddInfo.CybMakerCode);
|
|
|
- PushHelper.Instance.Do(obj, "cashNotify");
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
- db.Dispose();
|
|
|
- mpdb2.Dispose();
|
|
|
}
|
|
|
-
|
|
|
- // 关闭响应
|
|
|
- reader.Dispose();
|
|
|
- responseStream.Dispose();
|
|
|
- response.Close();
|
|
|
+ db.Dispose();
|
|
|
+ mpdb2.Dispose();
|
|
|
}
|
|
|
catch (WebException ex)
|
|
|
{
|
|
@@ -482,7 +366,9 @@ namespace MySystem
|
|
|
if (string.IsNullOrEmpty(check))
|
|
|
{
|
|
|
function.WritePage("/GetFTPTradeYesterday/", "check" + DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString());
|
|
|
- GetTradeData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ SaveTradeData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ GetTradeData();
|
|
|
Thread.Sleep(600000);
|
|
|
}
|
|
|
}
|
|
@@ -509,7 +395,9 @@ namespace MySystem
|
|
|
string content = RedisDbconn.Instance.RPop<string>("ListenTradeDataQueue");
|
|
|
if (!string.IsNullOrEmpty(content))
|
|
|
{
|
|
|
- GetTradeData(content, true);
|
|
|
+ SaveTradeData(content);
|
|
|
+ Thread.Sleep(2000);
|
|
|
+ GetTradeData();
|
|
|
Thread.Sleep(2000);
|
|
|
}
|
|
|
else
|
|
@@ -518,7 +406,7 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- public void GetTradeData(string Date, bool IsAll = false)
|
|
|
+ public void SaveTradeData(string Date)
|
|
|
{
|
|
|
// 要下载的文件路径
|
|
|
string filePath = "/haoda-trade/" + Date + ".csv";
|
|
@@ -539,16 +427,19 @@ namespace MySystem
|
|
|
StreamReader reader = new StreamReader(responseStream);
|
|
|
// 读取数据
|
|
|
string fileContents = reader.ReadToEnd();
|
|
|
- function.WriteLog("fileContents:" + fileContents, "获取好哒FTP文件交易数据");
|
|
|
if (!string.IsNullOrEmpty(fileContents))
|
|
|
{
|
|
|
MpMainModels2.WebCMSEntities db = new MpMainModels2.WebCMSEntities();
|
|
|
+ List<string> orderNos = db.HdOrderTmp.Select(m => m.OrderNo).ToList();
|
|
|
+ List<string> chkOrderNos = new List<string>();
|
|
|
var DataInfo = fileContents.TrimEnd('\n').Split('\n', 2);
|
|
|
if(DataInfo.Length > 1)
|
|
|
{
|
|
|
var DataList = DataInfo[1].Split('\n');
|
|
|
+ int index = 0;
|
|
|
foreach (var DataListItem in DataList)
|
|
|
{
|
|
|
+ index += 1;
|
|
|
var DataListInfo = DataListItem.Split(',');
|
|
|
|
|
|
var MerchantNo = ""; // 商户号
|
|
@@ -573,73 +464,29 @@ namespace MySystem
|
|
|
TradeDate = DataListInfo[8];
|
|
|
TradeCycle = DataListInfo[9];
|
|
|
|
|
|
- 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);
|
|
|
-
|
|
|
- if(DateTime.Parse(TradeDate) > DateTime.Parse(DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd") + " 00:00:00") || IsAll)
|
|
|
+ if(!orderNos.Contains(OrderNo) && !chkOrderNos.Contains(OrderNo))
|
|
|
{
|
|
|
- function.WriteLog("OrderNo:" + OrderNo, "获取好哒FTP文件交易数据");
|
|
|
- function.WriteLog("MerchantNo:" + MerchantNo, "获取好哒FTP文件交易数据");
|
|
|
-
|
|
|
- var PayMode = 0;
|
|
|
- if (PayWay.Contains("支付宝")) PayMode = 1;
|
|
|
- if (PayWay.Contains("微信")) PayMode = 2;
|
|
|
-
|
|
|
- var merchantAddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerchantNo) ?? new MpMainModels2.MerchantAddInfo();
|
|
|
- if (merchantAddInfo.Id > 0)
|
|
|
+ chkOrderNos.Add(OrderNo);
|
|
|
+ db.HdOrderTmp.Add(new MpMainModels2.HdOrderTmp()
|
|
|
+ {
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ SettleDuration = TradeCycle,
|
|
|
+ TradeTime = TradeDate,
|
|
|
+ TradeFee = decimal.Parse(function.CheckNum(TradeFee)),
|
|
|
+ TradeAmount = decimal.Parse(function.CheckNum(TradeAmount)),
|
|
|
+ TradeType = TradeType,
|
|
|
+ PayMode = PayWay,
|
|
|
+ DeviceKind = DeviceKind,
|
|
|
+ SnNo = BaseNo,
|
|
|
+ MerNo = MerchantNo,
|
|
|
+ });
|
|
|
+ if(index % 200 == 0)
|
|
|
{
|
|
|
- function.WriteLog("找到商户", "获取好哒FTP文件交易数据");
|
|
|
- var merchantInfo = db.MerchantInfo.FirstOrDefault(m => m.Id == merchantAddInfo.Id) ?? new MpMainModels2.MerchantInfo();
|
|
|
- if(merchantInfo.IsAct == 0)
|
|
|
- {
|
|
|
- merchantInfo.IsAct = 1;
|
|
|
- }
|
|
|
- var orders = db.ConsumerOrders.FirstOrDefault(m => m.SeoTitle == OrderNo && m.OrderNo == OrderNo) ?? new MpMainModels2.ConsumerOrders();
|
|
|
- if (orders.Id == 0)
|
|
|
- {
|
|
|
- function.WriteLog("订单号不存在,开始入库", "获取好哒FTP文件交易数据");
|
|
|
- decimal FeeRate = decimal.Parse(function.CheckNum(merchantAddInfo.FeeRate)) * 100;
|
|
|
- var query = db.ConsumerOrders.Add(new MpMainModels2.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,
|
|
|
- SeoKeyword = merchantAddInfo.CybMakerCode,
|
|
|
- Sort = (int)FeeRate,
|
|
|
- TradePayNo = MerchantNo,
|
|
|
- }).Entity;
|
|
|
- db.SaveChanges();
|
|
|
- function.WriteLog("入库完毕", "获取好哒FTP文件交易数据");
|
|
|
-
|
|
|
- //推送MQ给创业帮
|
|
|
- if (merchantAddInfo.BrandId == 1)
|
|
|
- {
|
|
|
- if(!string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
|
|
|
- {
|
|
|
- SortedList<string, string> obj = new SortedList<string, string>();
|
|
|
- obj.Add("create_time", TradeDate);
|
|
|
- obj.Add("sn", BaseNo);
|
|
|
- obj.Add("pay_money", TradeAmount);
|
|
|
- obj.Add("pay_mode", PayMode.ToString());
|
|
|
- obj.Add("order_no", OrderNo);
|
|
|
- obj.Add("merch_no", merchantAddInfo.MchtNo);
|
|
|
- obj.Add("maker_code", merchantAddInfo.CybMakerCode);
|
|
|
- PushHelper.Instance.Do(obj);
|
|
|
- }
|
|
|
- OrderMessageHelper.SendOrderMsg(query);
|
|
|
-
|
|
|
- // PosPushDataNewHelper.Trade(query, DeviceKind);
|
|
|
- }
|
|
|
- }
|
|
|
+ db.SaveChanges();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ db.SaveChanges();
|
|
|
}
|
|
|
db.Dispose();
|
|
|
}
|
|
@@ -648,6 +495,98 @@ namespace MySystem
|
|
|
reader.Dispose();
|
|
|
responseStream.Dispose();
|
|
|
response.Close();
|
|
|
+ }
|
|
|
+ catch (WebException ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "获取好哒FTP文件交易数据入库异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public void GetTradeData()
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ MpMainModels2.WebCMSEntities db = new MpMainModels2.WebCMSEntities();
|
|
|
+ List<string> orderNos = db.ConsumerOrders.Select(m => m.OrderNo).ToList();
|
|
|
+ List<MpMainModels2.HdOrderTmp> orders = db.HdOrderTmp.Where(m => !orderNos.Contains(m.OrderNo)).ToList();
|
|
|
+ if(orders.Count > 1)
|
|
|
+ {
|
|
|
+ foreach (var order in orders)
|
|
|
+ {
|
|
|
+ var MerchantNo = order.MerNo; // 商户号
|
|
|
+ var BaseNo = order.SnNo; // 设备号
|
|
|
+ var DeviceKind = order.DeviceKind; // 终端类型
|
|
|
+ var OrderNo = order.OrderNo; // 订单号
|
|
|
+ var PayWay = order.PayMode; // 支付方式(微信 支付宝)
|
|
|
+ var TradeType = order.TradeType; // 交易类型
|
|
|
+ var TradeAmount = order.TradeAmount; // 交易金额
|
|
|
+ var TradeFee = order.TradeFee; // 交易手续费
|
|
|
+ var TradeDate = order.TradeTime; // 交易时间
|
|
|
+ var TradeCycle = order.SettleDuration; // 结算周期
|
|
|
+
|
|
|
+ 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);
|
|
|
+
|
|
|
+ function.WriteLog("OrderNo:" + OrderNo, "获取好哒FTP文件交易数据");
|
|
|
+ function.WriteLog("MerchantNo:" + MerchantNo, "获取好哒FTP文件交易数据");
|
|
|
+
|
|
|
+ var PayMode = 0;
|
|
|
+ if (PayWay.Contains("支付宝")) PayMode = 1;
|
|
|
+ if (PayWay.Contains("微信")) PayMode = 2;
|
|
|
+
|
|
|
+ var merchantAddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.MchtNo == MerchantNo) ?? new MpMainModels2.MerchantAddInfo();
|
|
|
+ if (merchantAddInfo.Id > 0)
|
|
|
+ {
|
|
|
+ function.WriteLog("找到商户", "获取好哒FTP文件交易数据");
|
|
|
+ var merchantInfo = db.MerchantInfo.FirstOrDefault(m => m.Id == merchantAddInfo.Id) ?? new MpMainModels2.MerchantInfo();
|
|
|
+ if(merchantInfo.IsAct == 0)
|
|
|
+ {
|
|
|
+ merchantInfo.IsAct = 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ function.WriteLog("订单号不存在,开始入库", "获取好哒FTP文件交易数据");
|
|
|
+ decimal FeeRate = decimal.Parse(function.CheckNum(merchantAddInfo.FeeRate)) * 100;
|
|
|
+ var query = db.ConsumerOrders.Add(new MpMainModels2.ConsumerOrders()
|
|
|
+ {
|
|
|
+ Status = 1,
|
|
|
+ CreateDate = DateTime.Parse(TradeDate),
|
|
|
+ UpdateDate = DateTime.Parse(TradeDate),
|
|
|
+ SnNo = BaseNo,
|
|
|
+ PayMoney = TradeAmount,
|
|
|
+ PayMode = PayMode,
|
|
|
+ SeoTitle = OrderNo,
|
|
|
+ OrderNo = OrderNo,
|
|
|
+ MerchantId = merchantAddInfo.Id,
|
|
|
+ UserId = merchantInfo.UserId,
|
|
|
+ SeoKeyword = merchantAddInfo.CybMakerCode,
|
|
|
+ Sort = (int)FeeRate,
|
|
|
+ TradePayNo = MerchantNo,
|
|
|
+ }).Entity;
|
|
|
+ db.SaveChanges();
|
|
|
+ function.WriteLog("入库完毕", "获取好哒FTP文件交易数据");
|
|
|
+
|
|
|
+ //推送MQ给创业帮
|
|
|
+ if (merchantAddInfo.BrandId == 1)
|
|
|
+ {
|
|
|
+ if(!string.IsNullOrEmpty(merchantAddInfo.CybMakerCode))
|
|
|
+ {
|
|
|
+ SortedList<string, string> obj = new SortedList<string, string>();
|
|
|
+ obj.Add("create_time", TradeDate);
|
|
|
+ obj.Add("sn", BaseNo);
|
|
|
+ obj.Add("pay_money", TradeAmount.ToString());
|
|
|
+ obj.Add("pay_mode", PayMode.ToString());
|
|
|
+ obj.Add("order_no", OrderNo);
|
|
|
+ obj.Add("merch_no", merchantAddInfo.MchtNo);
|
|
|
+ obj.Add("maker_code", merchantAddInfo.CybMakerCode);
|
|
|
+ PushHelper.Instance.Do(obj);
|
|
|
+ }
|
|
|
+ OrderMessageHelper.SendOrderMsg(query);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ db.Dispose();
|
|
|
function.WriteLog("结束\n\n\n", "获取好哒FTP文件数据异常");
|
|
|
}
|
|
|
catch (WebException ex)
|