Jelajahi Sumber

升级体系调整完成,待测试

lcl 1 tahun lalu
induk
melakukan
bc5c0f34e1
2 mengubah file dengan 90 tambahan dan 2 penghapusan
  1. 45 0
      AppStart/Helper/StatService.cs
  2. 45 2
      Util/Utils.cs

+ 45 - 0
AppStart/Helper/StatService.cs

@@ -2326,6 +2326,11 @@ namespace MySystem
                                 {
                                     AfterLevel = 5;
                                 }
+                                // 如果是达标创客,只能降级到K1
+                                if(AfterLevel == 0 && Utils.Instance.IsStandardUser(user.Id))
+                                {
+                                    AfterLevel = 1;
+                                }
                                 if (AfterLevel < BeforeLevel && BeforeLevel > 1)
                                 {
                                     function.WriteLog(user.MakerCode + "-" + user.RealName + ":K" + BeforeLevel + "->K" + AfterLevel, "创客降级日志");
@@ -2368,6 +2373,46 @@ namespace MySystem
                         op = false;
                     }
                 }
+                //查找K0创客,如果商城下单购买一组机具券,则预设为K1
+                List<int> productIds = new List<int>();
+                productIds.Add(10);
+                productIds.Add(11);
+                op = true;
+                startid = 0;
+                while(op)
+                {
+                    var users = db.Users.Select(m => new { m.Id, m.AuthFlag, m.UserLevel }).Where(m => m.Id > startid && m.AuthFlag == 1 && m.UserLevel == 0).OrderBy(m => m.Id).Take(50).ToList();
+                    if(users.Count > 0)
+                    {
+                        foreach (var subuser in users)
+                        {
+                            bool hasOrder = db.Orders.Any(m => m.UserId == subuser.Id && m.Status > 0 && productIds.Contains(m.ProductId));
+                            if(hasOrder)
+                            {
+                                Utils.Instance.LeaderPreUserLevel(subuser.Id, 1, DateTime.Parse("2025-01-01 00:00:00"));
+                                db.UserRank.Add(new UserRank()
+                                {
+                                    CreateDate = DateTime.Now,
+                                    UpdateDate = DateTime.Now,
+                                    UserId = subuser.Id, //创客
+                                    WhiteRank = 0,
+                                    Rank = 1, //当前等级
+                                    StatYear = DateTime.Now.Year, //统计年份
+                                    StatMonth = DateTime.Now.Month, //统计月份
+                                    TradeAmt = 0, //团队交易总额
+                                    UpgradeFlag = 1, //升级标识
+                                    OperateDate = DateTime.Now, //操作时间
+                                    Status = 1,
+                                });
+                                db.SaveChanges();
+                            }
+                        }
+                    }
+                    else
+                    {
+                        op = false;
+                    }
+                }
                 function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
             }
             catch (Exception ex)

+ 45 - 2
Util/Utils.cs

@@ -59,8 +59,6 @@ namespace MySystem
             db.Dispose();
         }
 
-
-
         public void ToChargeAmount(int UserId, decimal Money)
         {
             WebCMSEntities db = new WebCMSEntities();
@@ -79,5 +77,50 @@ namespace MySystem
             db.Dispose();
         }
 
+        /// <summary>
+        /// 判断是否达标创客
+        /// </summary>
+        /// <param name="UserId"></param>
+        /// <returns></returns>
+        public bool IsStandardUser(int UserId)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            int ActiveCount = db.PosMachinesTwo.Count(m => m.BuyUserId == UserId && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
+            int couponCount = db.PosCoupons.Count(m => m.UserId == UserId && m.IsUse == 0); //判断是否拥有3张券
+            // TODO:待确认条件
+            db.Dispose();
+            if(ActiveCount + couponCount >= 3)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 预设职级
+        /// </summary>
+        /// <param name="UserId"></param>
+        /// <param name="LeaderKind"></param>
+        public void LeaderPreUserLevel(int UserId, int UserLevel, DateTime ExpiredDate)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            UserRankWhite rank = db.UserRankWhite.FirstOrDefault(m => m.Id == UserId);
+            if(rank == null)
+            {
+                rank = db.UserRankWhite.Add(new UserRankWhite()
+                {
+                    CreateDate = DateTime.Now, //设置时间
+                    UserId = UserId, //用户
+                    Id = UserId,
+                }).Entity;
+                db.SaveChanges();
+            }
+            rank.Rank = UserLevel;
+            rank.UpdateDate = ExpiredDate;
+            db.SaveChanges();
+            db.Dispose();
+        }
+    
+    
     }
 }