瀏覽代碼

更新商城购券打大盟主标记逻辑

lcl 1 年之前
父節點
當前提交
1529f53ffc
共有 1 個文件被更改,包括 25 次插入3 次删除
  1. 25 3
      AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

+ 25 - 3
AppStart/Helper/PosCouponPrize/PosCouponPrizeService.cs

@@ -772,11 +772,33 @@ namespace MySystem
                 decimal CheckReserve = 400 * Count;
                 if(LeaderReserve < CheckReserve)
                 {
-                    LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve >= CheckReserve);
+                    LeaderReserveRecord ReserveRecord = db.LeaderReserveRecord.FirstOrDefault(m => m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
                     if(ReserveRecord != null)
                     {
-                        LeaderReserve = ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve;
-                        ReserveRecord.UsedReserve += CheckReserve;
+                        if(ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve >= CheckReserve)
+                        {
+                            LeaderReserve = CheckReserve;
+                            ReserveRecord.UsedReserve += CheckReserve;
+                        }
+                        else
+                        {
+                            decimal OtherLeaderReserve = ReserveRecord.ChangeAmt - ReserveRecord.UsedReserve;
+                            ReserveRecord.UsedReserve += OtherLeaderReserve;
+                            LeaderReserveRecord ReserveRecord2 = db.LeaderReserveRecord.FirstOrDefault(m => m.Id > ReserveRecord.Id && m.UserId == LeaderUserId && m.Remark == "推荐小盟主" && m.ChangeAmt - m.UsedReserve > 0);
+                            if(ReserveRecord2 != null)
+                            {
+                                if(ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve >= CheckReserve - OtherLeaderReserve)
+                                {
+                                    LeaderReserve = CheckReserve - OtherLeaderReserve;
+                                    ReserveRecord.UsedReserve += CheckReserve - OtherLeaderReserve;
+                                }
+                                else
+                                {
+                                    OtherLeaderReserve = ReserveRecord2.ChangeAmt - ReserveRecord2.UsedReserve;
+                                    ReserveRecord.UsedReserve += OtherLeaderReserve;
+                                }
+                            }
+                        }
                     }
                 }
                 if(coupon != null && LeaderReserve >= CheckReserve)