|
|
@@ -55,110 +55,27 @@ namespace MySystem
|
|
|
string endDate = jsonObj["EndDate"].ToString();
|
|
|
function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "重置商户交易额日志");
|
|
|
WebCMSEntities db = new WebCMSEntities();
|
|
|
- string conn = Library.ConfigurationManager.AppSettings["StatSqlConnStr2"].ToString();
|
|
|
- KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
|
|
|
- using (var tran = db.Database.BeginTransaction())
|
|
|
+ try
|
|
|
{
|
|
|
- try
|
|
|
+ for (DateTime start = DateTime.Parse(startDate.Substring(0, 4) + "-" + startDate.Substring(4, 2) + "-" + startDate.Substring(6, 2)); start <= DateTime.Parse(endDate.Substring(0, 4) + "-" + endDate.Substring(4, 2) + "-" + endDate.Substring(6, 2)); start = start.AddDays(1))
|
|
|
{
|
|
|
- DataTable selfDt = CustomerSqlConn.dtable("select MerchantId,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(PayMoney),count(Id),sum(MerchantActualAmount) from ConsumerOrders where MerchantId=" + merchantId + " and CreateDate>='" + startDate.Substring(0, 4) + "-" + startDate.Substring(4, 2) + "-" + startDate.Substring(6, 2) + " 00:00:00' and CreateDate<='" + endDate.Substring(0, 4) + "-" + endDate.Substring(4, 2) + "-" + endDate.Substring(6, 2) + " 23:59:59' group by MerchantId,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d')", AppConfig.Base.SqlConn2);
|
|
|
- if (selfDt.Rows.Count > 0)
|
|
|
- {
|
|
|
- function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "重置商户交易额日志");
|
|
|
- var ResetDate = "";
|
|
|
- bool check = false; //重置统计表数据开关
|
|
|
- decimal NonActAmounts = 0;
|
|
|
- decimal ActAmounts = 0;
|
|
|
- decimal AliPayInFactAmounts = 0;
|
|
|
- decimal WeChatInfactAmounts = 0;
|
|
|
- int OderCounts = 0;
|
|
|
- decimal InFactAmounts = 0;
|
|
|
- decimal TradeAmounts = 0;
|
|
|
- foreach (DataRow selfDr in selfDt.Rows)
|
|
|
- {
|
|
|
- int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
|
|
|
- int PayMode = int.Parse(selfDr["PayMode"].ToString());
|
|
|
- int IsAct = int.Parse(selfDr["IsAct"].ToString());
|
|
|
- string TradeDate = selfDr[3].ToString();
|
|
|
- decimal TradeAmount = decimal.Parse(selfDr[4].ToString());
|
|
|
- int TradeCount = int.Parse(selfDr[5].ToString());
|
|
|
- decimal ActualAmount = decimal.Parse(selfDr[6].ToString());
|
|
|
- string TradeMonth = TradeDate.Substring(0, 6);
|
|
|
- //商户交易额
|
|
|
- MerchantAmountSummay merchantStat = db.MerchantAmountSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
|
|
|
- if (merchantStat == null)
|
|
|
- {
|
|
|
- merchantStat = db.MerchantAmountSummay.Add(new MerchantAmountSummay()
|
|
|
- {
|
|
|
- MerchantId = MerchantId,
|
|
|
- TradeMonth = TradeMonth,
|
|
|
- TradeDate = TradeDate,
|
|
|
- PayMode = PayMode,
|
|
|
- IsAct = IsAct,
|
|
|
- }).Entity;
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- var LastDate = ResetDate; //上次重置时间
|
|
|
- if (ResetDate == "")
|
|
|
- {
|
|
|
- LastDate = TradeDate;
|
|
|
- }
|
|
|
- ResetDate = TradeDate; //覆盖重置时间
|
|
|
- if (LastDate == TradeDate)
|
|
|
- {
|
|
|
- OderCounts += TradeCount;
|
|
|
- TradeAmounts += TradeAmount;
|
|
|
- if (IsAct == 0) NonActAmounts += TradeAmount;
|
|
|
- if (IsAct == 1) ActAmounts += TradeAmount;
|
|
|
- if (PayMode == 1) AliPayInFactAmounts += ActualAmount;
|
|
|
- if (PayMode == 2) WeChatInfactAmounts += ActualAmount;
|
|
|
- if (IsAct == 1) InFactAmounts += TradeAmount;
|
|
|
- if (selfDt.Rows.Count == 1)
|
|
|
- {
|
|
|
- CustomerSqlConn.op("UPDATE MerchantTradeSummary" + LastDate + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + "", conn);
|
|
|
- CustomerSqlConn.op("UPDATE MerchantTradeSummaryList" + TradeMonth + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + " AND TradeDate='" + LastDate + "'", conn);
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- check = true;
|
|
|
- if (check)
|
|
|
- {
|
|
|
- if (check)
|
|
|
- {
|
|
|
- CustomerSqlConn.op("UPDATE MerchantTradeSummary" + LastDate + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + "", conn);
|
|
|
- CustomerSqlConn.op("UPDATE MerchantTradeSummaryList" + TradeMonth + " SET NonActAmount=" + NonActAmounts + ",ActAmount=" + ActAmounts + ",AliPayInFactAmount=" + AliPayInFactAmounts + ",WeChatInfactAmount=" + WeChatInfactAmounts + ",OderCount=" + OderCounts + ",InFactAmount=" + InFactAmounts + ",TradeAmount=" + TradeAmounts + " WHERE MerchantId=" + MerchantId + " AND TradeDate='" + LastDate + "'", conn);
|
|
|
- check = false;
|
|
|
- }
|
|
|
- }
|
|
|
- if (check == false)
|
|
|
- {
|
|
|
- OderCounts = TradeCount;
|
|
|
- TradeAmounts = TradeAmount;
|
|
|
- if (IsAct == 0) NonActAmounts = TradeAmount;
|
|
|
- if (IsAct == 1) ActAmounts = TradeAmount;
|
|
|
- if (PayMode == 1) AliPayInFactAmounts = ActualAmount;
|
|
|
- if (PayMode == 2) WeChatInfactAmounts = ActualAmount;
|
|
|
- if (IsAct == 1) InFactAmounts = TradeAmount;
|
|
|
- }
|
|
|
- }
|
|
|
- merchantStat.TradeAmount = TradeAmount;
|
|
|
- merchantStat.TradeCount = TradeCount;
|
|
|
- merchantStat.TotalActual = ActualAmount;
|
|
|
- db.SaveChanges();
|
|
|
- }
|
|
|
- }
|
|
|
- tran.Commit();
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- tran.Rollback();
|
|
|
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "重置商户交易额异常");
|
|
|
+ var date = start.ToString("yyyy-MM-dd");
|
|
|
+ CustomerSqlConn.op("delete from QrCodePlateStatServer2.MerchantTradeSummary" + date.Replace("-", "") + " where MerchantId=" + merchantId + " and TradeDate='" + date.Replace("-", "") + "'", AppConfig.Base.StatSqlConn2);
|
|
|
+ CustomerSqlConn.op("INSERT INTO QrCodePlateStatServer2.MerchantTradeSummary" + date.Replace("-", "") + " (MerchantId,TradeDate,TradeMonth,TradeAmount,InFactAmount,OderCount,WeChatInfactAmount,AliPayInFactAmount,ActAmount,NonActAmount) select MerchantId,DATE_FORMAT(CreateDate,'%Y%m%d') Date ,DATE_FORMAT(CreateDate,'%Y%m') Month,sum(PayMoney) TradeAmount,sum(MerchantActualAmount) InFactAmount,count(Id) Count,sum(if(PayMode=2,MerchantActualAmount,0)) WeChatInfactAmount,sum(if(PayMode=1,MerchantActualAmount,0)) AliPayInFactAmount,sum(if(IsAct=1,PayMoney,0)) ActAmount,sum(if(IsAct=0,PayMoney,0)) NonActAmount from ConsumerOrders where Status>0 AND MerchantId=" + merchantId + " AND CreateDate>='" + date + " 00:00:00' and CreateDate<='" + date + " 23:59:59' group by MerchantId,DATE_FORMAT(CreateDate,'%Y%m%d'),DATE_FORMAT(CreateDate,'%Y%m')", AppConfig.Base.SqlConn2);
|
|
|
+
|
|
|
+
|
|
|
+ CustomerSqlConn.op("delete from MerchantAmountSummay where MerchantId=" + merchantId + " and TradeDate='" + date.Replace("-", "") + "'", AppConfig.Base.SqlConn2);
|
|
|
+ CustomerSqlConn.op("INSERT INTO MerchantAmountSummay (PayMode,TotalActual,TradeAmount,TradeDate,TradeMonth,MerchantId,TradeCount,IsAct) select PayMode,sum(MerchantActualAmount) TotalActual,sum(PayMoney) TradeAmount,DATE_FORMAT(CreateDate,'%Y%m%d') TradeDate,DATE_FORMAT(CreateDate,'%Y%m') TradeMonth,MerchantId,count(Id) TradeCount,IsAct from ConsumerOrders where MerchantId=" + merchantId + " AND CreateDate>='" + date + " 00:00:00' and CreateDate<='" + date + " 23:59:59' group by MerchantId,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),DATE_FORMAT(CreateDate,'%Y%m')", AppConfig.Base.SqlConn2);
|
|
|
+
|
|
|
+
|
|
|
+ CustomerSqlConn.op("delete from QrCodePlateStatServer2.MerchantTradeSummaryList" + date.Replace("-", "").Substring(0, 6) + " where MerchantId=" + merchantId + " and TradeDate='" + date.Replace("-", "") + "'", AppConfig.Base.StatSqlConn2);
|
|
|
+ CustomerSqlConn.op("INSERT INTO QrCodePlateStatServer2.MerchantTradeSummaryList" + date.Replace("-", "").Substring(0, 6) + " (MerchantId,TradeDate,TradeMonth,TradeAmount,InFactAmount,OderCount,WeChatInfactAmount,AliPayInFactAmount,ActAmount,NonActAmount) select MerchantId,DATE_FORMAT(CreateDate,'%Y%m%d') Date ,DATE_FORMAT(CreateDate,'%Y%m') Month,sum(PayMoney) TradeAmount,sum(MerchantActualAmount) InFactAmount,count(Id) Count,sum(if(PayMode=2,MerchantActualAmount,0)) WeChatInfactAmount,sum(if(PayMode=1,MerchantActualAmount,0)) AliPayInFactAmount,sum(if(IsAct=1,PayMoney,0)) ActAmount,sum(if(IsAct=0,PayMoney,0)) NonActAmount from ConsumerOrders where Status>0 AND MerchantId=" + merchantId + " AND CreateDate>='" + date + " 00:00:00' and CreateDate<='" + date + " 23:59:59' group by MerchantId,DATE_FORMAT(CreateDate,'%Y%m%d'),DATE_FORMAT(CreateDate,'%Y%m')", AppConfig.Base.SqlConn2);
|
|
|
}
|
|
|
}
|
|
|
- db.Dispose();
|
|
|
- maindb.Dispose();
|
|
|
- function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "重置商户交易额日志");
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "重置商户交易额异常");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public void StartResetSnDo()
|