69 lines
2.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|