perf: 优化等级处理
This commit is contained in:
@@ -53,7 +53,7 @@ public class AuditingStore : IAuditingStore, ITransientDependency
|
||||
protected virtual async Task SaveLogAsync(AuditLogInfo auditInfo)
|
||||
{
|
||||
Logger.LogDebug("Yi-请求追踪:" + JsonHelper.ObjToStr(auditInfo, "yyyy-MM-dd HH:mm:ss"));
|
||||
using (var uow = UnitOfWorkManager.Begin(true,isTransactional:false))
|
||||
using (var uow = UnitOfWorkManager.Begin())
|
||||
{
|
||||
await AuditLogRepository.InsertAsync(await Converter.ConvertAsync(auditInfo));
|
||||
await uow.CompleteAsync();
|
||||
|
||||
@@ -110,7 +110,9 @@ namespace Yi.Framework.Bbs.Application.Services.Analyses
|
||||
)
|
||||
.ToPageListAsync(pageIndex, input.MaxResultCount, total);
|
||||
|
||||
output.ForEach(x => { x.LevelName = _bbsUserManager._levelCacheDic[x.Level].Name; });
|
||||
var levelCache = await _bbsUserManager.GetLevelCacheMapAsync();
|
||||
|
||||
output.ForEach(x => { x.LevelName = levelCache[x.Level].Name; });
|
||||
return new PagedResultDto<MoneyTopUserDto>
|
||||
{
|
||||
Items = output,
|
||||
|
||||
@@ -158,10 +158,11 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
|
||||
//查询完主题之后,要过滤一下私有的主题信息
|
||||
items.ApplyPermissionTypeFilter(CurrentUser.Id ?? Guid.Empty);
|
||||
|
||||
var levelCacheDic= await _bbsUserManager.GetLevelCacheMapAsync();
|
||||
//等级、是否点赞赋值
|
||||
items?.ForEach(x =>
|
||||
{
|
||||
x.User.LevelName = _bbsUserManager._levelCacheDic[x.User.Level].Name;
|
||||
x.User.LevelName = levelCacheDic[x.User.Level].Name;
|
||||
if (CurrentUser.Id is not null)
|
||||
{
|
||||
//默认fasle
|
||||
@@ -212,7 +213,8 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
|
||||
}
|
||||
}, true)
|
||||
.ToListAsync();
|
||||
output?.ForEach(x => x.User.LevelName = _bbsUserManager._levelCacheDic[x.User.Level].Name);
|
||||
var levelCacheDic= await _bbsUserManager.GetLevelCacheMapAsync();
|
||||
output?.ForEach(x => x.User.LevelName = levelCacheDic[x.User.Level].Name);
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
||||
{
|
||||
public ISqlSugarRepository<UserAggregateRoot> _userRepository;
|
||||
public ISqlSugarRepository<BbsUserExtraInfoEntity> _bbsUserInfoRepository;
|
||||
public Dictionary<int, LevelCacheItem> _levelCacheDic;
|
||||
// public Dictionary<int, LevelCacheItem> _levelCacheDic;
|
||||
private LevelManager _levelManager;
|
||||
|
||||
public BbsUserManager(ISqlSugarRepository<UserAggregateRoot> userRepository,
|
||||
ISqlSugarRepository<BbsUserExtraInfoEntity> bbsUserInfoRepository,
|
||||
@@ -23,7 +24,12 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
||||
{
|
||||
_userRepository = userRepository;
|
||||
_bbsUserInfoRepository = bbsUserInfoRepository;
|
||||
_levelCacheDic = levelManager.GetCacheMapAsync().Result;
|
||||
_levelManager = levelManager;
|
||||
}
|
||||
|
||||
public async Task<Dictionary<int, LevelCacheItem>> GetLevelCacheMapAsync()
|
||||
{
|
||||
return await _levelManager.GetCacheMapAsync();
|
||||
}
|
||||
|
||||
public async Task<BbsUserInfoDto?> GetBbsUserInfoAsync(Guid userId)
|
||||
@@ -44,7 +50,8 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
||||
}, true)
|
||||
.FirstAsync(user => user.Id == userId);
|
||||
|
||||
userInfo.LevelName = _levelCacheDic[userInfo.Level].Name;
|
||||
var levelCacheDic= await GetLevelCacheMapAsync();
|
||||
userInfo.LevelName = levelCacheDic[userInfo.Level].Name;
|
||||
return userInfo;
|
||||
}
|
||||
|
||||
@@ -66,7 +73,8 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
||||
DiscussNumber = info.DiscussNumber
|
||||
}, true)
|
||||
.ToListAsync();
|
||||
userInfos?.ForEach(userInfo => userInfo.LevelName = _levelCacheDic[userInfo.Level].Name);
|
||||
var levelCacheDic= await GetLevelCacheMapAsync();
|
||||
userInfos?.ForEach(userInfo => userInfo.LevelName =levelCacheDic[userInfo.Level].Name);
|
||||
|
||||
return userInfos ?? new List<BbsUserInfoDto>();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user