Преглед на файлове

推荐王递归计算达标数量调整

lcl преди 1 година
родител
ревизия
9e67e21926
променени са 1 файла, в които са добавени 13 реда и са изтрити 16 реда
  1. 13 16
      AppStart/Helper/RecommandKingHelper.cs

+ 13 - 16
AppStart/Helper/RecommandKingHelper.cs

@@ -42,7 +42,7 @@ namespace MySystem
                 return;
             }
             function.WritePage("/RecommandKing/", today + ".txt", DateTime.Now.ToString());
-            List<int> MaxUserIds = new List<int>();
+            List<RecommendDirectUser> list = new List<RecommendDirectUser>();
             List<int> Historys = new List<int>();
             Historys.Add(565);
             Historys.Add(139473);
@@ -68,6 +68,7 @@ namespace MySystem
             ReadModels.WebCMSEntities readdb = new ReadModels.WebCMSEntities();
             //统计当月下单名单
             List<int> uids = readdb.Orders.Where(m => m.PayDate >= check && m.Status > 0 && m.Sort == 0 && ProductIds.Contains(m.ProductId)).ToList().Select(m => m.UserId).Distinct().ToList();
+            uids = readdb.Users.Where(m => uids.Contains(m.Id)).OrderByDescending(m => m.ParentNav).ToList().Select(m => m.Id).ToList();
             foreach(int uid in uids)
             {
                 int ActCount = 0;
@@ -105,37 +106,28 @@ namespace MySystem
                             foreach(string UserIdString in ParentNavList)
                             {
                                 int UserId = int.Parse(UserIdString);
-                                if(MaxUserIds.Contains(UserId))
-                                {
-                                    PassFlag = false;
-                                }
                                 //判断是否历史达标创客
                                 if(PassFlag)
                                 {
-                                    if(db.RecommendDirectUser.Any(m => m.UserId == UserId && m.QueryCount >= 50) || Historys.Contains(UserId))
+                                    if(list.Any(m => m.UserId == UserId && m.QueryCount >= 50) || Historys.Contains(UserId))
                                     {
                                         PassFlag = false;
                                     }
                                 }
                                 if(PassFlag)
                                 {
-                                    RecommendDirectUser item = db.RecommendDirectUser.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth);
+                                    RecommendDirectUser item = list.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth);
                                     if(item == null)
                                     {
-                                        item = db.RecommendDirectUser.Add(new RecommendDirectUser()
+                                        item = new RecommendDirectUser()
                                         {
                                             UserId = UserId,
                                             TradeMonth = TradeMonth,
-                                        }).Entity;
-                                        db.SaveChanges();
+                                        };
+                                        list.Add(item);
                                     }
                                     item.QueryCount += 1;
-                                    db.SaveChanges();
-                                    if(item.QueryCount >= 50)
-                                    {
-                                        MaxUserIds.Add(UserId);
-                                        PassFlag = false;
-                                    }
+                                    if(item.QueryCount >= 50) PassFlag = false;
                                 }
                                 //判断上月交易额是否满3000W
                                 if(PassFlag)
@@ -150,6 +142,11 @@ namespace MySystem
                     }
                 }
             }
+            foreach(RecommendDirectUser sub in list)
+            {
+                db.RecommendDirectUser.Add(sub);
+            }
+            db.SaveChanges();
             db.Dispose();
             readdb.Dispose();
         }