|
|
@@ -55,7 +55,7 @@ namespace MySystem
|
|
|
Thread.Sleep(2000);
|
|
|
GetDepositData();
|
|
|
Thread.Sleep(60000);
|
|
|
- SaveTradeData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"));
|
|
|
+ SaveTradeData(DateTime.Now.AddDays(-1).ToString("yyyyMMdd"), true);
|
|
|
}
|
|
|
}
|
|
|
Thread.Sleep(1800000);
|
|
|
@@ -433,7 +433,7 @@ namespace MySystem
|
|
|
string content = RedisDbconn.Instance.RPop<string>("ListenTradeDataQueue");
|
|
|
if (!string.IsNullOrEmpty(content))
|
|
|
{
|
|
|
- SaveTradeData(content);
|
|
|
+ SaveTradeData(content, true);
|
|
|
Thread.Sleep(2000);
|
|
|
}
|
|
|
else
|
|
|
@@ -442,7 +442,7 @@ namespace MySystem
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- public void SaveTradeData(string Date)
|
|
|
+ public void SaveTradeData(string Date, bool IsRedis = false)
|
|
|
{
|
|
|
// 要下载的文件路径
|
|
|
string filePath = "/haoda-trade/" + Date + ".csv";
|
|
|
@@ -466,66 +466,36 @@ namespace MySystem
|
|
|
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;
|
|
|
function.WriteLog("数量:" + Date + ":" + DataList.Length, "好哒交易数据入库2");
|
|
|
+ int index = 0;
|
|
|
foreach (var DataListItem in DataList)
|
|
|
{
|
|
|
- var DataListInfo = DataListItem.Split(',');
|
|
|
-
|
|
|
- var MerchantNo = ""; // 商户号
|
|
|
- var BaseNo = ""; // 设备号
|
|
|
- var DeviceKind = ""; // 终端类型
|
|
|
- var OrderNo = ""; // 订单号
|
|
|
- var PayWay = ""; // 支付方式(微信 支付宝)
|
|
|
- var TradeType = ""; // 交易类型
|
|
|
- var TradeAmount = ""; // 交易金额
|
|
|
- var TradeFee = ""; // 交易手续费
|
|
|
- var TradeDate = ""; // 交易时间
|
|
|
- var TradeCycle = ""; // 结算周期
|
|
|
-
|
|
|
- MerchantNo = DataListInfo[0];
|
|
|
- BaseNo = DataListInfo[1];
|
|
|
- DeviceKind = DataListInfo[2];
|
|
|
- OrderNo = DataListInfo[3];
|
|
|
- PayWay = DataListInfo[4];
|
|
|
- TradeType = DataListInfo[5];
|
|
|
- TradeAmount = DataListInfo[6];
|
|
|
- TradeFee = DataListInfo[7];
|
|
|
- TradeDate = DataListInfo[8];
|
|
|
- TradeCycle = DataListInfo[9];
|
|
|
-
|
|
|
- if (!orderNos.Contains(OrderNo) && !chkOrderNos.Contains(OrderNo))
|
|
|
+ if(IsRedis)
|
|
|
{
|
|
|
- index += 1;
|
|
|
- function.WriteLog(DateTime.Now.ToString() + ":" + OrderNo, "好哒交易数据入库2");
|
|
|
- chkOrderNos.Add(OrderNo);
|
|
|
- db.HdOrderTmp.Add(new MpMainModels2.HdOrderTmp()
|
|
|
+ if(SaveTradeDataOneReady(db, DataListItem))
|
|
|
{
|
|
|
- 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 % 50 == 0)
|
|
|
+ index += 1;
|
|
|
+ }
|
|
|
+ if(index % 200 == 0 && index > 0)
|
|
|
{
|
|
|
+ index = 0;
|
|
|
db.SaveChanges();
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RedisDbconn.Instance.AddList("ListenTradeDataByOneQueue", DataListItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(IsRedis)
|
|
|
+ {
|
|
|
+ index = 0;
|
|
|
+ db.SaveChanges();
|
|
|
}
|
|
|
- db.SaveChanges();
|
|
|
- function.WriteLog("入库数:" + Date + ":" + index, "好哒交易数据入库2");
|
|
|
}
|
|
|
db.Dispose();
|
|
|
}
|
|
|
@@ -542,6 +512,109 @@ namespace MySystem
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ public void StartTradeListenByOne()
|
|
|
+ {
|
|
|
+ //每天凌晨执行获取好哒FTP昨日交易数据
|
|
|
+ Thread th2 = new Thread(ListenTradeDataByOneReady);
|
|
|
+ th2.IsBackground = true;
|
|
|
+ th2.Start();
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 获取好哒FTP昨日交易数据
|
|
|
+ /// </summary>
|
|
|
+ public void ListenTradeDataByOneReady()
|
|
|
+ {
|
|
|
+ int index = 0;
|
|
|
+ MpMainModels2.WebCMSEntities db = new MpMainModels2.WebCMSEntities();
|
|
|
+ bool dbConn = true;
|
|
|
+ while (true)
|
|
|
+ {
|
|
|
+ string content = RedisDbconn.Instance.RPop<string>("ListenTradeDataByOneQueue");
|
|
|
+ if (!string.IsNullOrEmpty(content))
|
|
|
+ {
|
|
|
+ if(!dbConn)
|
|
|
+ {
|
|
|
+ db = new MpMainModels2.WebCMSEntities();
|
|
|
+ dbConn = true;
|
|
|
+ }
|
|
|
+ if(SaveTradeDataOneReady(db, content))
|
|
|
+ {
|
|
|
+ index += 1;
|
|
|
+ }
|
|
|
+ if(index % 200 == 0 && index > 0)
|
|
|
+ {
|
|
|
+ index = 0;
|
|
|
+ db.SaveChanges();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ index = 0;
|
|
|
+ if(dbConn)
|
|
|
+ {
|
|
|
+ db.SaveChanges();
|
|
|
+ db.Dispose();
|
|
|
+ dbConn = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public bool SaveTradeDataOneReady(MpMainModels2.WebCMSEntities db, string content)
|
|
|
+ {
|
|
|
+ bool result = false;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var DataListInfo = content.Split(',');
|
|
|
+
|
|
|
+ var MerchantNo = ""; // 商户号
|
|
|
+ var BaseNo = ""; // 设备号
|
|
|
+ var DeviceKind = ""; // 终端类型
|
|
|
+ var OrderNo = ""; // 订单号
|
|
|
+ var PayWay = ""; // 支付方式(微信 支付宝)
|
|
|
+ var TradeType = ""; // 交易类型
|
|
|
+ var TradeAmount = ""; // 交易金额
|
|
|
+ var TradeFee = ""; // 交易手续费
|
|
|
+ var TradeDate = ""; // 交易时间
|
|
|
+ var TradeCycle = ""; // 结算周期
|
|
|
+
|
|
|
+ MerchantNo = DataListInfo[0];
|
|
|
+ BaseNo = DataListInfo[1];
|
|
|
+ DeviceKind = DataListInfo[2];
|
|
|
+ OrderNo = DataListInfo[3];
|
|
|
+ PayWay = DataListInfo[4];
|
|
|
+ TradeType = DataListInfo[5];
|
|
|
+ TradeAmount = DataListInfo[6];
|
|
|
+ TradeFee = DataListInfo[7];
|
|
|
+ TradeDate = DataListInfo[8];
|
|
|
+ TradeCycle = DataListInfo[9];
|
|
|
+
|
|
|
+ if(!db.HdOrderTmp.Any(m => m.OrderNo == OrderNo))
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + OrderNo, "好哒交易数据入库new");
|
|
|
+ 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,
|
|
|
+ });
|
|
|
+ result = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch(Exception ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "好哒交易数据入库new异常");
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
public void StartGetTradeData()
|
|
|
{
|
|
|
//每天凌晨执行获取好哒FTP昨日交易数据
|