解决虚拟用户一直增长的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() private void Init()
{ {
var randomUser = WebService.GetMapRouteRandomUser(top, null); var records = WebService.GetMapRouteRandomRecord(top, null);
mapRecordRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList()); 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>
/// 获取虚拟人物数据 /// 获取虚拟人物数据
/// </summary> /// </summary>
@ -90,15 +97,15 @@ namespace OnlineUserPool.Hander
if (end.Count > 0) if (end.Count > 0)
{ {
var virutalEndCount = mapRecordRankings.Count(d => d.UserId < 0 && d.End); 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); mapRecordRankings.RemoveAll(n => n.End);
if (virutalEndCount > 0) 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"; //var str = "参数:" + (ConfigHelp.Top - virutalEndCount) + "," + string.Join(",",routeIds) + "\r\n";
str += "服务端返回:" + Newtonsoft.Json.JsonConvert.SerializeObject(randomUser) +"\r\n"; //str += "服务端返回:" + Newtonsoft.Json.JsonConvert.SerializeObject(randomUser) +"\r\n";
Log.Information(str); //Log.Information(str);
var addRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList()); var addRankings = WebService.GetRecordFileFromServer(randomUser.Select(n => n.RankingId).ToList());
mapRecordRankings.AddRange(addRankings); 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; 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 = ""; var routeIdsStr = "";
if(routeIds != null) if(routeIds != null)