解决虚拟用户一直增长的bug

This commit is contained in:
suntao 2020-10-30 17:39:19 +08:00
parent fec18db7a8
commit 917e5d9800
2 changed files with 15 additions and 8 deletions

View File

@ -23,9 +23,16 @@ namespace OnlineUserPool.Hander
private void Init()
{
var randomUser = WebService.GetMapRouteRandomUser(top, null);
mapRecordRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList());
var records = WebService.GetMapRouteRandomRecord(top, null);
var pageSize = 10;
var pageCount = (int)Math.Ceiling(records.Count / (double)pageSize);
mapRecordRankings = new List<MapRecordRanking>();
for (int i = 0; i < pageCount; i++)
{
mapRecordRankings.AddRange(WebService.GetRecordFileFromServer(records.Skip(i* pageSize).Take(pageSize).Select(n => n.RankingId).ToList()));
}
}
/// <summary>
/// 获取虚拟人物数据
/// </summary>
@ -90,15 +97,15 @@ namespace OnlineUserPool.Hander
if (end.Count > 0)
{
var virutalEndCount = mapRecordRankings.Count(d => d.UserId < 0 && d.End);
var routeIds = mapRecordRankings.Select(n => n.RouteId).ToList();
var routeIds = mapRecordRankings.Select(n => n.RouteId).Distinct().ToList();
mapRecordRankings.RemoveAll(n => n.End);
if (virutalEndCount > 0)
{
var randomUser = WebService.GetMapRouteRandomUser(ConfigHelp.Top - virutalEndCount, routeIds);
var randomUser = WebService.GetMapRouteRandomRecord(virutalEndCount, routeIds);
var str = "参数:" + (ConfigHelp.Top - virutalEndCount) + "," + string.Join(",",routeIds) + "\r\n";
str += "服务端返回:" + Newtonsoft.Json.JsonConvert.SerializeObject(randomUser) +"\r\n";
Log.Information(str);
//var str = "参数:" + (ConfigHelp.Top - virutalEndCount) + "," + string.Join(",",routeIds) + "\r\n";
//str += "服务端返回:" + Newtonsoft.Json.JsonConvert.SerializeObject(randomUser) +"\r\n";
//Log.Information(str);
var addRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList());
mapRecordRankings.AddRange(addRankings);
}

View File

@ -56,7 +56,7 @@ namespace OnlineUserPool.Unility
return PostAsync<JsonResult<List<MapRecordRanking>>>("MapRecord/GetRandomList", id).ConfigureAwait(false).GetAwaiter().GetResult().data;
}
public static List<MapRouteAndUserQueryVM> GetMapRouteRandomUser(int top, IEnumerable<int> routeIds)
public static List<MapRouteAndUserQueryVM> GetMapRouteRandomRecord(int top, IEnumerable<int> routeIds)
{
var routeIdsStr = "";
if(routeIds != null)