fix: 修复等级排序问题
This commit is contained in:
@@ -19,8 +19,10 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
|||||||
private IDistributedCache<List<LevelCacheItem>> _levelCache;
|
private IDistributedCache<List<LevelCacheItem>> _levelCache;
|
||||||
private IRepository<LevelAggregateRoot> _repository;
|
private IRepository<LevelAggregateRoot> _repository;
|
||||||
private ISqlSugarRepository<BbsUserExtraInfoEntity> _bbsUserRepository;
|
private ISqlSugarRepository<BbsUserExtraInfoEntity> _bbsUserRepository;
|
||||||
public LevelManager( ILocalEventBus localEventBus,
|
|
||||||
IDistributedCache<List<LevelCacheItem>> levelCache, IRepository<LevelAggregateRoot> repository, ISqlSugarRepository<BbsUserExtraInfoEntity> bbsUserRepository)
|
public LevelManager(ILocalEventBus localEventBus,
|
||||||
|
IDistributedCache<List<LevelCacheItem>> levelCache, IRepository<LevelAggregateRoot> repository,
|
||||||
|
ISqlSugarRepository<BbsUserExtraInfoEntity> bbsUserRepository)
|
||||||
{
|
{
|
||||||
_localEventBus = localEventBus;
|
_localEventBus = localEventBus;
|
||||||
_repository = repository;
|
_repository = repository;
|
||||||
@@ -35,16 +37,16 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Dictionary<int, LevelCacheItem>> GetCacheMapAsync()
|
public async Task<Dictionary<int, LevelCacheItem>> GetCacheMapAsync()
|
||||||
{
|
{
|
||||||
var items = _levelCache.GetOrAdd(LevelConst.LevelCacheKey, () =>
|
var items = _levelCache.GetOrAdd(LevelConst.LevelCacheKey, () =>
|
||||||
{
|
{
|
||||||
var cacheItem = ( _repository.GetListAsync().Result)
|
var cacheItem = (_repository.GetListAsync().Result)
|
||||||
.OrderByDescending(x => x.CurrentLevel).ToList()
|
.OrderByDescending(x => x.CurrentLevel).ToList()
|
||||||
.Adapt<List<LevelCacheItem>>();
|
.Adapt<List<LevelCacheItem>>();
|
||||||
return cacheItem;
|
return cacheItem;
|
||||||
});
|
});
|
||||||
return items.ToDictionary(x=>x.CurrentLevel);
|
return items.ToDictionary(x => x.CurrentLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 使用钱钱投喂等级
|
/// 使用钱钱投喂等级
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -52,7 +54,7 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
|||||||
public async Task ChangeLevelByMoneyAsync(Guid userId, int moneyNumber)
|
public async Task ChangeLevelByMoneyAsync(Guid userId, int moneyNumber)
|
||||||
{
|
{
|
||||||
//通过用户id获取用户信息的经验和等级
|
//通过用户id获取用户信息的经验和等级
|
||||||
var userInfo = await _bbsUserRepository.GetAsync(x=>x.UserId==userId);
|
var userInfo = await _bbsUserRepository.GetAsync(x => x.UserId == userId);
|
||||||
|
|
||||||
//钱钱和经验的比例为1:1
|
//钱钱和经验的比例为1:1
|
||||||
//根据钱钱修改经验
|
//根据钱钱修改经验
|
||||||
@@ -63,7 +65,7 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
|||||||
false);
|
false);
|
||||||
|
|
||||||
//更改最终的经验再变化等级
|
//更改最终的经验再变化等级
|
||||||
var levelList = (await GetCacheMapAsync()).Values;
|
var levelList = (await GetCacheMapAsync()).Values.OrderByDescending(x => x.CurrentLevel);
|
||||||
var currentNewLevel = 1;
|
var currentNewLevel = 1;
|
||||||
foreach (var level in levelList)
|
foreach (var level in levelList)
|
||||||
{
|
{
|
||||||
@@ -73,12 +75,12 @@ namespace Yi.Framework.Bbs.Domain.Managers
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//这里注意,只更新等级
|
//这里注意,只更新等级
|
||||||
userInfo.Level = currentNewLevel;
|
userInfo.Level = currentNewLevel;
|
||||||
userInfo.Experience = currentNewExperience;
|
userInfo.Experience = currentNewExperience;
|
||||||
await _bbsUserRepository._Db.Updateable(userInfo)
|
await _bbsUserRepository._Db.Updateable(userInfo)
|
||||||
.UpdateColumns(it => new { it.Level,it.Experience })
|
.UpdateColumns(it => new { it.Level, it.Experience })
|
||||||
.ExecuteCommandAsync();
|
.ExecuteCommandAsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user