Files
BuYuHouDuan/UserSrc/UserService/User/UserMQService.cs
T
2026-10-12 16:22:04 +08:00

66 lines
1.9 KiB
C#

using AutoMapper;
using Common.Utils;
using CommonDomain;
using DotNetCore.CAP;
using Microsoft.Extensions.Logging;
using MongoRepository;
using UserDomain.Entity;
using UserService.Param;
using UserService.Tasks;
using UserService.Tasks.Param;
namespace UserService.User
{
public class UserMQService : IUserMQService, ICapSubscribe
{
private readonly IUserService _userService;
private readonly ITaskService _taskService;
private readonly IMongoBaseRepository<KillFishLog> _killLog;
private readonly IMapper _mapper;
public UserMQService(IUserService userService, ITaskService taskService, IMongoBaseRepository<KillFishLog> killLog, IMapper mapper)
{
_userService = userService;
_taskService = taskService;
_killLog = killLog;
_mapper = mapper;
}
[CapSubscribe("test")]
public async Task Test(string txt)
{
}
[CapSubscribe(TopicKeys.任务完成)]
public async Task CompletedTask(CompletedTaskParam param)
{
_taskService.CompletedTask(param);
}
[CapSubscribe(TopicKeys.用户资产变更)]
public async Task UserAssetChange(UserAssetParam param)
{
await _userService.UpdateAssets(param);
}
[CapSubscribe(TopicKeys.游戏金币结算)]
public async Task GameCoinsSettlement(GameCoinsSettlementParam param)
{
await _userService.GameCoinsSettlement(param);
}
[CapSubscribe(TopicKeys.击杀鱼日志)]
public async Task KillFishLog(AddKillFishLogCapParam param)
{
var model = _mapper.Map<KillFishLog>(param);
model.Id = Guid.NewGuid().ToString();
model.CreateTime = DateTime.Now.ToTimeStamp();
await _killLog.InsertOneAsync(model);
}
}
}