feat: 调整抽奖概率,提高

This commit is contained in:
橙子
2024-11-02 15:48:28 +08:00
parent 894d4eb051
commit 0e6f79c28e
2 changed files with 18 additions and 14 deletions

View File

@@ -16,7 +16,7 @@ namespace Yi.Framework.Bbs.Application.Services.Integral
/// <summary>
/// 大转盘
/// Todo: 可放入领域层
/// Todo: 可放入领域层,但是太简单了,不重要
/// </summary>
/// <returns></returns>
[Authorize]
@@ -32,13 +32,7 @@ namespace Yi.Framework.Bbs.Application.Services.Integral
int[] values = new int[10] { 0, 10, 30, 50, 60, 80, 90, 100, 200, 666 };
var index = GetWheelIndex();
var value = values[index] - 50;
////不存在负数钱钱
//if (value < 0)
//{
// value = 0;
//}
//修改钱钱,如果钱钱不足,直接会丢出去,那本次抽奖将无效
await _localEventBus.PublishAsync(new MoneyChangeEventArgs { UserId = CurrentUser.Id!.Value, Number = value }, false);
@@ -47,7 +41,7 @@ namespace Yi.Framework.Bbs.Application.Services.Integral
private int GetWheelIndex()
{
int[] probabilities = { 30, 40, 30, 15, 15, 10, 4, 3, 2, 1 };
int[] probabilities = {5 , 30, 40, 30, 20, 10, 4, 3, 2, 1 };
int total = 0;
foreach (var prob in probabilities)

View File

@@ -25,14 +25,17 @@ namespace Yi.Framework.Bbs.Domain.EventHandlers
}
public async Task HandleEventAsync(BbsNoticeEventArgs eventData)
{
//离线存储
var entity= await _repository.InsertReturnEntityAsync(new BbsNoticeAggregateRoot(eventData.NoticeType, eventData.Message, eventData.AcceptUserId));
switch (eventData.NoticeType)
//是否需要离线存储
bool isStore = true;
var now = DateTime.Now;
switch (eventData.NoticeType)
{
case Shared.Enums.NoticeTypeEnum.Personal:
if (BbsNoticeHub.HubUserModels.TryGetValue(eventData.AcceptUserId.ToString(), out var hubUserModel))
{
_hubContext.Clients.Client(hubUserModel.ConnnectionId).SendAsync(NoticeTypeEnum.Personal.ToString(), eventData.Message,entity.CreationTime);
_hubContext.Clients.Client(hubUserModel.ConnnectionId).SendAsync(NoticeTypeEnum.Personal.ToString(), eventData.Message,now);
}
break;
case Shared.Enums.NoticeTypeEnum.Broadcast:
@@ -42,13 +45,20 @@ namespace Yi.Framework.Bbs.Domain.EventHandlers
case Shared.Enums.NoticeTypeEnum.Money:
if (BbsNoticeHub.HubUserModels.TryGetValue(eventData.AcceptUserId.ToString(), out var hubUserModel2))
{
_hubContext.Clients.Client(hubUserModel2.ConnnectionId).SendAsync(NoticeTypeEnum.Money.ToString(), eventData.Message,entity.CreationTime);
_hubContext.Clients.Client(hubUserModel2.ConnnectionId).SendAsync(NoticeTypeEnum.Money.ToString(), eventData.Message,now);
}
isStore = false;
break;
default:
break;
}
if (isStore)
{ //离线存储
var entity= await _repository.InsertReturnEntityAsync(new BbsNoticeAggregateRoot(eventData.NoticeType, eventData.Message, eventData.AcceptUserId){CreationTime = now});
}
}
}
}