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 +++++++++++++++++++++++++++++++++++++++++++----
Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs | 2 +-
2 files changed, 44 insertions(+), 5 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;
diff --git a/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs b/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
index 81086ba..fa7259f 100644
--- a/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
+++ b/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
@@ -179,7 +179,7 @@
CreateAwardScroller(ctgConfig.GainItemList);
- bool isCanBuy = manager.IsNoSellOutCTGID(ctgId);
+ bool isCanBuy = manager.IsCanBuy(ctgId, out _, out _, out _);
//buyImage.gray = !isCanBuy;
buyText.text = !isCanBuy ? Language.Get("storename11") : Language.Get("PayMoneyNum", UIHelper.GetMoneyFormat(orderConfig.PayRMBNumOnSale));
--
Gitblit v1.8.0