瀏覽代碼

调整打大盟主标记逻辑

lcl 11 月之前
父節點
當前提交
7792620925
共有 2 個文件被更改,包括 13 次插入25 次删除
  1. 7 8
      AppStart/Helper/LeaderApplyCouponsHelper.cs
  2. 6 17
      AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

+ 7 - 8
AppStart/Helper/LeaderApplyCouponsHelper.cs

@@ -87,12 +87,7 @@ namespace MySystem
                         }
                         db.SaveChanges();
                         
-                        bool BigLeaderFlag = PosCouponPrizeService.Instance.CheckPosCouponLeaderFlag(db, queryList.UserId, count, codes);
-                        if(BigLeaderFlag)
-                        {
-                            couponIds.Clear();
-                        }
-                        dosomething(Id, couponIds);
+                        dosomething(Id, couponIds, codes, count);
                     }
                     catch (Exception ex)
                     {
@@ -106,7 +101,7 @@ namespace MySystem
             }
         }
 
-        public void dosomething(int Id, List<int> couponIds)
+        public void dosomething(int Id, List<int> couponIds, List<string> codes, int count = 0)
         { 
             WebCMSEntities db = new WebCMSEntities();
             OpModels.WebCMSEntities opdb = new OpModels.WebCMSEntities();
@@ -127,7 +122,11 @@ namespace MySystem
                     index += 1;
 
                     //给券打大盟主标记
-                    if(parentUser.LeaderLevel == 2 && !BigLeaderFlag)
+                    if(parentUser.LeaderLevel == 1 && PosCouponPrizeService.Instance.CheckLeaderReserve(db, count, parentUser.Id) && !BigLeaderFlag)
+                    {
+                        BigLeaderFlag = PosCouponPrizeService.Instance.CheckPosCouponLeaderFlag(db, parentUser.Id, count, codes);
+                    }
+                    else if(parentUser.LeaderLevel == 2 && !BigLeaderFlag)
                     {
                         for (int i = 0; i < ApplyList.Count; i++)
                         {

+ 6 - 17
AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

@@ -97,7 +97,6 @@ namespace MySystem
                     bool DirectPrizeFlag = false; //推荐奖励发放标识
                     bool BackAccountFlag = false; //备用金返余额标识
                     bool BigLeaderFlag = false; //大盟主标记
-                    BigLeaderFlag = CheckPosCouponLeaderFlag(db, order.UserId, order.BuyCount, codes);
                     decimal BuyPrize = 0; //购机奖励
                     foreach(string ParentId in ParentNavList)
                     {
@@ -157,7 +156,11 @@ namespace MySystem
                             }
 
                             //给券打大盟主标记
-                            if(parentUser.LeaderLevel == 2 && !BigLeaderFlag)
+                            if(parentUser.LeaderLevel == 1 && CheckLeaderReserve(db, order.BuyCount, parentUser.Id) && !BigLeaderFlag)
+                            {
+                                BigLeaderFlag = CheckPosCouponLeaderFlag(db, parentUser.Id, order.BuyCount, codes);
+                            }
+                            else if(parentUser.LeaderLevel == 2 && !BigLeaderFlag)
                             {
                                 BigLeaderFlag = true;
                                 if(!string.IsNullOrEmpty(order.SnNos))
@@ -815,23 +818,9 @@ namespace MySystem
         public bool CheckPosCouponLeaderFlag(WebCMSEntities db, int UserId, int Count, List<string> codes)
         {
             int SetCount = 0;
-            Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            string ParentNav = user.ParentNav + "," + UserId + ",";
-            int SmallLeaderUserId = 0;
-            string[] ParentNavList = ParentNav.Replace(",,", ",").Trim(',').Split(',');
-            Array.Reverse(ParentNavList);
-            foreach(string SubId in ParentNavList)
-            {
-                int ParentUserId = int.Parse(SubId);
-                Users puser = db.Users.FirstOrDefault(m => m.Id == ParentUserId) ?? new Users();
-                if(puser.LeaderLevel == 1)
-                {
-                    SmallLeaderUserId = puser.Id;
-                }
-            }
             decimal CheckReserve = 400 * Count;
             decimal LeaderReserve = 0;
-            LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => m.SourceUserId == SmallLeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
+            LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => m.SourceUserId == UserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
             if(ReserveRecord != null)
             {
                 int LeaderUserId = ReserveRecord.UserId;