diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Settings/DigitalCollectiblesSettingProvider.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Settings/DigitalCollectiblesSettingProvider.cs
index 68fc1061..29491c38 100644
--- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Settings/DigitalCollectiblesSettingProvider.cs
+++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Settings/DigitalCollectiblesSettingProvider.cs
@@ -16,7 +16,13 @@ namespace Yi.Abp.Domain.Shared.Settings
{
context.Add(
//每日矿池最大上限
- new SettingDefinition("MaximumPoolLimit", "100")
+ new SettingDefinition("MaxPoolLimit", "100"),
+
+ //每日手动挖矿最大上限
+ new SettingDefinition("MiningMaxLimit", "10"),
+
+ //每次挖矿最小间隔(秒)
+ new SettingDefinition("MiningMinIntervalSeconds", "5")
);
}
}
diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MiningPoolManager.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MiningPoolManager.cs
index 9235df9c..68790cb8 100644
--- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MiningPoolManager.cs
+++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MiningPoolManager.cs
@@ -56,11 +56,16 @@ public class MiningPoolManager : DomainService
///
public async Task MiningAsync(Guid userId)
{
+
var result = new MiningPoolResult();
//从矿池中开挖,判断矿池是否还有矿
//根据挖矿概率,进行挖掘
//挖到了放到用户仓库即可
+ var miningMaxLimit = int.Parse(await _settingProvider.GetOrNullAsync("MiningMaxLimit"));
+ var miningMinIntervalSeconds = int.Parse(await _settingProvider.GetOrNullAsync("MiningMinIntervalSeconds"));
+
+
//如果概率是挖到了矿,再从矿物中随机选择一个稀有度,再在当前稀有度中的矿物列表,随机选择一个具体的矿物
var pool =await GetMiningPoolContentAsync();
if (pool.TotalNumber == 0)
@@ -77,7 +82,7 @@ public class MiningPoolManager : DomainService
//成功后在藏品中根据稀有度概率必定获取一个
var probabilityArray = RarityEnumExtensions.GetProbabilityArray();
var index = GetRandomIndex(probabilityArray);
- var rarityType = (RarityEnum)Enum.GetValues(typeof(RarityEnum)).GetValue(index);
+ var rarityType = (RarityEnum)Enum.GetValues(typeof(RarityEnum)).GetValue(index)!;
var collectiblesList =
await _collectiblesRepository._DbQueryable.Where(x => x.Rarity == rarityType).ToListAsync();
int randomIndex = new Random().Next(collectiblesList.Count);
@@ -165,7 +170,7 @@ public class MiningPoolManager : DomainService
public async Task RefreshMiningPoolAsync()
{
//获取当前最大的限制
- var maximumPoolLimit = int.Parse(await _settingProvider.GetOrNullAsync("MaximumPoolLimit"));
+ var maximumPoolLimit = int.Parse(await _settingProvider.GetOrNullAsync("MaxPoolLimit"));
DateTime startTime = DateTime.Today.AddHours(10);
DateTime endTime = startTime.AddDays(1);