From d4641e3a0e0adcfbe656ea8d2e3d868f6ba69aa9 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 15 五月 2026 14:28:36 +0800
Subject: [PATCH] 597 时装特卖 适配限购支持配置总限购,每日限购,每周限购,每月限购

---
 Main/System/HeroSkinFlashSale/HeroSkinFlashSaleManager.cs |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleManager.cs b/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleManager.cs
index 5feedbe..d99ebf7 100644
--- a/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleManager.cs
+++ b/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleManager.cs
@@ -107,12 +107,51 @@
         return heroConfig.SkinIDList[0];
     }
 
-    public bool IsNoSellOutCTGID(int ctgID)
+    public bool IsCanBuy(int ctgID, out bool isNoLimitBuy, out int nowBuyCnt, out int maxBuyCnt)
     {
+        isNoLimitBuy = false;
+        nowBuyCnt = 0;
+        maxBuyCnt = 0;
         CTGConfig config = CTGConfig.Get(ctgID);
-        if (config == null) return false;
-        if (!RechargeManager.Instance.TryGetRechargeCount(ctgID, out var rechargeCount)) return false;
-        return rechargeCount.totalCount < config.TotalBuyCount;
+        if (config == null)
+            return false;
+        if (!RechargeManager.Instance.TryGetRechargeCount(ctgID, out var rechargeCount))
+            return false;
+
+        // 鎵�鏈夐檺鍒堕兘涓�0鏃讹紝鏃犻檺璐拱
+        if (config.TotalBuyCount == 0 && config.DailyBuyCount == 0 &&
+            config.WeekBuyCount == 0 && config.MonthBuyCount == 0)
+        {
+            isNoLimitBuy = true;
+            return true;
+        }
+
+        // 鎸変紭鍏堢骇妫�鏌ワ細姣忔棩 > 姣忓懆 > 姣忔湀 > 鎬昏
+        if (config.DailyBuyCount > 0)
+        {
+            nowBuyCnt = rechargeCount.todayCount;
+            maxBuyCnt = config.DailyBuyCount;
+            return rechargeCount.todayCount < config.DailyBuyCount;
+        }
+        if (config.WeekBuyCount > 0)
+        {
+            nowBuyCnt = rechargeCount.weekPayCount;
+            maxBuyCnt = config.WeekBuyCount;
+            return rechargeCount.weekPayCount < config.WeekBuyCount;
+        }
+        if (config.MonthBuyCount > 0)
+        {
+            nowBuyCnt = rechargeCount.monthPayCount;
+            maxBuyCnt = config.MonthBuyCount;
+            return rechargeCount.monthPayCount < config.MonthBuyCount;
+        }
+        if (config.TotalBuyCount > 0)
+        {
+            nowBuyCnt = rechargeCount.totalCount;
+            maxBuyCnt = config.TotalBuyCount;
+            return rechargeCount.totalCount < config.TotalBuyCount;
+        }
+        return false;
     }
 
     public event Action OnCurrentChooseSkinIDChangeEevent;

--
Gitblit v1.8.0