feat: 完成等级功能页面
This commit is contained in:
@@ -1,10 +1,8 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using TencentCloud.Ame.V20190916.Models;
|
||||
using Volo.Abp.Application.Services;
|
||||
using Yi.Framework.Bbs.Application.Contracts.IServices;
|
||||
using Yi.Framework.Bbs.Domain.Managers;
|
||||
using Yi.Framework.Rbac.Domain.Shared.Dtos;
|
||||
|
||||
namespace Yi.Framework.Bbs.Application.Services
|
||||
{
|
||||
@@ -16,16 +14,25 @@ namespace Yi.Framework.Bbs.Application.Services
|
||||
_bbsUserManager = bbsUserManager;
|
||||
}
|
||||
|
||||
[HttpGet("bbs-user/{userName}")]
|
||||
public async Task<BbsUserInfoDto> GetUserInfoByUserNameAsync([FromRoute][Required] string userName)
|
||||
[HttpGet("bbs-user/{userNameOrUserId}")]
|
||||
public async Task<BbsUserInfoDto> GetUserInfoByUserNameOrUserIdAsync([FromRoute][Required] string userNameOrUserId)
|
||||
{
|
||||
|
||||
var userEntity = await _bbsUserManager._userRepository.GetFirstAsync(x => x.UserName == userName);
|
||||
if (userEntity == null)
|
||||
Guid userId;
|
||||
if (Guid.TryParse(userNameOrUserId, out var userGuidId))
|
||||
{
|
||||
throw new Volo.Abp.UserFriendlyException("该用户不存在");
|
||||
userId = userGuidId;
|
||||
}
|
||||
var output =await _bbsUserManager.GetBbsUserInfoAsync(userEntity.Id);
|
||||
else
|
||||
{
|
||||
var userEntity = await _bbsUserManager._userRepository.GetFirstAsync(x => x.UserName == userNameOrUserId);
|
||||
if (userEntity == null)
|
||||
{
|
||||
throw new Volo.Abp.UserFriendlyException("该用户不存在");
|
||||
}
|
||||
userId= userEntity.Id;
|
||||
}
|
||||
|
||||
var output =await _bbsUserManager.GetBbsUserInfoAsync(userId);
|
||||
|
||||
return output!;
|
||||
}
|
||||
|
||||
@@ -36,11 +36,11 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
||||
var currentNewExperience = userInfo.Experience + moneyNumber * 1;
|
||||
|
||||
//修改钱钱,如果钱钱不足,直接会丢出去
|
||||
await _localEventBus.PublishAsync(new MoneyChangeEventArgs { UserId = userId, Number = moneyNumber });
|
||||
await _localEventBus.PublishAsync(new MoneyChangeEventArgs { UserId = userId, Number = -moneyNumber },false);
|
||||
|
||||
//更改最终的经验再变化等级
|
||||
var levelList = _levelCacheItem.OrderBy(x => x.CurrentLevel).ToList();
|
||||
var currentNewLevel = 0;
|
||||
var levelList = _levelCacheItem.OrderByDescending(x => x.CurrentLevel).ToList();
|
||||
var currentNewLevel = 1;
|
||||
foreach (var level in levelList)
|
||||
{
|
||||
if (currentNewExperience >= level.MinExperience)
|
||||
@@ -49,9 +49,11 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
||||
break;
|
||||
}
|
||||
}
|
||||
userInfo.Level = currentNewLevel;
|
||||
userInfo.Experience = currentNewExperience;
|
||||
await _bbsUserManager._bbsUserInfoRepository.UpdateAsync(userInfo.Adapt<BbsUserExtraInfoEntity>());
|
||||
|
||||
var exUserInfo = await _bbsUserManager._bbsUserInfoRepository.GetAsync(x => x.UserId == userInfo.Id);
|
||||
exUserInfo.Level = currentNewLevel;
|
||||
exUserInfo.Experience = currentNewExperience;
|
||||
await _bbsUserManager._bbsUserInfoRepository.UpdateAsync(exUserInfo);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user