feat: 支持用户限制

This commit is contained in:
ccnetcore
2025-06-02 02:12:38 +08:00
parent 8b92cd6bed
commit 629add1e8a
6 changed files with 91 additions and 76 deletions

View File

@@ -8,7 +8,7 @@ namespace Yi.Framework.Bbs.Application.Services
{ {
public class BbsUserInfoService : ApplicationService, IBbsUserInfoService public class BbsUserInfoService : ApplicationService, IBbsUserInfoService
{ {
private BbsUserManager _bbsUserManager; private readonly BbsUserManager _bbsUserManager;
public BbsUserInfoService(BbsUserManager bbsUserManager) public BbsUserInfoService(BbsUserManager bbsUserManager)
{ {
_bbsUserManager = bbsUserManager; _bbsUserManager = bbsUserManager;

View File

@@ -2,8 +2,10 @@
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Uow; using Volo.Abp.Uow;
using Volo.Abp.Users;
using Yi.Framework.Bbs.Application.Contracts.Dtos.Argee; using Yi.Framework.Bbs.Application.Contracts.Dtos.Argee;
using Yi.Framework.Bbs.Domain.Entities.Forum; using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Managers;
using Yi.Framework.SqlSugarCore.Abstractions; using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Bbs.Application.Services.Forum namespace Yi.Framework.Bbs.Application.Services.Forum
@@ -13,12 +15,13 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
/// </summary> /// </summary>
public class AgreeService : ApplicationService, IApplicationService public class AgreeService : ApplicationService, IApplicationService
{ {
public AgreeService(ISqlSugarRepository<AgreeEntity> repository, ISqlSugarRepository<DiscussAggregateRoot> discssRepository) public AgreeService(ISqlSugarRepository<AgreeEntity> repository, ISqlSugarRepository<DiscussAggregateRoot> discssRepository, BbsUserManager bbsUserManager)
{ {
_repository = repository; _repository = repository;
_discssRepository = discssRepository; _discssRepository = discssRepository;
_bbsUserManager = bbsUserManager;
} }
private readonly BbsUserManager _bbsUserManager;
private ISqlSugarRepository<AgreeEntity> _repository { get; set; } private ISqlSugarRepository<AgreeEntity> _repository { get; set; }
private ISqlSugarRepository<DiscussAggregateRoot> _discssRepository { get; set; } private ISqlSugarRepository<DiscussAggregateRoot> _discssRepository { get; set; }
@@ -26,17 +29,17 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
/// <summary> /// <summary>
/// 点赞,返回true为点赞+1返回false为点赞-1 /// 点赞,返回true为点赞+1返回false为点赞-1
/// Todo: 可放入领域层 /// Todo: 可放入领域层,但是没必要,这个项目太简单了
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[Authorize] [Authorize]
public async Task<AgreeDto> PostOperateAsync(Guid discussId) public async Task<AgreeDto> PostOperateAsync(Guid discussId)
{ {
await _bbsUserManager.VerifyUserLimitAsync(CurrentUser.GetId());
var entity = await _repository.GetFirstAsync(x => x.DiscussId == discussId && x.CreatorId == CurrentUser.Id); var entity = await _repository.GetFirstAsync(x => x.DiscussId == discussId && x.CreatorId == CurrentUser.Id);
//判断是否已经点赞过 //判断是否已经点赞过
if (entity is null) if (entity is null)
{ {
//没点赞过,添加记录即可,,修改总点赞数量 //没点赞过,添加记录即可,,修改总点赞数量
await _repository.InsertAsync(new AgreeEntity(discussId)); await _repository.InsertAsync(new AgreeEntity(discussId));
var discussEntity = await _discssRepository.GetByIdAsync(discussId); var discussEntity = await _discssRepository.GetByIdAsync(discussId);

View File

@@ -1,28 +1,20 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Text; using System.Text;
using Mapster; using Mapster;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using SqlSugar; using SqlSugar;
using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Repositories;
using Yi.Framework.Bbs.Application.Contracts.Dtos.Article; using Yi.Framework.Bbs.Application.Contracts.Dtos.Article;
using Yi.Framework.Bbs.Application.Contracts.Dtos.Plate;
using Yi.Framework.Bbs.Application.Contracts.IServices; using Yi.Framework.Bbs.Application.Contracts.IServices;
using Yi.Framework.Bbs.Domain.Entities.Forum; using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Managers; using Yi.Framework.Bbs.Domain.Managers;
using Yi.Framework.Bbs.Domain.Repositories; using Yi.Framework.Bbs.Domain.Repositories;
using Yi.Framework.Bbs.Domain.Shared.Consts; using Yi.Framework.Bbs.Domain.Shared.Consts;
using Yi.Framework.Bbs.Domain.Shared.Model; using Yi.Framework.Bbs.Domain.Shared.Model;
using Yi.Framework.Core.Extensions;
using Yi.Framework.Ddd.Application; using Yi.Framework.Ddd.Application;
using Yi.Framework.Rbac.Domain.Authorization; using Yi.Framework.Rbac.Domain.Authorization;
using Yi.Framework.Rbac.Domain.Extensions;
using Yi.Framework.Rbac.Domain.Shared.Consts;
using Yi.Framework.SqlSugarCore.Abstractions; using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Bbs.Application.Services.Forum namespace Yi.Framework.Bbs.Application.Services.Forum
@@ -36,19 +28,16 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
{ {
public ArticleService(IArticleRepository articleRepository, public ArticleService(IArticleRepository articleRepository,
ISqlSugarRepository<DiscussAggregateRoot> discussRepository, ISqlSugarRepository<DiscussAggregateRoot> discussRepository,
IDiscussService discussService,
ForumManager forumManager) : base(articleRepository) ForumManager forumManager) : base(articleRepository)
{ {
_articleRepository = articleRepository; _articleRepository = articleRepository;
_discussRepository = discussRepository; _discussRepository = discussRepository;
_discussService = discussService;
_forumManager = forumManager; _forumManager = forumManager;
} }
private ForumManager _forumManager; private readonly ForumManager _forumManager;
private IArticleRepository _articleRepository; private readonly IArticleRepository _articleRepository;
private ISqlSugarRepository<DiscussAggregateRoot> _discussRepository; private readonly ISqlSugarRepository<DiscussAggregateRoot> _discussRepository;
private IDiscussService _discussService;
public override async Task<PagedResultDto<ArticleGetListOutputDto>> GetListAsync(ArticleGetListInputVo input) public override async Task<PagedResultDto<ArticleGetListOutputDto>> GetListAsync(ArticleGetListInputVo input)
{ {
@@ -123,7 +112,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
/// <exception cref="UserFriendlyException"></exception> /// <exception cref="UserFriendlyException"></exception>
[Permission("bbs:article:add")] [Permission("bbs:article:add")]
[Authorize] [Authorize]
public async override Task<ArticleGetOutputDto> CreateAsync(ArticleCreateInputVo input) public override async Task<ArticleGetOutputDto> CreateAsync(ArticleCreateInputVo input)
{ {
await VerifyPermissionAsync(input.DiscussId); await VerifyPermissionAsync(input.DiscussId);
return await base.CreateAsync(input); return await base.CreateAsync(input);

View File

@@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc;
using SqlSugar; using SqlSugar;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Users;
using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser; using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser;
using Yi.Framework.Bbs.Application.Contracts.Dtos.Comment; using Yi.Framework.Bbs.Application.Contracts.Dtos.Comment;
using Yi.Framework.Bbs.Application.Contracts.IServices; using Yi.Framework.Bbs.Application.Contracts.IServices;
@@ -34,14 +35,11 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
_repository = CommentRepository; _repository = CommentRepository;
_bbsUserManager = bbsUserManager; _bbsUserManager = bbsUserManager;
} }
private ForumManager _forumManager { get; set; } private ForumManager _forumManager { get; set; }
private ISqlSugarRepository<DiscussAggregateRoot> _discussRepository { get; set; } private ISqlSugarRepository<DiscussAggregateRoot> _discussRepository { get; set; }
private IDiscussService _discussService { get; set; } private IDiscussService _discussService { get; set; }
/// <summary> /// <summary>
/// 获取改主题下的评论,结构为二维列表,该查询无分页 /// 获取改主题下的评论,结构为二维列表,该查询无分页
/// </summary> /// </summary>
@@ -127,7 +125,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
{ {
throw new UserFriendlyException("评论不能为空"); throw new UserFriendlyException("评论不能为空");
} }
await _bbsUserManager.VerifyUserLimitAsync(CurrentUser.GetId());
var discuess = await _discussRepository.GetFirstAsync(x => x.Id == input.DiscussId); var discuess = await _discussRepository.GetFirstAsync(x => x.Id == input.DiscussId);
if (discuess is null) if (discuess is null)
{ {

View File

@@ -40,10 +40,12 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
private ISqlSugarRepository<AgreeEntity> _agreeRepository; private ISqlSugarRepository<AgreeEntity> _agreeRepository;
private BbsUserManager _bbsUserManager; private BbsUserManager _bbsUserManager;
private IDiscussLableRepository _discussLableRepository; private IDiscussLableRepository _discussLableRepository;
public DiscussService(BbsUserManager bbsUserManager, ForumManager forumManager, public DiscussService(BbsUserManager bbsUserManager, ForumManager forumManager,
ISqlSugarRepository<DiscussTopEntity> discussTopRepository, ISqlSugarRepository<DiscussTopEntity> discussTopRepository,
ISqlSugarRepository<PlateAggregateRoot> plateEntityRepository, ILocalEventBus localEventBus, ISqlSugarRepository<PlateAggregateRoot> plateEntityRepository, ILocalEventBus localEventBus,
ISqlSugarRepository<AgreeEntity> agreeRepository, IDiscussLableRepository discussLableRepository) : base(forumManager._discussRepository) ISqlSugarRepository<AgreeEntity> agreeRepository, IDiscussLableRepository discussLableRepository) : base(
forumManager._discussRepository)
{ {
_forumManager = forumManager; _forumManager = forumManager;
_plateEntityRepository = plateEntityRepository; _plateEntityRepository = plateEntityRepository;
@@ -65,7 +67,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async override Task<DiscussGetOutputDto> GetAsync(Guid id) public override async Task<DiscussGetOutputDto> GetAsync(Guid id)
{ {
//查询主题发布 浏览主题 事件,浏览数+1 //查询主题发布 浏览主题 事件,浏览数+1
var output = await _forumManager._discussRepository._DbQueryable var output = await _forumManager._discussRepository._DbQueryable
@@ -98,7 +100,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
}, true) }, true)
.FirstAsync(discuss => discuss.Id == id); .FirstAsync(discuss => discuss.Id == id);
if (output is null) if (output is null)
{ {
throw new UserFriendlyException("该主题不存在", "404"); throw new UserFriendlyException("该主题不存在", "404");
} }
@@ -108,7 +110,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
case DiscussTypeEnum.Article: break; case DiscussTypeEnum.Article: break;
//查询的是悬赏主题 //查询的是悬赏主题
case DiscussTypeEnum.Reward: case DiscussTypeEnum.Reward:
var reward= await _forumManager._discussRewardRepository.GetAsync(x=>x.DiscussId==output.Id); var reward = await _forumManager._discussRewardRepository.GetAsync(x => x.DiscussId == output.Id);
output.RewardData = reward.Adapt<DiscussRewardGetOutputDto>(); output.RewardData = reward.Adapt<DiscussRewardGetOutputDto>();
break; break;
} }
@@ -116,7 +118,8 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
//组装点赞 //组装点赞
var agreeCreatorList = var agreeCreatorList =
(await _agreeRepository._DbQueryable.Where(x => x.DiscussId == output.Id).Select(x=>x.CreatorId).ToListAsync()); (await _agreeRepository._DbQueryable.Where(x => x.DiscussId == output.Id).Select(x => x.CreatorId)
.ToListAsync());
//已登录 //已登录
if (CurrentUser.Id is not null) if (CurrentUser.Id is not null)
{ {
@@ -124,17 +127,17 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
} }
//组装标签 //组装标签
var lableDic=await _discussLableRepository.GetDiscussLableCacheMapAsync(); var lableDic = await _discussLableRepository.GetDiscussLableCacheMapAsync();
foreach (var lableId in output.DiscussLableIds) foreach (var lableId in output.DiscussLableIds)
{ {
if (lableDic.TryGetValue(lableId,out var item)) if (lableDic.TryGetValue(lableId, out var item))
{ {
output.Lables.Add(item.Adapt<DiscussLableGetOutputDto>()); output.Lables.Add(item.Adapt<DiscussLableGetOutputDto>());
} }
} }
//如果没有权限 //如果没有权限
if (!await _forumManager.VerifyDiscussPermissionAsync(output.Id,CurrentUser.Id, CurrentUser.Roles)) if (!await _forumManager.VerifyDiscussPermissionAsync(output.Id, CurrentUser.Id, CurrentUser.Roles))
{ {
output.SetNoPermission(); output.SetNoPermission();
} }
@@ -147,6 +150,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
{ DiscussId = output.Id, OldSeeNum = output.SeeNum }); { DiscussId = output.Id, OldSeeNum = output.SeeNum });
return output; return output;
} }
/// <summary> /// <summary>
/// 查询 /// 查询
/// </summary> /// </summary>
@@ -170,7 +174,8 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
// .OrderByIF(input.Type == QueryDiscussTypeEnum.New, // .OrderByIF(input.Type == QueryDiscussTypeEnum.New,
// @"COALESCE(discuss.LastModificationTime, discuss.CreationTime) DESC") // @"COALESCE(discuss.LastModificationTime, discuss.CreationTime) DESC")
//采用上方写法 //采用上方写法
.OrderByIF(input.Type == QueryDiscussTypeEnum.New,discuss=>SqlFunc.Coalesce(discuss.LastModificationTime,discuss.CreationTime),OrderByType.Desc) .OrderByIF(input.Type == QueryDiscussTypeEnum.New, discuss => discuss.CreationTime, OrderByType.Desc)
// .OrderByIF(input.Type == QueryDiscussTypeEnum.New,discuss=>SqlFunc.Coalesce(discuss.LastModificationTime,discuss.CreationTime),OrderByType.Desc)
.OrderByIF(input.Type == QueryDiscussTypeEnum.Host, discuss => discuss.SeeNum, OrderByType.Desc) .OrderByIF(input.Type == QueryDiscussTypeEnum.Host, discuss => discuss.SeeNum, OrderByType.Desc)
.OrderByIF(input.Type == QueryDiscussTypeEnum.Suggest, discuss => discuss.AgreeNum, OrderByType.Desc) .OrderByIF(input.Type == QueryDiscussTypeEnum.Suggest, discuss => discuss.AgreeNum, OrderByType.Desc)
.Select((discuss, user, info) => new DiscussGetListOutputDto .Select((discuss, user, info) => new DiscussGetListOutputDto
@@ -199,8 +204,8 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
.GroupBy(x => x.DiscussId) .GroupBy(x => x.DiscussId)
.ToDictionary(x => x.Key, y => y.Select(y => y.CreatorId).ToList()); .ToDictionary(x => x.Key, y => y.Select(y => y.CreatorId).ToList());
var levelCacheDic= await _bbsUserManager.GetLevelCacheMapAsync(); var levelCacheDic = await _bbsUserManager.GetLevelCacheMapAsync();
var lableDic=await _discussLableRepository.GetDiscussLableCacheMapAsync(); var lableDic = await _discussLableRepository.GetDiscussLableCacheMapAsync();
//组装等级、是否点赞赋值、标签 //组装等级、是否点赞赋值、标签
items?.ForEach(x => items?.ForEach(x =>
@@ -209,7 +214,7 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
if (CurrentUser.Id is not null) if (CurrentUser.Id is not null)
{ {
//默认fasle //默认fasle
if (agreeDic.TryGetValue(x.Id,out var userIds)) if (agreeDic.TryGetValue(x.Id, out var userIds))
{ {
x.IsAgree = userIds.Contains(CurrentUser.Id); x.IsAgree = userIds.Contains(CurrentUser.Id);
} }
@@ -217,12 +222,11 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
foreach (var lableId in x.DiscussLableIds) foreach (var lableId in x.DiscussLableIds)
{ {
if (lableDic.TryGetValue(lableId,out var item)) if (lableDic.TryGetValue(lableId, out var item))
{ {
x.Lables.Add(item.Adapt<DiscussLableGetOutputDto>()); x.Lables.Add(item.Adapt<DiscussLableGetOutputDto>());
} }
} }
}); });
return new PagedResultDto<DiscussGetListOutputDto>(total, items); return new PagedResultDto<DiscussGetListOutputDto>(total, items);
} }
@@ -264,15 +268,15 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
} }
}, true) }, true)
.ToListAsync(); .ToListAsync();
var levelCacheDic= await _bbsUserManager.GetLevelCacheMapAsync(); var levelCacheDic = await _bbsUserManager.GetLevelCacheMapAsync();
var lableDic=await _discussLableRepository.GetDiscussLableCacheMapAsync(); var lableDic = await _discussLableRepository.GetDiscussLableCacheMapAsync();
output?.ForEach(x => output?.ForEach(x =>
{ {
x.User.LevelName = levelCacheDic[x.User.Level].Name; x.User.LevelName = levelCacheDic[x.User.Level].Name;
foreach (var lableId in x.DiscussLableIds) foreach (var lableId in x.DiscussLableIds)
{ {
if (lableDic.TryGetValue(lableId,out var item)) if (lableDic.TryGetValue(lableId, out var item))
{ {
x.Lables.Add(item.Adapt<DiscussLableGetOutputDto>()); x.Lables.Add(item.Adapt<DiscussLableGetOutputDto>());
} }
@@ -311,7 +315,9 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
} }
} }
var entity = await _forumManager.CreateDiscussAsync(await MapToEntityAsync(input),input.RewardData.Adapt<DiscussRewardAggregateRoot>()); await _bbsUserManager.VerifyUserLimitAsync(CurrentUser.GetId());
var entity = await _forumManager.CreateDiscussAsync(await MapToEntityAsync(input),
input.RewardData.Adapt<DiscussRewardAggregateRoot>());
return await MapToGetOutputDtoAsync(entity); return await MapToGetOutputDtoAsync(entity);
} }
@@ -322,22 +328,17 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
/// <exception cref="UserFriendlyException"></exception> /// <exception cref="UserFriendlyException"></exception>
[HttpPut("discuss/reward/resolve/{discussId}")] [HttpPut("discuss/reward/resolve/{discussId}")]
[Authorize] [Authorize]
public async Task SetRewardResolvedAsync([FromRoute]Guid discussId) public async Task SetRewardResolvedAsync([FromRoute] Guid discussId)
{ {
var reward= await _forumManager._discussRewardRepository.GetFirstAsync(x=>x.DiscussId==discussId); var reward = await _forumManager._discussRewardRepository.GetFirstAsync(x => x.DiscussId == discussId);
if (reward is null) if (reward is null)
{ {
throw new UserFriendlyException("未找到该悬赏主题","404"); throw new UserFriendlyException("未找到该悬赏主题", "404");
} }
//设置已解决 //设置已解决
reward.SetResolved(); reward.SetResolved();
await _forumManager._discussRewardRepository.UpdateAsync(reward); await _forumManager._discussRewardRepository.UpdateAsync(reward);
}
public override Task<DiscussGetOutputDto> UpdateAsync(Guid id, DiscussUpdateInput input)
{
return base.UpdateAsync(id, input);
} }
} }
} }

View File

@@ -13,25 +13,49 @@ namespace Yi.Framework.Bbs.Domain.Managers
public class BbsUserManager : DomainService public class BbsUserManager : DomainService
{ {
public ISqlSugarRepository<UserAggregateRoot> _userRepository; public ISqlSugarRepository<UserAggregateRoot> _userRepository;
public ISqlSugarRepository<BbsUserExtraInfoEntity> _bbsUserInfoRepository;
// public Dictionary<int, LevelCacheItem> _levelCacheDic;
private LevelManager _levelManager;
private readonly LevelManager _levelManager;
public BbsUserManager(ISqlSugarRepository<UserAggregateRoot> userRepository, public BbsUserManager(ISqlSugarRepository<UserAggregateRoot> userRepository,
ISqlSugarRepository<BbsUserExtraInfoEntity> bbsUserInfoRepository, ISqlSugarRepository<BbsUserExtraInfoEntity> bbsUserInfoRepository,
LevelManager levelManager LevelManager levelManager
) )
{ {
_userRepository = userRepository; _userRepository = userRepository;
_bbsUserInfoRepository = bbsUserInfoRepository;
_levelManager = levelManager; _levelManager = levelManager;
} }
/// <summary>
/// 校验用户限制
/// </summary>
/// <param name="userId"></param>
/// <exception cref="UserFriendlyException"></exception>
public async Task VerifyUserLimitAsync(Guid userId)
{
var userInfo = await GetBbsUserInfoAsync(userId);
if (userInfo.UserLimit == UserLimitEnum.Ban)
{
throw new UserFriendlyException("你已被禁用,如存疑虑,请联系管理员进行申诉");
}
if (userInfo.UserLimit == UserLimitEnum.Dangerous)
{
throw new UserFriendlyException("您的账号被标记为危险状态,请遵规守法,等待后续解除");
}
}
/// <summary>
/// 获取等级关系
/// </summary>
/// <returns></returns>
public async Task<Dictionary<int, LevelCacheItem>> GetLevelCacheMapAsync() public async Task<Dictionary<int, LevelCacheItem>> GetLevelCacheMapAsync()
{ {
return await _levelManager.GetCacheMapAsync(); return await _levelManager.GetCacheMapAsync();
} }
/// <summary>
/// 获取bbs用户信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public async Task<BbsUserInfoDto?> GetBbsUserInfoAsync(Guid userId) public async Task<BbsUserInfoDto?> GetBbsUserInfoAsync(Guid userId)
{ {
var userInfo = await _userRepository._DbQueryable var userInfo = await _userRepository._DbQueryable
@@ -50,7 +74,7 @@ namespace Yi.Framework.Bbs.Domain.Managers
}, true) }, true)
.FirstAsync(user => user.Id == userId); .FirstAsync(user => user.Id == userId);
var levelCacheDic= await GetLevelCacheMapAsync(); var levelCacheDic = await GetLevelCacheMapAsync();
userInfo.LevelName = levelCacheDic[userInfo.Level].Name; userInfo.LevelName = levelCacheDic[userInfo.Level].Name;
return userInfo; return userInfo;
} }
@@ -73,8 +97,8 @@ namespace Yi.Framework.Bbs.Domain.Managers
DiscussNumber = info.DiscussNumber DiscussNumber = info.DiscussNumber
}, true) }, true)
.ToListAsync(); .ToListAsync();
var levelCacheDic= await GetLevelCacheMapAsync(); var levelCacheDic = await GetLevelCacheMapAsync();
userInfos?.ForEach(userInfo => userInfo.LevelName =levelCacheDic[userInfo.Level].Name); userInfos?.ForEach(userInfo => userInfo.LevelName = levelCacheDic[userInfo.Level].Name);
return userInfos ?? new List<BbsUserInfoDto>(); return userInfos ?? new List<BbsUserInfoDto>();
} }