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 }); + } + } + } }