From 8bac48a73645c6abdbe44cfc3114f28c1fb9a959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=82=9C=E7=BF=94?= <2307953404@qq.com> Date: Sun, 13 Oct 2024 20:07:08 +0800 Subject: [PATCH] 111 --- asg_form/Controllers/InviteReferee.cs | 67 ++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/asg_form/Controllers/InviteReferee.cs b/asg_form/Controllers/InviteReferee.cs index 303c64d..e58873c 100644 --- a/asg_form/Controllers/InviteReferee.cs +++ b/asg_form/Controllers/InviteReferee.cs @@ -44,8 +44,10 @@ namespace asg_form.Controllers public class InviteForUsers { + public int id { get; set; } public string invitedChinaname { get; set; } public schedule.team_game match { get; set; } + public int status { get; set; } public string? create_time { get; set; } } @@ -56,16 +58,23 @@ namespace asg_form.Controllers public int matchId { get; set; } } + bool outOfTime(DateTime d) + { + DateTime currentTime = DateTime.Now; + + if (currentTime > d.AddDays(1)) return true; else return false; + } [Route("api/v1/Invite")] [HttpPost] [Authorize] public async Task> Toinvite([FromBody] inv msg) { + string Invitorid = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; var user = await userManager.FindByIdAsync(Invitorid); long userId = user.Id; - + if (user.officium != "Commentator" || !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")) return Ok(new error_mb { code = 401, message = "您不是解说无法完成邀请" }); using (TestDbContext sb = new TestDbContext()) { try @@ -122,7 +131,7 @@ namespace asg_form.Controllers { var query = sub.T_Invitation .AsQueryable(); - var TotalRecords = await query.CountAsync(); + var TotalRecords = 0; var invitationRecordId = query .Where(x => x.user_id == userId) .OrderByDescending(t => t.status) @@ -134,14 +143,25 @@ namespace asg_form.Controllers List invitationRecord = new List(); foreach (var record in invitationRecordId) { + var invited = await userManager.Users.FirstOrDefaultAsync(u => u.Id == record.invited_id); + var theGame = sub.team_Games.FirstOrDefault(i => i.id == record.match_id); + if (outOfTime(theGame.opentime)) + { + sub.team_Games.Remove(theGame); + sub.SaveChanges(); + continue; + } var addData = new InviteForUsers { + id = record.id, invitedChinaname = invited.chinaname, - match = sub.team_Games.FirstOrDefault(i => i.id == record.match_id), + match = theGame, create_time = record.create_time, + status = record.status, }; invitationRecord.Add(addData); + TotalRecords++; } var data = new { @@ -159,6 +179,7 @@ namespace asg_form.Controllers public class BeInviteForUsers { + public int id { get; set; } public string invitorChinaname { get; set; } public schedule.team_game match { get; set; } @@ -180,7 +201,7 @@ namespace asg_form.Controllers { var query = sub.T_Invitation .AsQueryable(); - var TotalRecords = await query.CountAsync(); + var TotalRecords = 0; var invitationRecordId = query .Where(x => x.invited_id == userId && x.status==0) .OrderBy(t => t.create_time) @@ -189,15 +210,24 @@ namespace asg_form.Controllers .ToList(); List invitationRecord = new List(); foreach (var record in invitationRecordId) - { + { var invitor = await userManager.Users.FirstOrDefaultAsync(u => u.Id == record.user_id); + var theGame = sub.team_Games.FirstOrDefault(i => i.id == record.match_id); + if (outOfTime(theGame.opentime)) + { + sub.team_Games.Remove(theGame); + sub.SaveChanges(); + continue; + } var addData = new BeInviteForUsers { + id = record.id, invitorChinaname = invitor.chinaname, - match = sub.team_Games.FirstOrDefault(i => i.id == record.match_id), + match = theGame, create_time = record.create_time, }; invitationRecord.Add(addData); + TotalRecords++; } var data = new { @@ -250,5 +280,30 @@ namespace asg_form.Controllers } } } + + [Route("api/v1/delRecord")] + [HttpDelete] + [Authorize] + public async Task> DelAssign([FromQuery] int id) + { + using (TestDbContext sub = new TestDbContext()) + { + try + { + string Myid = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; + var user = await userManager.FindByIdAsync(Myid); + long userId = user.Id; + var query = sub.T_Invitation.Where(n => n.id == id).FirstOrDefault(); + if(query.user_id != (int)userId) return Ok(new error_mb { code = 200, message = "非法操作!" }); + sub.T_Invitation.Remove(query); + await sub.SaveChangesAsync(); + return Ok(new error_mb { code = 200, message = "成功删除" }); + } + catch (Exception ex) + { + return Ok(new { code = 500, message = "服务器错误", details = ex }); + } + } + } } }