From 2cdb8f60aede43d37b7b7f6889b332163d3c2af8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=82=9C=E7=BF=94?= <2307953404@qq.com> Date: Tue, 5 Nov 2024 23:00:30 +0800 Subject: [PATCH] m --- asg_form/Controllers/Team/Team_http.cs | 51 +++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/asg_form/Controllers/Team/Team_http.cs b/asg_form/Controllers/Team/Team_http.cs index b1a7738..22e2253 100644 --- a/asg_form/Controllers/Team/Team_http.cs +++ b/asg_form/Controllers/Team/Team_http.cs @@ -272,7 +272,7 @@ namespace asg_form.Controllers.Team 4 => query.OrderByDescending(m => m.time), _ => query }; - if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")) + if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")|| this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { try { @@ -299,11 +299,14 @@ namespace asg_form.Controllers.Team var results = await query .Skip((page - 1) * limit) .Take(limit) - .Select(f => new + .Select(f => new AdminTeamFind { - formId = f.Id, - teamName = f.team_name, - voteOfLikes = f.piaoshu, + form = new form + { + Id = f.Id, + team_name = f.team_name, + piaoshu = f.piaoshu, + }, roles = findRolesByFormId(f.Id) }) .ToListAsync(); @@ -318,7 +321,45 @@ namespace asg_form.Controllers.Team } } } + /// + /// 新的删除战队口 + /// + [Route("api/v2/form/delete")] + [HttpDelete] + [Authorize] + public async Task> DeleteFormById(long formId) + { + if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")|| !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) + { + return BadRequest(new error_mb { code = 400, message = "无权访问" }); + } + using (var db = new TestDbContext()) + { + try + { + var rolesToDelete = db.Roles.Where(r => r.form.Id == formId).ToList(); + if (rolesToDelete.Any()) + { + db.Roles.RemoveRange(rolesToDelete); + } + + var formToDelete = await db.Forms.FindAsync(formId); + if (formToDelete == null) + { + return NotFound(new { code = 404, message = "表单未找到" }); + } + db.Forms.Remove(formToDelete); + await db.SaveChangesAsync(); + + return Ok(new { code = 200, message = "删除成功" }); + } + catch (Exception ex) + { + return StatusCode(500, new { code = 500, message = "服务器错误", error = ex.Message }); + } + } + } }