Browse Source

添加重置创客交易额队列,按天按品牌重置

lcl 1 year ago
parent
commit
2aa44ddfcf
3 changed files with 373 additions and 259 deletions
  1. 105 0
      AppStart/Helper/StatResetService.cs
  2. 266 259
      AppStart/Helper/StatService.cs
  3. 2 0
      Startup.cs

+ 105 - 0
AppStart/Helper/StatResetService.cs

@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using Library;
+using LitJson;
+using System.Linq;
+using System.Data;
+using System.Threading;
+using MySystem.PxcModels;
+
+namespace MySystem
+{
+    public class StatResetService
+    {
+        public readonly static StatResetService Instance = new StatResetService();
+        private StatResetService()
+        { }
+
+
+
+
+
+
+        // 重置交易额
+        public void Start()
+        {
+            Thread th = new Thread(StartDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        public void StartDo()
+        {
+            while (true)
+            {
+                string content = RedisDbconn.Instance.RPop<string>("StatResetUserTradeQueue");
+                if (!string.IsNullOrEmpty(content))
+                {
+                    StatTrade(content);
+                    Thread.Sleep(2000);
+                }
+                else
+                {
+                    Thread.Sleep(61000);
+                }
+            }
+        }
+
+        public void StatTrade(string content)
+        {
+            JsonData jsonObj = JsonMapper.ToObject(content);
+            string BrandId = jsonObj["BrandId"].ToString();
+            string TradeDate = jsonObj[prop_name: "TradeDate"].ToString();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "重置创客交易额日志");
+            WebCMSEntities db = new WebCMSEntities();
+            using (var tran = db.Database.BeginTransaction())
+            {
+                try
+                {
+                    DataTable selfDt = CustomerSqlConn.dtable("select UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,Version,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d'),sum(TradeAmount),count(Id),SnNo from TradeRecord where Id>15000000 and CreateDate>='" + TradeDate + " 00:00:00' and CreateDate<='" + TradeDate + " 23:59:59' and BrandId in (" + BrandId + ") group by UserId,ParentNav,BrandId,BankCardType,QrPayFlag,MerHelpFlag,Version,CapFlag,VipFlag,PayType,DATE_FORMAT(CreateDate,'%Y%m%d'),SnNo", AppConfig.Base.SqlConn);
+                    if (selfDt.Rows.Count > 0)
+                    {
+                        string TradeDateStr = TradeDate.Replace("-", "");
+                        CustomerSqlConn.op("delete from TradeDaySummary where TradeDate='" + TradeDateStr + "' and BrandId in (" + BrandId + ")", AppConfig.Base.SqlConn);
+                        CustomerSqlConn.op("delete from TradeDaySummary2 where TradeDate='" + TradeDateStr + "' and BrandId in (" + BrandId + ")", AppConfig.Base.SqlConn);
+                        CustomerSqlConn.op("delete from TradeDaySummaryBefore where TradeDate='" + TradeDateStr + "' and BrandId in (" + BrandId + ")", AppConfig.Base.SqlConn);
+                        CustomerSqlConn.op("delete from TradeDaySummary2Before where TradeDate='" + TradeDateStr + "' and BrandId in (" + BrandId + ")", AppConfig.Base.SqlConn);
+                        CustomerSqlConn.op("delete from TradeDaySummaryAfter where TradeDate='" + TradeDateStr + "' and BrandId in (" + BrandId + ")", AppConfig.Base.SqlConn);
+                        CustomerSqlConn.op("delete from TradeDaySummary2After where TradeDate='" + TradeDateStr + "' and BrandId in (" + BrandId + ")", AppConfig.Base.SqlConn);
+                        function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "重置创客交易额日志");
+                        foreach (DataRow selfDr in selfDt.Rows)
+                        {
+                            StatService.Instance.StatTrade(db, selfDr);
+
+                            int UserId = int.Parse(selfDr["UserId"].ToString());
+                            string SnNo = selfDr["SnNo"].ToString();
+                            PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == SnNo) ?? new PosMachinesTwo();
+                            if (UserId == 0)
+                            {
+                                UserId = pos.UserId;
+                            }
+                            Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+                            string ParentNav = user.ParentNav; //selfDr["ParentNav"].ToString();
+                            if (pos.BindingTime < DateTime.Parse("2023-07-01 00:00:00"))
+                            {
+                                Stat2Service.Instance.StatBefore(db, selfDr, UserId, ParentNav);
+                            }
+                            else
+                            {
+                                Stat2Service.Instance.StatAfter(db, selfDr, UserId, ParentNav);
+                            }
+                        }
+                    }
+                    db.SaveChanges();
+                    tran.Commit();
+                }
+                catch (Exception ex)
+                {
+                    tran.Rollback();
+                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "重置创客交易额异常");
+                }
+            }
+            db.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "重置创客交易额日志");
+        }
+    }
+}

+ 266 - 259
AppStart/Helper/StatService.cs

@@ -142,265 +142,7 @@ namespace MySystem
                             function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "实时执行交易额V2日志");
                             foreach (DataRow selfDr in selfDt.Rows)
                             {
-                                int UserId = int.Parse(selfDr["UserId"].ToString());
-                                string SnNo = selfDr["SnNo"].ToString();
-                                if(UserId == 0)
-                                {
-                                    PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == SnNo);
-                                    if(pos != null)
-                                    {
-                                        UserId = pos.UserId;
-                                    }
-                                }
-                                Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                                string ParentNav = user.ParentNav; //selfDr["ParentNav"].ToString();
-                                int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                                int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                                int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                                int MerHelpFlag = int.Parse(selfDr["MerHelpFlag"].ToString());
-                                int Version = int.Parse(selfDr["Version"].ToString());
-                                int CapFlag = int.Parse(selfDr["CapFlag"].ToString());
-                                int VipFlag = int.Parse(selfDr["VipFlag"].ToString());
-                                int PayType = int.Parse(selfDr["PayType"].ToString());
-                                string TradeDate = selfDr[10].ToString();
-                                decimal TradeAmount = decimal.Parse(selfDr[11].ToString());
-                                int TradeCount = int.Parse(selfDr[12].ToString());
-                                string TradeMonth = TradeDate.Substring(0, 6);
-
-                                if(Version < 2)
-                                {
-                                    TradeDaySummary selfStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
-                                    if (selfStat == null)
-                                    {
-                                        selfStat = db.TradeDaySummary.Add(new TradeDaySummary()
-                                        {
-                                            UserId = UserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            VipFlag = VipFlag,
-                                            PayType = PayType,
-                                            SeoTitle = "self",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        if (Version == 1)
-                                        {
-                                            selfStat.ProfitDirectDebitTradeAmt += TradeAmount;
-                                            if (CapFlag == 1)
-                                            {
-                                                selfStat.ProfitDirectDebitCapTradeAmt += TradeAmount;
-                                                selfStat.ProfitDirectDebitCapNum += TradeCount;
-                                            }
-                                        }
-                                        else if (MerHelpFlag == 1)
-                                        {
-                                            selfStat.HelpDirectDebitTradeAmt += TradeAmount;
-                                            if (CapFlag == 1)
-                                            {
-                                                selfStat.HelpDirectDebitCapTradeAmt += TradeAmount;
-                                                selfStat.HelpDirectDebitCapNum += TradeCount;
-                                            }
-                                        }
-                                        else
-                                        {
-                                            selfStat.NotHelpDirectDebitTradeAmt += TradeAmount;
-                                            if (CapFlag == 1)
-                                            {
-                                                selfStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
-                                                selfStat.NotHelpDirectDebitCapNum += TradeCount;
-                                            }
-                                        }
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        if (Version == 1)
-                                        {
-                                            selfStat.ProfitDirectTradeAmt += TradeAmount;
-                                        }
-                                        else if (MerHelpFlag == 1)
-                                        {
-                                            selfStat.HelpDirectTradeAmt += TradeAmount;
-                                        }
-                                        else
-                                        {
-                                            selfStat.NotHelpDirectTradeAmt += TradeAmount;
-                                        }
-                                    }
-                                    ParentNav += "," + UserId + ",";
-                                    if (!string.IsNullOrEmpty(ParentNav))
-                                    {
-                                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        foreach (string NavUserIdString in ParentNavList)
-                                        {
-                                            int NavUserId = int.Parse(NavUserIdString);
-                                            TradeDaySummary teamStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
-                                            if (teamStat == null)
-                                            {
-                                                teamStat = db.TradeDaySummary.Add(new TradeDaySummary()
-                                                {
-                                                    UserId = NavUserId,
-                                                    TradeMonth = TradeMonth,
-                                                    TradeDate = TradeDate,
-                                                    BrandId = BrandId,
-                                                    QueryCount = QrPayFlag,
-                                                    VipFlag = VipFlag,
-                                                    PayType = PayType,
-                                                    SeoTitle = "team",
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            if (BankCardType == 0)
-                                            {
-                                                if (Version == 1)
-                                                {
-                                                    teamStat.ProfitNonDirectDebitTradeAmt += TradeAmount;
-                                                    if (CapFlag == 1)
-                                                    {
-                                                        teamStat.ProfitDirectDebitCapTradeAmt += TradeAmount;
-                                                        teamStat.ProfitDirectDebitCapNum += TradeCount;
-                                                    }
-                                                }
-                                                else if (MerHelpFlag == 1)
-                                                {
-                                                    teamStat.HelpNonDirectDebitTradeAmt += TradeAmount;
-                                                    if (CapFlag == 1)
-                                                    {
-                                                        teamStat.HelpDirectDebitCapTradeAmt += TradeAmount;
-                                                        teamStat.HelpDirectDebitCapNum += TradeCount;
-                                                    }
-                                                }
-                                                else
-                                                {
-                                                    teamStat.NotHelpNonDirectDebitTradeAmt += TradeAmount;
-                                                    if (CapFlag == 1)
-                                                    {
-                                                        teamStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
-                                                        teamStat.NotHelpDirectDebitCapNum += TradeCount;
-                                                    }
-                                                }
-                                            }
-                                            else if (BankCardType != 0)
-                                            {
-                                                if (Version == 1)
-                                                {
-                                                    teamStat.ProfitNonDirectTradeAmt += TradeAmount;
-                                                }
-                                                else if (MerHelpFlag == 1)
-                                                {
-                                                    teamStat.HelpNonDirectTradeAmt += TradeAmount;
-                                                }
-                                                else
-                                                {
-                                                    teamStat.NotHelpNonDirectTradeAmt += TradeAmount;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                                else
-                                {
-                                    //盈利期,费率0.6
-                                    TradeDaySummary2 selfStat2 = db.TradeDaySummary2.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
-                                    if (selfStat2 == null)
-                                    {
-                                        selfStat2 = db.TradeDaySummary2.Add(new TradeDaySummary2()
-                                        {
-                                            UserId = UserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            VipFlag = VipFlag,
-                                            PayType = PayType,
-                                            SeoTitle = "self",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        if (Version == 2)
-                                        {
-                                            selfStat2.ProfitDebitTradeAmt += TradeAmount;
-                                            if (CapFlag == 1)
-                                            {
-                                                selfStat2.ProfitDebitCapTradeAmt += TradeAmount;
-                                                selfStat2.ProfitDebitCapNum += TradeCount;
-                                            }
-                                        }
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        if (Version == 2)
-                                        {
-                                            selfStat2.ProfitTradeAmt += TradeAmount;
-                                        }
-                                    }
-                                    ParentNav += "," + UserId + ",";
-                                    if (!string.IsNullOrEmpty(ParentNav))
-                                    {
-                                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        foreach (string NavUserIdString in ParentNavList)
-                                        {
-                                            int NavUserId = int.Parse(NavUserIdString);
-                                            TradeDaySummary2 teamStat2 = db.TradeDaySummary2.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
-                                            if (teamStat2 == null)
-                                            {
-                                                teamStat2 = db.TradeDaySummary2.Add(new TradeDaySummary2()
-                                                {
-                                                    UserId = NavUserId,
-                                                    TradeMonth = TradeMonth,
-                                                    TradeDate = TradeDate,
-                                                    BrandId = BrandId,
-                                                    QueryCount = QrPayFlag,
-                                                    VipFlag = VipFlag,
-                                                    PayType = PayType,
-                                                    SeoTitle = "team",
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            if (BankCardType == 0)
-                                            {
-                                                if (Version == 2)
-                                                {
-                                                    teamStat2.ProfitDebitTradeAmt += TradeAmount;
-                                                    if (CapFlag == 1)
-                                                    {
-                                                        teamStat2.ProfitDebitCapTradeAmt += TradeAmount;
-                                                        teamStat2.ProfitDebitCapNum += TradeCount;
-                                                    }
-                                                }
-                                            }
-                                            else if (BankCardType != 0)
-                                            {
-                                                if (Version == 2)
-                                                {
-                                                    teamStat2.ProfitTradeAmt += TradeAmount;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-
-
-                                Dictionary<string, object> statData = new Dictionary<string, object>();
-                                statData.Add("UserId", UserId);
-                                statData.Add("BrandId", BrandId);
-                                statData.Add("BankCardType", BankCardType);
-                                statData.Add("QrPayFlag", QrPayFlag);
-                                statData.Add("MerHelpFlag", MerHelpFlag);
-                                statData.Add("Version", Version);
-                                statData.Add("CapFlag", CapFlag);
-                                statData.Add("VipFlag", VipFlag);
-                                statData.Add("PayType", PayType);
-                                statData.Add("TradeDate", TradeDate);
-                                statData.Add("TradeAmount", TradeAmount);
-                                statData.Add("TradeCount", TradeCount);
-                                RedisDbconn.Instance.AddList("StatTradeAmountQueue", Newtonsoft.Json.JsonConvert.SerializeObject(statData));
-                                // RedisDbconn.Instance.AddList("ProfitTradeAmountQueue", Newtonsoft.Json.JsonConvert.SerializeObject(statData));
+                                StatTrade(db, selfDr);
                             }
                             OtherMySqlConn.op("update TradeRecord set QueryCount=1 where Id in (" + ids.TrimEnd(',') + ")");
                             if(Id == 0)
@@ -422,6 +164,271 @@ namespace MySystem
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行交易额V2日志");
         }
 
+        public void StatTrade(WebCMSEntities db, DataRow selfDr)
+        {
+            int UserId = int.Parse(selfDr["UserId"].ToString());
+            string SnNo = selfDr["SnNo"].ToString();
+            if(UserId == 0)
+            {
+                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == SnNo);
+                if(pos != null)
+                {
+                    UserId = pos.UserId;
+                }
+            }
+            Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+            string ParentNav = user.ParentNav; //selfDr["ParentNav"].ToString();
+            int BrandId = int.Parse(selfDr["BrandId"].ToString());
+            int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
+            int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
+            int MerHelpFlag = int.Parse(selfDr["MerHelpFlag"].ToString());
+            int Version = int.Parse(selfDr["Version"].ToString());
+            int CapFlag = int.Parse(selfDr["CapFlag"].ToString());
+            int VipFlag = int.Parse(selfDr["VipFlag"].ToString());
+            int PayType = int.Parse(selfDr["PayType"].ToString());
+            string TradeDate = selfDr[10].ToString();
+            decimal TradeAmount = decimal.Parse(selfDr[11].ToString());
+            int TradeCount = int.Parse(selfDr[12].ToString());
+            string TradeMonth = TradeDate.Substring(0, 6);
+
+            if(Version < 2)
+            {
+                TradeDaySummary selfStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
+                if (selfStat == null)
+                {
+                    selfStat = db.TradeDaySummary.Add(new TradeDaySummary()
+                    {
+                        UserId = UserId,
+                        TradeMonth = TradeMonth,
+                        TradeDate = TradeDate,
+                        BrandId = BrandId,
+                        QueryCount = QrPayFlag,
+                        VipFlag = VipFlag,
+                        PayType = PayType,
+                        SeoTitle = "self",
+                    }).Entity;
+                    db.SaveChanges();
+                }
+                if (BankCardType == 0)
+                {
+                    if (Version == 1)
+                    {
+                        selfStat.ProfitDirectDebitTradeAmt += TradeAmount;
+                        if (CapFlag == 1)
+                        {
+                            selfStat.ProfitDirectDebitCapTradeAmt += TradeAmount;
+                            selfStat.ProfitDirectDebitCapNum += TradeCount;
+                        }
+                    }
+                    else if (MerHelpFlag == 1)
+                    {
+                        selfStat.HelpDirectDebitTradeAmt += TradeAmount;
+                        if (CapFlag == 1)
+                        {
+                            selfStat.HelpDirectDebitCapTradeAmt += TradeAmount;
+                            selfStat.HelpDirectDebitCapNum += TradeCount;
+                        }
+                    }
+                    else
+                    {
+                        selfStat.NotHelpDirectDebitTradeAmt += TradeAmount;
+                        if (CapFlag == 1)
+                        {
+                            selfStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
+                            selfStat.NotHelpDirectDebitCapNum += TradeCount;
+                        }
+                    }
+                }
+                else if (BankCardType != 0)
+                {
+                    if (Version == 1)
+                    {
+                        selfStat.ProfitDirectTradeAmt += TradeAmount;
+                    }
+                    else if (MerHelpFlag == 1)
+                    {
+                        selfStat.HelpDirectTradeAmt += TradeAmount;
+                    }
+                    else
+                    {
+                        selfStat.NotHelpDirectTradeAmt += TradeAmount;
+                    }
+                }
+                ParentNav += "," + UserId + ",";
+                if (!string.IsNullOrEmpty(ParentNav))
+                {
+                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                    foreach (string NavUserIdString in ParentNavList)
+                    {
+                        int NavUserId = int.Parse(NavUserIdString);
+                        TradeDaySummary teamStat = db.TradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
+                        if (teamStat == null)
+                        {
+                            teamStat = db.TradeDaySummary.Add(new TradeDaySummary()
+                            {
+                                UserId = NavUserId,
+                                TradeMonth = TradeMonth,
+                                TradeDate = TradeDate,
+                                BrandId = BrandId,
+                                QueryCount = QrPayFlag,
+                                VipFlag = VipFlag,
+                                PayType = PayType,
+                                SeoTitle = "team",
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        if (BankCardType == 0)
+                        {
+                            if (Version == 1)
+                            {
+                                teamStat.ProfitNonDirectDebitTradeAmt += TradeAmount;
+                                if (CapFlag == 1)
+                                {
+                                    teamStat.ProfitDirectDebitCapTradeAmt += TradeAmount;
+                                    teamStat.ProfitDirectDebitCapNum += TradeCount;
+                                }
+                            }
+                            else if (MerHelpFlag == 1)
+                            {
+                                teamStat.HelpNonDirectDebitTradeAmt += TradeAmount;
+                                if (CapFlag == 1)
+                                {
+                                    teamStat.HelpDirectDebitCapTradeAmt += TradeAmount;
+                                    teamStat.HelpDirectDebitCapNum += TradeCount;
+                                }
+                            }
+                            else
+                            {
+                                teamStat.NotHelpNonDirectDebitTradeAmt += TradeAmount;
+                                if (CapFlag == 1)
+                                {
+                                    teamStat.NotHelpDirectDebitCapTradeAmt += TradeAmount;
+                                    teamStat.NotHelpDirectDebitCapNum += TradeCount;
+                                }
+                            }
+                        }
+                        else if (BankCardType != 0)
+                        {
+                            if (Version == 1)
+                            {
+                                teamStat.ProfitNonDirectTradeAmt += TradeAmount;
+                            }
+                            else if (MerHelpFlag == 1)
+                            {
+                                teamStat.HelpNonDirectTradeAmt += TradeAmount;
+                            }
+                            else
+                            {
+                                teamStat.NotHelpNonDirectTradeAmt += TradeAmount;
+                            }
+                        }
+                    }
+                }
+            }
+            else
+            {
+                //盈利期,费率0.6
+                TradeDaySummary2 selfStat2 = db.TradeDaySummary2.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "self");
+                if (selfStat2 == null)
+                {
+                    selfStat2 = db.TradeDaySummary2.Add(new TradeDaySummary2()
+                    {
+                        UserId = UserId,
+                        TradeMonth = TradeMonth,
+                        TradeDate = TradeDate,
+                        BrandId = BrandId,
+                        QueryCount = QrPayFlag,
+                        VipFlag = VipFlag,
+                        PayType = PayType,
+                        SeoTitle = "self",
+                    }).Entity;
+                    db.SaveChanges();
+                }
+                if (BankCardType == 0)
+                {
+                    if (Version == 2)
+                    {
+                        selfStat2.ProfitDebitTradeAmt += TradeAmount;
+                        if (CapFlag == 1)
+                        {
+                            selfStat2.ProfitDebitCapTradeAmt += TradeAmount;
+                            selfStat2.ProfitDebitCapNum += TradeCount;
+                        }
+                    }
+                }
+                else if (BankCardType != 0)
+                {
+                    if (Version == 2)
+                    {
+                        selfStat2.ProfitTradeAmt += TradeAmount;
+                    }
+                }
+                ParentNav += "," + UserId + ",";
+                if (!string.IsNullOrEmpty(ParentNav))
+                {
+                    string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                    foreach (string NavUserIdString in ParentNavList)
+                    {
+                        int NavUserId = int.Parse(NavUserIdString);
+                        TradeDaySummary2 teamStat2 = db.TradeDaySummary2.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.VipFlag == VipFlag && m.PayType == PayType && m.SeoTitle == "team");
+                        if (teamStat2 == null)
+                        {
+                            teamStat2 = db.TradeDaySummary2.Add(new TradeDaySummary2()
+                            {
+                                UserId = NavUserId,
+                                TradeMonth = TradeMonth,
+                                TradeDate = TradeDate,
+                                BrandId = BrandId,
+                                QueryCount = QrPayFlag,
+                                VipFlag = VipFlag,
+                                PayType = PayType,
+                                SeoTitle = "team",
+                            }).Entity;
+                            db.SaveChanges();
+                        }
+                        if (BankCardType == 0)
+                        {
+                            if (Version == 2)
+                            {
+                                teamStat2.ProfitDebitTradeAmt += TradeAmount;
+                                if (CapFlag == 1)
+                                {
+                                    teamStat2.ProfitDebitCapTradeAmt += TradeAmount;
+                                    teamStat2.ProfitDebitCapNum += TradeCount;
+                                }
+                            }
+                        }
+                        else if (BankCardType != 0)
+                        {
+                            if (Version == 2)
+                            {
+                                teamStat2.ProfitTradeAmt += TradeAmount;
+                            }
+                        }
+                    }
+                }
+            }
+
+            Dictionary<string, object> statData = new Dictionary<string, object>();
+            statData.Add("UserId", UserId);
+            statData.Add("BrandId", BrandId);
+            statData.Add("BankCardType", BankCardType);
+            statData.Add("QrPayFlag", QrPayFlag);
+            statData.Add("MerHelpFlag", MerHelpFlag);
+            statData.Add("Version", Version);
+            statData.Add("CapFlag", CapFlag);
+            statData.Add("VipFlag", VipFlag);
+            statData.Add("PayType", PayType);
+            statData.Add("TradeDate", TradeDate);
+            statData.Add("TradeAmount", TradeAmount);
+            statData.Add("TradeCount", TradeCount);
+            RedisDbconn.Instance.AddList("StatTradeAmountQueue", Newtonsoft.Json.JsonConvert.SerializeObject(statData));
+            // RedisDbconn.Instance.AddList("ProfitTradeAmountQueue", Newtonsoft.Json.JsonConvert.SerializeObject(statData));
+        }
+
+
+
+
 
         public void StatSimTradeAmount(int Id = 0)
         {

+ 2 - 0
Startup.cs

@@ -120,6 +120,8 @@ namespace MySystem
             StatNewService.Instance.CreateTable(); //创建RDS分表
             
             StatHelpProfitService.Instance.AddUserHelpProfit(); //补创客助利宝交易额
+            
+            StatResetService.Instance.Start(); //重置创客交易额
             // ProfitService.Instance.AddRds(); //补RDS数据
             //必须打开的