Files
BuYuHouDuan/CommonService/Lottery/LotteryPrizeHandler.cs
T
2026-10-12 16:22:04 +08:00

69 lines
2.3 KiB
C#

using System.Threading.Tasks;
using CommonDomain.BaseModel;
using CommonDomain.Enum;
using UserDomain.Entity;
using UserService.User;
using UserService.Param;
using UserDomain.Enum;
using CommonDomain;
namespace CommonService.Lottery
{
public class LotteryPrizeHandler
{
private readonly IUserService _userService;
public LotteryPrizeHandler(IUserService userService)
{
_userService = userService;
}
public async Task Handle(LotteryDrawMessage message)
{
var user = await _userService.GetUser(message.UserId);
if (user == null)
return;
switch (message.Type)
{
case 1:
case 2:
await _userService.UpdateAssets(new UserAssetParam
{
UserId = user.Id,
ChangeType = UserAssetChangeTypeEnum.增加,
Gold = message.Type == 1 ? message.Count : 0,
Diamond = message.Type == 2 ? (int)message.Count : 0,
Source = RewardSource.活动奖励,
Remark = $"抽奖获得{(message.Type == 1 ? "金币" : "钻石")} x{message.Count}"
});
break;
case 3:
case 4:
if (!string.IsNullOrEmpty(message.OtherId))
{
var param = new UserAssetParam
{
UserId = user.Id,
ChangeType = UserAssetChangeTypeEnum.增加,
RewardItems = new List<BaseProductCount>
{
new BaseProductCount
{
Number = message.OtherId,
Count = (int)message.Count
}
},
Source = RewardSource.活动奖励,
Remark = $"抽奖获得道具 x{message.Count}"
};
await _userService.UpdateAssets(param);
}
break;
}
}
}
}