Browse Source

推荐王调通

lcl 11 tháng trước cách đây
mục cha
commit
3340ddfaec
2 tập tin đã thay đổi với 47 bổ sung68 xóa
  1. 43 64
      AppStart/Helper/RecommandKingHelper.cs
  2. 4 4
      Startup.cs

+ 43 - 64
AppStart/Helper/RecommandKingHelper.cs

@@ -37,12 +37,12 @@ namespace MySystem
         public void Recommend()
         {
             string today = DateTime.Now.ToString("yyyy-MM-dd");
-            // string checkFlag = function.ReadInstance("/RecommandKing/" + today + ".txt");
-            // if(!string.IsNullOrEmpty(checkFlag))
-            // {
-            //     return;
-            // }
-            // function.WritePage("/RecommandKing/", today + ".txt", DateTime.Now.ToString());
+            string checkFlag = function.ReadInstance("/RecommandKing/" + today + ".txt");
+            if(!string.IsNullOrEmpty(checkFlag))
+            {
+                return;
+            }
+            function.WritePage("/RecommandKing/", today + ".txt", DateTime.Now.ToString());
             List<int> Historys = new List<int>();
             Historys.Add(565);
             Historys.Add(139473);
@@ -51,7 +51,7 @@ namespace MySystem
             Historys.Add(127023);
             string TradeMonth = DateTime.Now.AddMonths(-0).ToString("yyyyMM");
             DateTime check = DateTime.Parse("2023-10-01 00:00:00");
-            DateTime checke = DateTime.Parse("2024-04-29 00:00:00");
+            // DateTime checke = DateTime.Parse("2024-04-29 00:00:00");
             DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-0).ToString("yyyy-MM") + "-01 00:00:00");
             DateTime end = start.AddMonths(1);
             CustomerSqlConn.op("delete from RecommendDirectUser where TradeMonth='" + TradeMonth + "'", MysqlConn.SqlConnStr);
@@ -74,7 +74,7 @@ namespace MySystem
             MpMainModels2.WebCMSEntities mpdb2 = new MpMainModels2.WebCMSEntities();
             //统计当月下单名单
             // List<int> checkIds = readdb.Users.Where(m => (m.ParentNav.Contains(",609,") || m.Id == 609) && m.AuthFlag == 1).ToList().Select(m => m.Id).ToList();
-            var orders = readdb.Orders.Where(m => m.PayDate >= check && m.PayDate < checke && m.Status > 0 && m.Sort == 0 && m.UserId > 1 && ProductIds.Contains(m.ProductId)).ToList();
+            var orders = readdb.Orders.Where(m => m.PayDate >= check && m.Status > 0 && m.Sort == 0 && m.UserId > 1 && ProductIds.Contains(m.ProductId)).ToList();
             List<int> uids = orders.Select(m => m.UserId).Distinct().ToList();
             foreach(int uid in uids)
             {
@@ -112,22 +112,20 @@ namespace MySystem
                         // }
                     }
                 }
-                // if(ActCount == 0)
-                // {
-                //     ActCount += mpdb.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
-                // }
-                // if(ActCount == 0)
-                // {
-                //     ActCount += mpdb2.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
-                // }
+                if(ActCount == 0)
+                {
+                    ActCount += mpdb.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
+                }
+                if(ActCount == 0)
+                {
+                    ActCount += mpdb2.MerchantDepositOrder.Count(m => m.UserId == uid && m.CreateDate >= start && m.CreateDate < end && m.Status > 0 && m.UserId == uid);
+                }
                 if(ActCount > 0)
                 {
                     user.Op = true;
                     function.WriteLog(user.UserId.ToString(), "推荐王达标创客名单");
                 }
-                // RedisDbconn.Instance.AddList("userstmp2024", user);
             }
-            // int Cou = RedisDbconn.Instance.GetList<RecommandKingItem>("userstmp2024", 1, 99999999).Count(m => m.Op);
             foreach(int uid in uids)
             {
                 ReadModels.Users user = readdb.Users.FirstOrDefault(m => m.Id == uid);
@@ -158,7 +156,7 @@ namespace MySystem
                     }
                 }
             }
-            users = users.OrderBy(m => m.Level).ToList();
+            users = users.OrderByDescending(m => m.Level).ToList();
             foreach(RecommandKingItem user in users)
             {
                 string UserIdStr = "," + user.UserId + ",";
@@ -166,66 +164,47 @@ namespace MySystem
                 user.ActCount = Count;
                 user.ChkActCount = Count;
                 function.WriteLog(user.UserId + ":" + Count, "推荐王总的达标创客数量");
+                // RedisDbconn.Instance.AddList("userstmp2024", user);
             }
+            // users = RedisDbconn.Instance.GetList<RecommandKingItem>("userstmp2024", 1, 999999).OrderByDescending(m => m.Level).ToList();
+            users = users.OrderByDescending(m => m.Level).ToList();
             foreach(RecommandKingItem user in users)
             {
-                string UserIdStr = "," + user.UserId + ",";
-                function.WriteLog(user.UserId.ToString(), "推荐王最终的达标创客数量分析");
-                if(users.Any(m => m.ParentNav.Contains(UserIdStr) && (m.ChkActCount >= 50 || m.UserLevel >= 5 || Historys.Contains(m.UserId))))
+                function.WriteLog(user.UserId.ToString() + "-" + user.UserLevel, "推荐王最终的达标创客数量分析");
+                int ActCount = 0;
+                List<RecommandKingItem> subs = users.Where(m => m.ParentUserId == user.UserId).ToList();
+                foreach(RecommandKingItem sub in subs)
                 {
-                    List<RecommandKingItem> subs = users.Where(m => m.ParentUserId == user.UserId).ToList();
-                    foreach(RecommandKingItem sub in subs)
+                    function.WriteLog(sub.UserId + ":" + sub.ActCount, "推荐王最终的达标创客数量分析");
+                    if(sub.ActCount < 50 && sub.UserLevel < 5 && !Historys.Contains(sub.UserId))
                     {
-                        function.WriteLog(sub.UserId + ":" + sub.ActCount, "推荐王最终的达标创客数量分析");
-                        string subUserIdStr = "," + sub.UserId + ",";
-                        if(sub.UserId == 146503)
-                        {
-                            string sss = "123123123123";
-                        }
-                        if(sub.ChkActCount >= 50 || sub.UserLevel >= 5 || Historys.Contains(sub.UserId))
-                        {
-                            // user.ActCount -= sub.ChkActCount;
-                            List<RecommandKingItem> mysubs = users.Where(m => m.ParentNav.Contains(subUserIdStr) && (m.ChkActCount >= 50)).ToList();
-                            foreach(RecommandKingItem mysub in mysubs)
-                            {
-                                List<RecommandKingItem> mysubChildren = users.Where(m => m.ParentUserId == mysub.UserId).ToList();
-                                foreach(RecommandKingItem mysubChild in mysubChildren)
-                                {
-                                    if(mysubChild.ChkActCount >= 50)
-                                    {
-                                        user.ActCount -= mysubChild.ChkActCount;
-                                    }
-                                }
-                            }
-                            function.WriteLog("减去" + sub.ChkActCount, "推荐王最终的达标创客数量分析");
-                        }
-                        else if(users.Any(m => m.ParentNav.Contains(subUserIdStr) && (m.ChkActCount >= 50 || m.UserLevel >= 5 || Historys.Contains(sub.UserId))))
-                        {
-                            RecommandKingItem tar = users.Where(m => m.ParentNav.Contains(subUserIdStr) && (m.ChkActCount >= 50 || m.UserLevel >= 5)).OrderBy(m => m.Level).FirstOrDefault();
-                            user.ActCount -= tar.ChkActCount;
-                            function.WriteLog("减去" + tar.UserId + ":" + sub.ChkActCount, "推荐王最终的达标创客数量分析");
-                        }
+                        ActCount += sub.ActCount;
+                        if(sub.Op) ActCount += 1;
                     }
                 }
+                user.ActCount = ActCount;
                 function.WriteLog("\n\n\n", "推荐王最终的达标创客数量分析");
             }
 
             int num = 0;
             foreach(RecommandKingItem user in users)
             {
-                num += 1;
-                RecommendDirectUser item = db.RecommendDirectUser.FirstOrDefault(m => m.UserId == user.UserId && m.TradeMonth == TradeMonth);
-                if(item == null)
+                if(!Historys.Contains(user.UserId))
                 {
-                    item = db.RecommendDirectUser.Add(new RecommendDirectUser()
-                    {
-                        UserId = user.UserId,
-                        TradeMonth = TradeMonth,
-                        QueryCount = user.ActCount > 50 ? 50 : user.ActCount,
-                    }).Entity;
-                    if(num % 200 == 0)
+                    num += 1;
+                    RecommendDirectUser item = db.RecommendDirectUser.FirstOrDefault(m => m.UserId == user.UserId && m.TradeMonth == TradeMonth);
+                    if(item == null)
                     {
-                        db.SaveChanges();
+                        item = db.RecommendDirectUser.Add(new RecommendDirectUser()
+                        {
+                            UserId = user.UserId,
+                            TradeMonth = TradeMonth,
+                            QueryCount = user.ActCount > 50 ? 50 : user.ActCount,
+                        }).Entity;
+                        if(num % 200 == 0)
+                        {
+                            db.SaveChanges();
+                        }
                     }
                 }
             }

+ 4 - 4
Startup.cs

@@ -166,12 +166,12 @@ namespace MySystem
             // }
             // if(Library.ConfigurationManager.EnvironmentFlag == 2)
             // {
-                // LeaderCompPrizeHelper.Instance.Start(); //领导人达标奖
-                // RecommandKingHelper.Instance.Start(); //推荐王
-                // AddSourcePosSnHelper.Instance.Start(); //补来源机具
+                LeaderCompPrizeHelper.Instance.Start(); //领导人达标奖
+                RecommandKingHelper.Instance.Start(); //推荐王
+                AddSourcePosSnHelper.Instance.Start(); //补来源机具
             // } 
 
-            RecommandKingHelper.Instance.Recommend();
+            // RecommandKingHelper.Instance.Recommend();
         }
 
         private void InitMain()