|
@@ -128,64 +128,110 @@ namespace FCS.Crawler.ZCLotteryGames
|
|
|
}
|
|
|
// Gamelist= Gamelist.Where((x, i) => Gamelist.FindIndex(z => z.GroupingId == x.GroupingId && z.VisitingTeamId == x.VisitingTeamId && z.HomeTeamId == x.HomeTeamId && z.HomeTeamScore_All == x.HomeTeamScore_All && z.VisitingTeamScore_All == x.VisitingTeamScore_All && z.HomeTeamScore_Half == x.HomeTeamScore_Half && z.VisitingTeamScore_Half == x.VisitingTeamScore_Half && z.EventId == x.EventId && z.Season == x.Season) == i).ToList();//Lambda表达式去重
|
|
|
gamesList =gamesList.Where((x, i) => gamesList.FindIndex(z => z.GroupingId == x.GroupingId && z.VisitingTeamId == x.VisitingTeamId && z.HomeTeamId == x.HomeTeamId && z.HomeTeamScore_All == x.HomeTeamScore_All && z.VisitingTeamScore_All == x.VisitingTeamScore_All && z.HomeTeamScore_Half == x.HomeTeamScore_Half && z.VisitingTeamScore_Half == x.VisitingTeamScore_Half && z.EventId == x.EventId && z.Season == x.Season) == i).ToList();//Lambda表达式去重
|
|
|
- max = gamesList.Count;
|
|
|
- num = 0;
|
|
|
- int sss = 0;
|
|
|
- //比较比赛
|
|
|
- gamesList.ForEach(async p =>
|
|
|
+
|
|
|
+ //{
|
|
|
+ // max = gamesList.Count;
|
|
|
+ // num = 0;
|
|
|
+ // int sss = 0;
|
|
|
+ // //比较比赛
|
|
|
+ // gamesList.ForEach(async p =>
|
|
|
+ // {
|
|
|
+ // await Task.Run(() =>
|
|
|
+ // {
|
|
|
+
|
|
|
+ // var istrue = Gamelist.Where(a => a.Season == p.Season && a.GroupingId == p.GroupingId && a.HomeTeamId == p.HomeTeamId && a.VisitingTeamId == p.VisitingTeamId && a.EventId == p.EventId && a.StartDateTime == p.StartDateTime).ToList();
|
|
|
+ // //if(Gamelist.Where(a=>a.HomeTeamId== "ff8d81fa-3444-4e5d-955c-79049a722daa"&&a.VisitingTeamId== "5629c466-a3e4-4a1a-9826-0a5c86244f08"&&a.CreateDateTime>))
|
|
|
+ // if (istrue.Count > 0)
|
|
|
+ // {//已有比赛 判断是否需要更新数据
|
|
|
+ // var onegame = istrue.FirstOrDefault();
|
|
|
+ // if (onegame.HomeTeamScore_All != p.HomeTeamScore_All || onegame.HomeTeamScore_Half != p.HomeTeamScore_Half || onegame.VisitingTeamScore_All != p.VisitingTeamScore_All || onegame.VisitingTeamScore_Half != p.VisitingTeamScore_Half || onegame.Status != "a058ec2ec96ae811ab3100ac6a4a134f")
|
|
|
+ // {
|
|
|
+ // lock (gamesList_new)
|
|
|
+ // {
|
|
|
+ // p.Id = onegame.Id;
|
|
|
+ // gamesList_new.Add(p);
|
|
|
+ // gamesList_new2.Add(p);
|
|
|
+ // }
|
|
|
+ // foreach (var item in istrue)
|
|
|
+ // {
|
|
|
+ // lock (listint)
|
|
|
+ // {
|
|
|
+ // listint.Add(item.PK);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // //数据不做修改
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {//没有次比赛 新增
|
|
|
+ // lock (gamesList_new)
|
|
|
+ // {
|
|
|
+ // gamesList_new.Add(p);
|
|
|
+ // }
|
|
|
+
|
|
|
+ // }
|
|
|
+
|
|
|
+
|
|
|
+ // });
|
|
|
+ // lock (locker)
|
|
|
+ // {
|
|
|
+ // num++;
|
|
|
+ // Monitor.Pulse(locker); //完成,通知等待队列,告知已完,执行下一个。
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ // lock (locker)
|
|
|
+ // {
|
|
|
+ // while (num < max)
|
|
|
+ // {
|
|
|
+ // Monitor.Wait(locker);//等待
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ var group = gamesList.GroupBy(a => a.GroupingId).Select(g => g.Last()).ToList();
|
|
|
+ foreach (var item in group)
|
|
|
{
|
|
|
- await Task.Run(() =>
|
|
|
+ var new_group_game=gamesList.Where(a => a.GroupingId == item.GroupingId).ToList();
|
|
|
+ var group_game = Gamelist.Where(a => a.GroupingId == item.GroupingId).ToList();
|
|
|
+ if (new_group_game.Count >= group_game.Count)
|
|
|
{
|
|
|
-
|
|
|
- var istrue = Gamelist.Where(a => a.Season == p.Season && a.GroupingId == p.GroupingId && a.HomeTeamId == p.HomeTeamId && a.VisitingTeamId == p.VisitingTeamId && a.EventId == p.EventId&&a.StartDateTime==p.StartDateTime).ToList();
|
|
|
- //if(Gamelist.Where(a=>a.HomeTeamId== "ff8d81fa-3444-4e5d-955c-79049a722daa"&&a.VisitingTeamId== "5629c466-a3e4-4a1a-9826-0a5c86244f08"&&a.CreateDateTime>))
|
|
|
- if (istrue.Count > 0)
|
|
|
- {//已有比赛 判断是否需要更新数据
|
|
|
- var onegame = istrue.FirstOrDefault();
|
|
|
- if (onegame.HomeTeamScore_All != p.HomeTeamScore_All || onegame.HomeTeamScore_Half != p.HomeTeamScore_Half || onegame.VisitingTeamScore_All != p.VisitingTeamScore_All|| onegame.VisitingTeamScore_Half != p.VisitingTeamScore_Half || onegame.Status != "a058ec2ec96ae811ab3100ac6a4a134f")
|
|
|
+ foreach (var item1 in new_group_game)
|
|
|
+ {
|
|
|
+ switch (group_game.Where(a => a.GroupingId == item.GroupingId && a.HomeTeamId == item1.HomeTeamId && a.VisitingTeamId == item1.VisitingTeamId && a.StartDateTime == item1.StartDateTime && a.Status == item1.Status).ToList().Count)
|
|
|
{
|
|
|
- lock (gamesList_new)
|
|
|
- {
|
|
|
- p.Id = onegame.Id;
|
|
|
- gamesList_new.Add(p);
|
|
|
- gamesList_new2.Add(p);
|
|
|
- }
|
|
|
- foreach (var item in istrue)
|
|
|
- {
|
|
|
- lock (listint)
|
|
|
+ case 0:
|
|
|
+ gamesList_new.Add(item1);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ var gamedetail = group_game.Where(a => a.GroupingId == item.GroupingId && a.HomeTeamId == item1.HomeTeamId && a.VisitingTeamId == item1.VisitingTeamId && a.StartDateTime == item1.StartDateTime && a.Status == item1.Status).FirstOrDefault();
|
|
|
+ var new_game = item1;
|
|
|
+ new_game.Id = gamedetail.Id;
|
|
|
+ gamesList_new.Add(new_game);
|
|
|
+ listint.Add(gamedetail.PK);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ var gamedetail1 = group_game.Where(a => a.GroupingId == item.GroupingId && a.HomeTeamId == item1.HomeTeamId && a.VisitingTeamId == item1.VisitingTeamId && a.StartDateTime == item1.StartDateTime && a.Status == item1.Status).ToList();
|
|
|
+ var new_game1 = item1;
|
|
|
+ new_game1.Id = gamedetail1.OrderByDescending(a=>a.CreateDateTime).FirstOrDefault().Id;
|
|
|
+ gamesList_new.Add(new_game1);
|
|
|
+ foreach (var item2 in gamedetail1)
|
|
|
{
|
|
|
- listint.Add(item.PK);
|
|
|
+ listint.Add(item2.PK);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //数据不做修改
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {//没有次比赛 新增
|
|
|
- lock (gamesList_new)
|
|
|
- {
|
|
|
- gamesList_new.Add(p);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- });
|
|
|
- lock (locker)
|
|
|
- {
|
|
|
- num++;
|
|
|
- Monitor.Pulse(locker); //完成,通知等待队列,告知已完,执行下一个。
|
|
|
}
|
|
|
- });
|
|
|
- lock (locker)
|
|
|
- {
|
|
|
- while (num < max)
|
|
|
+ else {
|
|
|
+ gamesList_new.AddRange(new_group_game);
|
|
|
+ }
|
|
|
+ foreach (var item1 in group_game)
|
|
|
{
|
|
|
- Monitor.Wait(locker);//等待
|
|
|
+ listint.Add(item.PK);
|
|
|
}
|
|
|
}
|
|
|
Thread.Sleep(5000);
|
|
@@ -621,34 +667,34 @@ namespace FCS.Crawler.ZCLotteryGames
|
|
|
/// <param name="Season"></param>
|
|
|
public void Insert(string data, string Id, string Season, string url)
|
|
|
{
|
|
|
- var query = data.Split('|');
|
|
|
- F_Games game = new F_Games();
|
|
|
- game.Id = CommonHelper.GetGuid().ToString();
|
|
|
- game.CreateDateTime = DateTime.Now;
|
|
|
- game.EventId = Group.Where(a => a.Id == Id).FirstOrDefault().EventId;
|
|
|
- game.EventType = Group.Where(a => a.Id == Id).FirstOrDefault().EventType;
|
|
|
- game.Heat = 0;
|
|
|
- var team = teamlist.Where(a => a.Name == query[1]).FirstOrDefault();
|
|
|
- if (team == null)
|
|
|
- return;
|
|
|
- game.HomeTeamId = team == null ? "" : team.Id;
|
|
|
- game.HomeTeamScore_All = query[2].Split(':')[0].TryToInt32();
|
|
|
- game.HomeTeamScore_Half = query[4].Split(':')[0].TryToInt32();
|
|
|
- game.IsOvertime = false;
|
|
|
- game.Remark = url;
|
|
|
- game.Season = Season;
|
|
|
- game.StartDateTime = Convert.ToDateTime(query[0]);
|
|
|
- game.Status = query[4] == "-:-" ? g1 : query[2] == "-:-" ? g2 : g3;
|
|
|
- team = teamlist.Where(a => a.Name == query[3]).FirstOrDefault();
|
|
|
- if (team == null)
|
|
|
- return;
|
|
|
- game.VisitingTeamId = team.Id;
|
|
|
- game.VisitingTeamScore_All = query[2].Split(':')[1].TryToInt32();
|
|
|
- game.VisitingTeamScore_Half = query[4].Split(':')[1].TryToInt32();
|
|
|
- game.GroupingId = Id;
|
|
|
- game.IsObtain = false;
|
|
|
lock (gamesList)
|
|
|
{
|
|
|
+ var query = data.Split('|');
|
|
|
+ F_Games game = new F_Games();
|
|
|
+ game.Id = CommonHelper.GetGuid().ToString();
|
|
|
+ game.CreateDateTime = DateTime.Now;
|
|
|
+ game.EventId = Group.Where(a => a.Id == Id).FirstOrDefault().EventId;
|
|
|
+ game.EventType = Group.Where(a => a.Id == Id).FirstOrDefault().EventType;
|
|
|
+ game.Heat = 0;
|
|
|
+ var team = teamlist.Where(a => a.Name == query[1]).FirstOrDefault();
|
|
|
+ if (team == null)
|
|
|
+ return;
|
|
|
+ game.HomeTeamId = team == null ? "" : team.Id;
|
|
|
+ game.HomeTeamScore_All = query[2].Split(':')[0].TryToInt32();
|
|
|
+ game.HomeTeamScore_Half = query[4].Split(':')[0].TryToInt32();
|
|
|
+ game.IsOvertime = false;
|
|
|
+ game.Remark = url;
|
|
|
+ game.Season = Season;
|
|
|
+ game.StartDateTime = Convert.ToDateTime(query[0]);
|
|
|
+ game.Status = query[4] == "-:-" ? g1 : query[2] == "-:-" ? g2 : g3;
|
|
|
+ team = teamlist.Where(a => a.Name == query[3]).FirstOrDefault();
|
|
|
+ if (team == null)
|
|
|
+ return;
|
|
|
+ game.VisitingTeamId = team.Id;
|
|
|
+ game.VisitingTeamScore_All = query[2].Split(':')[1].TryToInt32();
|
|
|
+ game.VisitingTeamScore_Half = query[4].Split(':')[1].TryToInt32();
|
|
|
+ game.GroupingId = Id;
|
|
|
+ game.IsObtain = false;
|
|
|
gamesList.Add(game);
|
|
|
}
|
|
|
|