Pārlūkot izejas kodu

统计交易额区分扶持期稳定期

lichunlei 3 gadi atpakaļ
vecāks
revīzija
35542da993
1 mainītis faili ar 62 papildinājumiem un 50 dzēšanām
  1. 62 50
      AppStart/Helper/StatService.cs

+ 62 - 50
AppStart/Helper/StatService.cs

@@ -1167,23 +1167,28 @@ namespace MySystem
         // 每天统计头一天的交易额
         public void StartEverDay(string date)
         {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
-            // DateTime check = DateTime.Parse("2022-03-11");
-            // while (check <= end)
+            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();            
+            // if(DateTime.Now.Day == 2)
             // {
-            //     Thread th = new Thread(StatTradeAmountEverDay);
-            //     th.IsBackground = true;
-            //     th.Start(check.ToString("yyyy-MM-dd"));
-            //     check = check.AddDays(1);
+            //     OtherMySqlConn.op("update Users set ThisMonthTrade=0 where ThisMonthTrade>0");
             // }
-            if(DateTime.Now.Day == 2)
+            // Thread th = new Thread(StatTradeAmountEverDay);
+            // th.IsBackground = true;
+            // th.Start(date);
+            Thread th = new Thread(StartEverDayDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        public void StartEverDayDo()
+        {
+            DateTime end = DateTime.Parse("2022-06-01 00:00:00");
+            DateTime check = DateTime.Parse("2022-03-11");
+            while (check <= end)
             {
-                OtherMySqlConn.op("update Users set ThisMonthTrade=0 where ThisMonthTrade>0");
+                StatTradeAmountEverDay(check.ToString("yyyy-MM-dd"));
+                Thread.Sleep(1000);
+                check = check.AddDays(1);
             }
-            Thread th = new Thread(StatTradeAmountEverDay);
-            th.IsBackground = true;
-            th.Start(date);
         }
         public void StatTradeAmountEverDay(object sender)
         {
@@ -1196,7 +1201,7 @@ namespace MySystem
                 string TradeMonth = TradeDate.Substring(0, 6);
                 string start = date + " 00:00:00";
                 string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
+                string startId = "0";
                 List<string> uids = new List<string>();
                 DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
                 if (startDt.Rows.Count > 0)
@@ -1204,30 +1209,26 @@ namespace MySystem
                     startId = startDt.Rows[0][0].ToString();
                 }
                 function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
+                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
                 function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
                 foreach (DataRow userDr in userDt.Rows)
                 {
                     int UserId = int.Parse(userDr["Id"].ToString());
                     string ParentNav = userDr["ParentNav"].ToString();
                     function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
+                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,MerHelpFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag,MerHelpFlag");
                     function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
                     foreach (DataRow selfDr in selfdt.Rows)
                     {
                         int BrandId = int.Parse(selfDr["BrandId"].ToString());
                         int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
                         int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
+                        int MerHelpFlag = int.Parse(selfDr["MerHelpFlag"].ToString());
+                        decimal TradeAmount = decimal.Parse(selfDr[4].ToString());
+                        TradeDaySummary selfStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
                         if (selfStat == null)
                         {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                            selfStat = db.TradeDaySummary.Add(new TradeDaySummary()
                             {
                                 UserId = UserId,
                                 TradeMonth = TradeMonth,
@@ -1240,23 +1241,28 @@ namespace MySystem
                         }
                         if (BankCardType == 0)
                         {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
+                            if(MerHelpFlag == 1)
+                            {
+                                selfStat.HelpDirectDebitTradeAmt += TradeAmount;
+                            }
+                            else
+                            {
+                                selfStat.NotHelpDirectDebitTradeAmt += TradeAmount;
+                            }
                         }
                         else if (BankCardType != 0)
                         {
-                            selfStat.DirectTradeAmt += TradeAmount;
+                            if(MerHelpFlag == 1)
+                            {
+                                selfStat.HelpDirectTradeAmt += TradeAmount;
+                            }
+                            else
+                            {
+                                selfStat.NotHelpDirectTradeAmt += TradeAmount;
+                            }
                         }
                         db.SaveChanges();
                     }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
                     if (!string.IsNullOrEmpty(ParentNav))
                     {
                         ParentNav += "," + UserId + ",";
@@ -1268,18 +1274,19 @@ namespace MySystem
                                 uids.Add(NavUserIdString + start);
                                 int NavUserId = int.Parse(NavUserIdString);
                                 function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
+                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,MerHelpFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag,MerHelpFlag");
                                 function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
                                 foreach (DataRow teamDr in teamDt.Rows)
                                 {
                                     int BrandId = int.Parse(teamDr["BrandId"].ToString());
                                     int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
                                     int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
+                                    int MerHelpFlag = int.Parse(teamDr["MerHelpFlag"].ToString());
+                                    decimal TradeAmount = decimal.Parse(teamDr[4].ToString());
+                                    TradeDaySummary teamStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
                                     if (teamStat == null)
                                     {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
+                                        teamStat = db.TradeDaySummary.Add(new TradeDaySummary()
                                         {
                                             UserId = NavUserId,
                                             TradeMonth = TradeMonth,
@@ -1292,24 +1299,29 @@ namespace MySystem
                                     }
                                     if (BankCardType == 0)
                                     {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
+                                        if(MerHelpFlag == 1)
+                                        {
+                                            teamStat.HelpNonDirectDebitTradeAmt += TradeAmount;
+                                        }
+                                        else
+                                        {
+                                            teamStat.NotHelpNonDirectDebitTradeAmt += TradeAmount;
+                                        }
                                     }
                                     else if (BankCardType != 0)
                                     {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
+                                        if(MerHelpFlag == 1)
+                                        {
+                                            teamStat.HelpNonDirectTradeAmt += TradeAmount;
+                                        }
+                                        else
+                                        {
+                                            teamStat.NotHelpNonDirectTradeAmt += TradeAmount;
+                                        }
                                     }
                                     db.SaveChanges();
                                     OtherMySqlConn.op("update Users set ThisMonthTrade=ThisMonthTrade+"+TradeAmount+" where Id=" + NavUserId);
                                 }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
                             }
                         }
                     }