Browse Source

统计交易额

lcl 11 months ago
parent
commit
bf1d79a9ab
3 changed files with 594 additions and 83 deletions
  1. 510 0
      AppStart/Helper/StatNew2.cs
  2. 82 83
      AppStart/Helper/StatService2.cs
  3. 2 0
      Startup.cs

+ 510 - 0
AppStart/Helper/StatNew2.cs

@@ -0,0 +1,510 @@
+using System;
+using System.Collections.Generic;
+using Library;
+using LitJson;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using MySystem.PxcModels2;
+
+namespace MySystem
+{
+    public class StatNew2
+    {
+        public readonly static StatNew2 Instance = new StatNew2();
+        private StatNew2()
+        { }
+
+
+
+
+
+
+        // 统计交易额V2
+        public void Start()
+        {
+            Thread th = new Thread(StartDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        public void StartDo()
+        {
+            while (true)
+            {
+                if(DateTime.Now.Hour >= 3 && RedisDbconn.Instance.Get<string>("StatServerStatus") == "1")
+                {
+                    StatTradeAmount(DateTime.Now.ToString("yyyy-MM-dd"));
+                }
+                Thread.Sleep(2000);
+            }
+        }
+
+        public void StartReset()
+        {
+            Thread th = new Thread(StartResetDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        public void StartResetDo()
+        {
+            while (true)
+            {
+                string date = RedisDbconn.Instance.RPop<string>("StatNew2Queue");
+                if(!string.IsNullOrEmpty(date))
+                {
+                    StatTradeAmount(date);
+                    Thread.Sleep(2000);
+                }
+                else
+                {
+                    Thread.Sleep(60000);
+                }
+            }
+        }
+
+        public void StatTradeAmount(string today)
+        {
+            string date = today.Replace("-", "");
+            WebCMSEntities db = new WebCMSEntities();
+            KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
+            List<UserAmountSummary> userstat = new List<UserAmountSummary>();
+            List<MerchantAmountSummay> merstat = new List<MerchantAmountSummay>();
+            List<QrCodeAmountSummay> snstat = new List<QrCodeAmountSummay>();
+            try
+            {
+                string start = today + " 00:00:00";
+                string end = today + " 23:59:59";
+                function.WriteLog("开始时间:" + start, "统计商户和创客交易额日志2");
+                DataTable idsDt = CustomerSqlConn.dtable("select distinct UserId from ConsumerOrders where CreateDate>='" + start + "' and CreateDate<='" + end + "' and Status>0", AppConfig.Base.SqlConn2);
+                function.WriteLog("查询条数:" + idsDt.Rows.Count, "统计商户和创客交易额日志2");
+                function.WriteLog("1--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
+                if(idsDt.Rows.Count > 0)
+                {
+                    List<int> idlist = new List<int>();
+                    foreach (DataRow idsDr in idsDt.Rows)
+                    {
+                        idlist.Add(int.Parse(function.CheckInt(idsDr["UserId"].ToString())));
+                    }
+                    List<KxsMainModels.Users> users = maindb.Users.Where(m => idlist.Contains(m.Id)).ToList();
+                    DataTable selfDt = CustomerSqlConn.dtable("select UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(PayMoney),count(Id),sum(MaxDivi),sum(MerchantActualAmount),Sort from ConsumerOrders where CreateDate>='" + start + "' and CreateDate<='" + end + "' and Status>0 group by UserId,MerchantId,SnNo,PayMode,IsAct,DATE_FORMAT(CreateDate,'%Y%m%d'),Sort", AppConfig.Base.SqlConn2);
+                    if (selfDt.Rows.Count > 0)
+                    {
+                        foreach (DataRow selfDr in selfDt.Rows)
+                        {
+                            int UserId = int.Parse(selfDr["UserId"].ToString());
+                            KxsMainModels.Users user = users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
+                            string ParentNav = user.ParentNav;
+                            int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
+                            int PayMode = int.Parse(selfDr["PayMode"].ToString());
+                            int IsAct = int.Parse(selfDr["IsAct"].ToString());
+                            string SnNo = selfDr["SnNo"].ToString();
+                            string TradeDate = selfDr[5].ToString();
+                            decimal TradeAmount = decimal.Parse(selfDr[6].ToString());
+                            int TradeCount = int.Parse(selfDr[7].ToString());
+                            decimal MaxDivi = decimal.Parse(selfDr[8].ToString());
+                            decimal ActualAmount = decimal.Parse(selfDr[9].ToString());
+                            string TradeMonth = TradeDate.Substring(0, 6);
+                            int Sort = int.Parse(selfDr["Sort"].ToString());
+
+                            //创客交易额
+                            UserAmountSummary selfStat = userstat.FirstOrDefault(m => m.UserId == UserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "self" && m.Sort == Sort);
+                            if (selfStat == null)
+                            {
+                                userstat.Add(new UserAmountSummary()
+                                {
+                                    UserId = UserId,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    PayMode = PayMode,
+                                    IsAct = IsAct,
+                                    SeoTitle = "self",
+                                    Sort = Sort,
+                                    TotalAmount = TradeAmount,
+                                    TradeCount = TradeCount,
+                                });
+                            }
+                            else
+                            {
+                                selfStat.TotalAmount += TradeAmount;
+                                selfStat.TradeCount += TradeCount;
+                            }
+                            ParentNav += "," + UserId + ",";
+                            if (!string.IsNullOrEmpty(ParentNav))
+                            {
+                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                foreach (string NavUserIdString in ParentNavList)
+                                {
+                                    int NavUserId = int.Parse(NavUserIdString);
+                                    UserAmountSummary teamStat = userstat.FirstOrDefault(m => m.UserId == NavUserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "team" && m.Sort == Sort);
+                                    if (teamStat == null)
+                                    {
+                                        userstat.Add(new UserAmountSummary()
+                                        {
+                                            UserId = NavUserId,
+                                            TradeMonth = TradeMonth,
+                                            TradeDate = TradeDate,
+                                            PayMode = PayMode,
+                                            IsAct = IsAct,
+                                            SeoTitle = "team",
+                                            Sort = Sort,
+                                            TotalAmount = TradeAmount,
+                                            TradeCount = TradeCount,
+                                        });
+                                    }
+                                    else
+                                    {
+                                        teamStat.TotalAmount += TradeAmount;
+                                        teamStat.TradeCount += TradeCount;
+                                    }
+                                }
+                            }
+
+                            //商户交易额
+                            MerchantAmountSummay merchantStat = merstat.FirstOrDefault(m => m.MerchantId == MerchantId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
+                            if (merchantStat == null)
+                            {
+                                merstat.Add(new MerchantAmountSummay()
+                                {
+                                    MerchantId = MerchantId,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    PayMode = PayMode,
+                                    IsAct = IsAct,
+                                    TradeAmount = TradeAmount,
+                                    TradeCount = TradeCount,
+                                    TotalActual = ActualAmount,
+                                });
+                            }
+                            else
+                            {
+                                merchantStat.TradeAmount += TradeAmount;
+                                merchantStat.TradeCount += TradeCount;
+                                merchantStat.TotalActual += ActualAmount;
+                            }
+
+                            //码牌交易额
+                            QrCodeAmountSummay qrcode = snstat.FirstOrDefault(m => m.SnNo == SnNo && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
+                            if (qrcode == null)
+                            {
+                                snstat.Add(new QrCodeAmountSummay()
+                                {
+                                    SnNo = SnNo,
+                                    TradeMonth = TradeMonth,
+                                    TradeDate = TradeDate,
+                                    PayMode = PayMode,
+                                    IsAct = IsAct,
+                                    TradeAmount = TradeAmount,
+                                    TradeCount = TradeCount,
+                                    TotalActual = ActualAmount,
+                                });
+                            }
+                            else
+                            {
+                                qrcode.TradeAmount += TradeAmount;
+                                qrcode.TradeCount += TradeCount;
+                                qrcode.TotalActual += ActualAmount;
+                            }
+                        }
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户和创客交易额异常");
+            }
+            
+            using (var tran = db.Database.BeginTransaction())
+            {
+                try
+                {
+                    List<UserAmountSummary> userlist = db.UserAmountSummary.Where(m => m.TradeDate == date).ToList();
+                    List<MerchantAmountSummay> merlist = db.MerchantAmountSummay.Where(m => m.TradeDate == date).ToList();
+                    List<QrCodeAmountSummay> snlist = db.QrCodeAmountSummay.Where(m => m.TradeDate == date).ToList();
+
+                    foreach(UserAmountSummary substat in userstat)
+                    {
+                        function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(substat));
+                        UserAmountSummary selfStat = userlist.FirstOrDefault(m => m.UserId == substat.UserId && m.IsAct == substat.IsAct && m.TradeMonth == substat.TradeMonth && m.TradeDate == substat.TradeDate && m.PayMode == substat.PayMode && m.SeoTitle == substat.SeoTitle && m.Sort == substat.Sort);
+                        if (selfStat == null)
+                        {
+                            db.UserAmountSummary.Add(new UserAmountSummary()
+                            {
+                                UserId = substat.UserId,
+                                TradeMonth = substat.TradeMonth,
+                                TradeDate = substat.TradeDate,
+                                PayMode = substat.PayMode,
+                                IsAct = substat.IsAct,
+                                SeoTitle = substat.SeoTitle,
+                                Sort = substat.Sort,
+                                TotalAmount = substat.TotalAmount,
+                                TradeCount = substat.TradeCount,
+                            });
+                        }
+                        else
+                        {
+                            UserAmountSummary edit = db.UserAmountSummary.FirstOrDefault(m => m.Id == selfStat.Id);
+                            if(edit != null)
+                            {
+                                edit.TotalAmount = substat.TotalAmount;
+                                edit.TradeCount = substat.TradeCount;
+                            }
+                        }
+                    }
+                    db.SaveChanges();
+
+                    foreach(MerchantAmountSummay substat in merstat)
+                    {
+                        function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(substat));
+                        MerchantAmountSummay merchantStat = merlist.FirstOrDefault(m => m.MerchantId == substat.MerchantId && m.IsAct == substat.IsAct && m.TradeMonth == substat.TradeMonth && m.TradeDate == substat.TradeDate && m.PayMode == substat.PayMode);
+                        if (merchantStat == null)
+                        {
+                            db.MerchantAmountSummay.Add(new MerchantAmountSummay()
+                            {
+                                MerchantId = substat.MerchantId,
+                                TradeMonth = substat.TradeMonth,
+                                TradeDate = substat.TradeDate,
+                                PayMode = substat.PayMode,
+                                IsAct = substat.IsAct,
+                                TradeAmount = substat.TradeAmount,
+                                TradeCount = substat.TradeCount,
+                                TotalActual = substat.TotalActual,
+                            });
+                        }
+                        else
+                        {
+                            MerchantAmountSummay edit = db.MerchantAmountSummay.FirstOrDefault(m => m.Id == merchantStat.Id);
+                            if(edit != null)
+                            {
+                                edit.TradeAmount = substat.TradeAmount;
+                                edit.TradeCount = substat.TradeCount;
+                                edit.TotalActual = substat.TotalActual;
+                            }
+                        }
+                    }
+                    db.SaveChanges();
+
+                    foreach(QrCodeAmountSummay substat in snstat)
+                    {
+                        function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(substat));
+                        QrCodeAmountSummay qrcode = snlist.FirstOrDefault(m => m.SnNo == substat.SnNo && m.IsAct == substat.IsAct && m.TradeMonth == substat.TradeMonth && m.TradeDate == substat.TradeDate && m.PayMode == substat.PayMode);
+                        if (qrcode == null)
+                        {
+                            db.QrCodeAmountSummay.Add(new QrCodeAmountSummay()
+                            {
+                                SnNo = substat.SnNo,
+                                TradeMonth = substat.TradeMonth,
+                                TradeDate = substat.TradeDate,
+                                PayMode = substat.PayMode,
+                                IsAct = substat.IsAct,
+                                TradeAmount = substat.TradeAmount,
+                                TradeCount = substat.TradeCount,
+                                TotalActual = substat.TotalActual,
+                            });
+                        }
+                        else
+                        {
+                            QrCodeAmountSummay edit = db.QrCodeAmountSummay.FirstOrDefault(m => m.Id == qrcode.Id);
+                            if(edit != null)
+                            {
+                                edit.TradeAmount = substat.TradeAmount;
+                                edit.TradeCount = substat.TradeCount;
+                                edit.TotalActual = substat.TotalActual;
+                            }
+                        }
+                    }
+                    db.SaveChanges();
+
+                    tran.Commit();
+                }
+                catch (Exception ex)
+                {
+                    tran.Rollback();
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户和创客交易额入库异常");
+                }
+            }
+
+            db.Dispose();
+            maindb.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "统计商户和创客交易额日志2");
+        }
+
+        // 统计创客激活数
+        public void StartPosActNum()
+        {
+            Thread th = new Thread(StartPosActNumFor);
+            th.IsBackground = true;
+            th.Start();
+        }
+        public void StartPosActNumFor()
+        {
+            while (true)
+            {
+                if(DateTime.Now.Hour >= 3 && RedisDbconn.Instance.Get<string>("StatServerStatus") == "1")
+                {
+                    StartPosActNumEverTime();
+                }
+                Thread.Sleep(20000);
+            }
+        }
+        public void StartPosActNumEverTime()
+        {
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "实时执行创客激活数日志");
+            WebCMSEntities db = new WebCMSEntities();
+            KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
+            try
+            {
+                DataTable idsDt = CustomerSqlConn.dtable("select Id from MerchantInfo where ActStat=0 and (Status=2 or QueryCount=2) and BrandId=0 and UserId>0 and UpdateDate is not null limit 50", AppConfig.Base.SqlConn2);
+                if(idsDt.Rows.Count > 0)
+                {
+                    string ids = "";
+                    foreach (DataRow idsDr in idsDt.Rows)
+                    {
+                        ids += idsDr["Id"].ToString() + ",";
+                    }
+                    DataTable userDt = CustomerSqlConn.dtable("select UserId,DATE_FORMAT(UpdateDate,'%Y%m%d'),count(Id) from MerchantInfo where Id in (" + ids.TrimEnd(',') + ") group by UserId,DATE_FORMAT(UpdateDate,'%Y%m%d')", AppConfig.Base.SqlConn2);
+                    if (userDt.Rows.Count > 0)
+                    {
+                        function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "实时执行创客激活数日志");
+                        foreach (DataRow userDr in userDt.Rows)
+                        {
+                            int UserId = int.Parse(userDr["UserId"].ToString());
+                            string TradeDate = userDr[1].ToString();
+                            int ActCount = int.Parse(function.CheckInt(userDr[2].ToString()));
+                            string TradeMonth = TradeDate.Substring(0, 6);
+                            string date = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2);
+                            string start = date + " 00:00:00";
+                            string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                            KxsMainModels.Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
+                            string ParentNav = user.ParentNav;
+                            UserTradeMonthSummary selfStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "self");
+                            if (selfStat == null)
+                            {
+                                selfStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
+                                {
+                                    UserId = UserId,
+                                    TradeMonth = TradeMonth,
+                                    SeoKeyword = TradeDate,
+                                    SeoTitle = "self",
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                            selfStat.ActiveBuddyMerStatus += ActCount;
+                            ParentNav += "," + UserId + ",";
+                            if (!string.IsNullOrEmpty(ParentNav))
+                            {
+                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                foreach (string NavUserIdString in ParentNavList)
+                                {
+                                    int NavUserId = int.Parse(NavUserIdString);
+                                    UserTradeMonthSummary teamStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "team");
+                                    if (teamStat == null)
+                                    {
+                                        teamStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
+                                        {
+                                            UserId = NavUserId,
+                                            TradeMonth = TradeMonth,
+                                            SeoKeyword = TradeDate,
+                                            SeoTitle = "team",
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    teamStat.ActiveBuddyMerStatus += ActCount;
+                                }
+                            }
+                        }
+                        db.SaveChanges();
+                        CustomerSqlConn.op("update MerchantInfo set ActStat=1 where Id in (" + ids.TrimEnd(',') + ")", AppConfig.Base.SqlConn2);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "实时执行创客激活数异常");
+            }
+            db.Dispose();
+            maindb.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行创客激活数日志");
+        }
+
+
+        public void test()
+        {
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "实时执行创客激活数日志");
+            WebCMSEntities db = new WebCMSEntities();
+            KxsMainModels.WebCMSEntities maindb = new KxsMainModels.WebCMSEntities();
+            try
+            {
+                DataTable idsDt = CustomerSqlConn.dtable("select 646 Id", AppConfig.Base.SqlConn2);
+                if(idsDt.Rows.Count > 0)
+                {
+                    string ids = "";
+                    foreach (DataRow idsDr in idsDt.Rows)
+                    {
+                        ids += idsDr["Id"].ToString() + ",";
+                    }
+                    DataTable userDt = CustomerSqlConn.dtable("select UserId,DATE_FORMAT(SignDate,'%Y%m%d'),count(Id) from MerchantInfo where Id in (" + ids.TrimEnd(',') + ") group by UserId,DATE_FORMAT(SignDate,'%Y%m%d')", AppConfig.Base.SqlConn2);
+                    if (userDt.Rows.Count > 0)
+                    {
+                        function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "实时执行创客激活数日志");
+                        foreach (DataRow userDr in userDt.Rows)
+                        {
+                            int UserId = int.Parse(userDr["UserId"].ToString());
+                            string TradeDate = userDr[1].ToString();
+                            int ActCount = int.Parse(function.CheckInt(userDr[2].ToString()));
+                            string TradeMonth = TradeDate.Substring(0, 6);
+                            string date = TradeDate.Substring(0, 4) + "-" + TradeDate.Substring(4, 2) + "-" + TradeDate.Substring(6, 2);
+                            string start = date + " 00:00:00";
+                            string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
+                            KxsMainModels.Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new KxsMainModels.Users();
+                            string ParentNav = user.ParentNav;
+                            UserTradeMonthSummary selfStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "self");
+                            if (selfStat == null)
+                            {
+                                selfStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
+                                {
+                                    UserId = UserId,
+                                    TradeMonth = TradeMonth,
+                                    SeoKeyword = TradeDate,
+                                    SeoTitle = "self",
+                                }).Entity;
+                                db.SaveChanges();
+                            }
+                            selfStat.ActiveBuddyMerStatus += ActCount;
+                            ParentNav += "," + UserId + ",";
+                            if (!string.IsNullOrEmpty(ParentNav))
+                            {
+                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                foreach (string NavUserIdString in ParentNavList)
+                                {
+                                    int NavUserId = int.Parse(NavUserIdString);
+                                    UserTradeMonthSummary teamStat = db.UserTradeMonthSummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.SeoKeyword == TradeDate && m.SeoTitle == "team");
+                                    if (teamStat == null)
+                                    {
+                                        teamStat = db.UserTradeMonthSummary.Add(new UserTradeMonthSummary()
+                                        {
+                                            UserId = NavUserId,
+                                            TradeMonth = TradeMonth,
+                                            SeoKeyword = TradeDate,
+                                            SeoTitle = "team",
+                                        }).Entity;
+                                        db.SaveChanges();
+                                    }
+                                    teamStat.ActiveBuddyMerStatus += ActCount;
+                                }
+                            }
+                        }
+                        db.SaveChanges();
+                        CustomerSqlConn.op("update MerchantInfo set ActStat=1 where Id in (" + ids.TrimEnd(',') + ")", AppConfig.Base.SqlConn2);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "实时执行创客激活数异常");
+            }
+            db.Dispose();
+            maindb.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行创客激活数日志");
+        }
+    }
+}

+ 82 - 83
AppStart/Helper/StatService2.cs

@@ -90,75 +90,75 @@ namespace MySystem
 
                                 function.WriteLog("创客交易额", "统计商户和创客交易额日志2");
                                 //创客交易额
-                                UserAmountSummary selfStat = db.UserAmountSummary.FirstOrDefault(m => m.Id > 1190107 && m.UserId == UserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "self" && m.Sort == Sort);
-                                if (selfStat == null)
-                                {
-                                    selfStat = db.UserAmountSummary.Add(new UserAmountSummary()
-                                    {
-                                        UserId = UserId,
-                                        TradeMonth = TradeMonth,
-                                        TradeDate = TradeDate,
-                                        PayMode = PayMode,
-                                        IsAct = IsAct,
-                                        SeoTitle = "self",
-                                        Sort = Sort,
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                selfStat.TotalAmount += TradeAmount;
-                                selfStat.TradeCount += TradeCount;
-                                ParentNav += "," + UserId + ",";
-                                if (!string.IsNullOrEmpty(ParentNav))
-                                {
-                                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                    foreach (string NavUserIdString in ParentNavList)
-                                    {
-                                        int NavUserId = int.Parse(NavUserIdString);
-                                        UserAmountSummary teamStat = db.UserAmountSummary.FirstOrDefault(m => m.Id > 1190107 && m.UserId == NavUserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "team" && m.Sort == Sort);
-                                        if (teamStat == null)
-                                        {
-                                            teamStat = db.UserAmountSummary.Add(new UserAmountSummary()
-                                            {
-                                                UserId = NavUserId,
-                                                TradeMonth = TradeMonth,
-                                                TradeDate = TradeDate,
-                                                PayMode = PayMode,
-                                                IsAct = IsAct,
-                                                SeoTitle = "team",
-                                                Sort = Sort,
-                                            }).Entity;
-                                            db.SaveChanges();
-                                        }
-                                        teamStat.TotalAmount += TradeAmount;
-                                        teamStat.TradeCount += TradeCount;
-                                    }
-                                }
-                                db.SaveChanges();
+                                // UserAmountSummary selfStat = db.UserAmountSummary.FirstOrDefault(m => m.Id > 1190107 && m.UserId == UserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "self" && m.Sort == Sort);
+                                // if (selfStat == null)
+                                // {
+                                //     selfStat = db.UserAmountSummary.Add(new UserAmountSummary()
+                                //     {
+                                //         UserId = UserId,
+                                //         TradeMonth = TradeMonth,
+                                //         TradeDate = TradeDate,
+                                //         PayMode = PayMode,
+                                //         IsAct = IsAct,
+                                //         SeoTitle = "self",
+                                //         Sort = Sort,
+                                //     }).Entity;
+                                //     db.SaveChanges();
+                                // }
+                                // selfStat.TotalAmount += TradeAmount;
+                                // selfStat.TradeCount += TradeCount;
+                                // ParentNav += "," + UserId + ",";
+                                // if (!string.IsNullOrEmpty(ParentNav))
+                                // {
+                                //     string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                                //     foreach (string NavUserIdString in ParentNavList)
+                                //     {
+                                //         int NavUserId = int.Parse(NavUserIdString);
+                                //         UserAmountSummary teamStat = db.UserAmountSummary.FirstOrDefault(m => m.Id > 1190107 && m.UserId == NavUserId && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode && m.SeoTitle == "team" && m.Sort == Sort);
+                                //         if (teamStat == null)
+                                //         {
+                                //             teamStat = db.UserAmountSummary.Add(new UserAmountSummary()
+                                //             {
+                                //                 UserId = NavUserId,
+                                //                 TradeMonth = TradeMonth,
+                                //                 TradeDate = TradeDate,
+                                //                 PayMode = PayMode,
+                                //                 IsAct = IsAct,
+                                //                 SeoTitle = "team",
+                                //                 Sort = Sort,
+                                //             }).Entity;
+                                //             db.SaveChanges();
+                                //         }
+                                //         teamStat.TotalAmount += TradeAmount;
+                                //         teamStat.TradeCount += TradeCount;
+                                //     }
+                                // }
+                                // db.SaveChanges();
 
                                 function.WriteLog("22--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
 
                                 function.WriteLog("商户交易额", "统计商户和创客交易额日志2");
                                 function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\n" + MerchantId + ":" + IsAct + ":" + TradeMonth + ":" + TradeDate + ":" + PayMode + "----" + TradeAmount + ":" + TradeCount + ":" + ActualAmount, "统计商户交易额日志2");
                                 //商户交易额
-                                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();
-                                }
-                                merchantStat.TradeAmount += TradeAmount;
-                                merchantStat.TradeCount += TradeCount;
-                                merchantStat.TotalActual += ActualAmount;
-                                db.SaveChanges();
+                                // 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();
+                                // }
+                                // merchantStat.TradeAmount += TradeAmount;
+                                // merchantStat.TradeCount += TradeCount;
+                                // merchantStat.TotalActual += ActualAmount;
+                                // db.SaveChanges();
 
-                                function.WriteLog("23--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
+                                // function.WriteLog("23--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
 
                                 MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId);
                                 if(merchant != null)
@@ -173,7 +173,6 @@ namespace MySystem
                                         merchant.TotalActActual += ActualAmount;
                                         if(merchant.ActivationStatus == 0 && merchant.TotalActAmount >= 10000M)
                                         {
-                                            // RedisDbconn.Instance.AddList("ActProfitQueue", MerchantId.ToString());
                                             merchant.ActivationStatus = 1;
                                             merchant.ActivationDate = DateTime.Now;
                                         }
@@ -181,27 +180,27 @@ namespace MySystem
                                 }
                                 db.SaveChanges();
 
-                                function.WriteLog("24--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
+                                // function.WriteLog("24--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
 
-                                function.WriteLog(str: "码牌交易额", "统计商户和创客交易额日志2");
-                                //码牌交易额
-                                QrCodeAmountSummay qrcode = db.QrCodeAmountSummay.FirstOrDefault(m => m.SnNo == SnNo && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
-                                if (qrcode == null)
-                                {
-                                    qrcode = db.QrCodeAmountSummay.Add(new QrCodeAmountSummay()
-                                    {
-                                        SnNo = SnNo,
-                                        TradeMonth = TradeMonth,
-                                        TradeDate = TradeDate,
-                                        PayMode = PayMode,
-                                        IsAct = IsAct,
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                qrcode.TradeAmount += TradeAmount;
-                                qrcode.TradeCount += TradeCount;
-                                qrcode.TotalActual += ActualAmount;
-                                db.SaveChanges();
+                                // function.WriteLog(str: "码牌交易额", "统计商户和创客交易额日志2");
+                                // //码牌交易额
+                                // QrCodeAmountSummay qrcode = db.QrCodeAmountSummay.FirstOrDefault(m => m.SnNo == SnNo && m.IsAct == IsAct && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.PayMode == PayMode);
+                                // if (qrcode == null)
+                                // {
+                                //     qrcode = db.QrCodeAmountSummay.Add(new QrCodeAmountSummay()
+                                //     {
+                                //         SnNo = SnNo,
+                                //         TradeMonth = TradeMonth,
+                                //         TradeDate = TradeDate,
+                                //         PayMode = PayMode,
+                                //         IsAct = IsAct,
+                                //     }).Entity;
+                                //     db.SaveChanges();
+                                // }
+                                // qrcode.TradeAmount += TradeAmount;
+                                // qrcode.TradeCount += TradeCount;
+                                // qrcode.TotalActual += ActualAmount;
+                                // db.SaveChanges();
 
                                 function.WriteLog("25--" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "统计商户和创客交易额日志2");
 

+ 2 - 0
Startup.cs

@@ -122,6 +122,8 @@ namespace MySystem
 
             //银联
             StatService2.Instance.Start(); //实时统计交易额
+            StatNew2.Instance.Start(); //实时统计交易额
+            StatNew2.Instance.StartReset(); //实时统计交易额
             StatGdService2.Instance.Start(); //实时统计归档交易额
             StatResetService2.Instance.StartReset(); //重置交易额
             StatService2.Instance.StartPosActNum(); //实时统计激活数