feat: 新增配置

This commit is contained in:
chenchun
2024-10-16 17:49:47 +08:00
parent 3383e86064
commit b88cad7b80
2 changed files with 14 additions and 3 deletions

View File

@@ -16,7 +16,13 @@ namespace Yi.Abp.Domain.Shared.Settings
{ {
context.Add( context.Add(
//每日矿池最大上限 //每日矿池最大上限
new SettingDefinition("MaximumPoolLimit", "100") new SettingDefinition("MaxPoolLimit", "100"),
//每日手动挖矿最大上限
new SettingDefinition("MiningMaxLimit", "10"),
//每次挖矿最小间隔(秒)
new SettingDefinition("MiningMinIntervalSeconds", "5")
); );
} }
} }

View File

@@ -56,11 +56,16 @@ public class MiningPoolManager : DomainService
/// <returns></returns> /// <returns></returns>
public async Task<MiningPoolResult> MiningAsync(Guid userId) public async Task<MiningPoolResult> MiningAsync(Guid userId)
{ {
var result = new MiningPoolResult(); var result = new MiningPoolResult();
//从矿池中开挖,判断矿池是否还有矿 //从矿池中开挖,判断矿池是否还有矿
//根据挖矿概率,进行挖掘 //根据挖矿概率,进行挖掘
//挖到了放到用户仓库即可 //挖到了放到用户仓库即可
var miningMaxLimit = int.Parse(await _settingProvider.GetOrNullAsync("MiningMaxLimit"));
var miningMinIntervalSeconds = int.Parse(await _settingProvider.GetOrNullAsync("MiningMinIntervalSeconds"));
//如果概率是挖到了矿,再从矿物中随机选择一个稀有度,再在当前稀有度中的矿物列表,随机选择一个具体的矿物 //如果概率是挖到了矿,再从矿物中随机选择一个稀有度,再在当前稀有度中的矿物列表,随机选择一个具体的矿物
var pool =await GetMiningPoolContentAsync(); var pool =await GetMiningPoolContentAsync();
if (pool.TotalNumber == 0) if (pool.TotalNumber == 0)
@@ -77,7 +82,7 @@ public class MiningPoolManager : DomainService
//成功后在藏品中根据稀有度概率必定获取一个 //成功后在藏品中根据稀有度概率必定获取一个
var probabilityArray = RarityEnumExtensions.GetProbabilityArray(); var probabilityArray = RarityEnumExtensions.GetProbabilityArray();
var index = GetRandomIndex(probabilityArray); var index = GetRandomIndex(probabilityArray);
var rarityType = (RarityEnum)Enum.GetValues(typeof(RarityEnum)).GetValue(index); var rarityType = (RarityEnum)Enum.GetValues(typeof(RarityEnum)).GetValue(index)!;
var collectiblesList = var collectiblesList =
await _collectiblesRepository._DbQueryable.Where(x => x.Rarity == rarityType).ToListAsync(); await _collectiblesRepository._DbQueryable.Where(x => x.Rarity == rarityType).ToListAsync();
int randomIndex = new Random().Next(collectiblesList.Count); int randomIndex = new Random().Next(collectiblesList.Count);
@@ -165,7 +170,7 @@ public class MiningPoolManager : DomainService
public async Task RefreshMiningPoolAsync() 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 startTime = DateTime.Today.AddHours(10);
DateTime endTime = startTime.AddDays(1); DateTime endTime = startTime.AddDays(1);