diff --git a/asg_form/Controllers/Team/Team_http.cs b/asg_form/Controllers/Team/Team_http.cs index e116483..aeb81c3 100644 --- a/asg_form/Controllers/Team/Team_http.cs +++ b/asg_form/Controllers/Team/Team_http.cs @@ -8,6 +8,7 @@ using Microsoft.EntityFrameworkCore; using NPOI.OpenXmlFormats.Dml; using System.Security.Claims; using static allteam1; +using static Microsoft.EntityFrameworkCore.DbLoggerCategory; namespace asg_form.Controllers.Team { @@ -206,24 +207,70 @@ namespace asg_form.Controllers.Team } } + public class TeamFind + { + public string teamName { get; set; } + public List roleNames { get; set; } + } + [Route("api/v3/form/all")] [HttpGet] [Authorize] - public async Task> GetformbyId(short page, short limit, int eventId) + public async Task> GetFormById(short page, short limit, int sort, int eventId) { - using (var db = new TestDbContext()) + using (var db = new TestDbContext()) { try { - var query = await db.Forms.FindAsync(eventId); - - return Ok(new { code = 200, message = "没有完成的接口" }); + var query = from m in db.Forms + where m.events.Id == eventId + join r in db.Roles on m.Id equals r.form.Id + select new + { + m.team_name, + r.role_name, + m.piaoshu, + m.time + }; + switch (sort) + { + case 0: + query = query.OrderByDescending(m => m.piaoshu).ThenByDescending(m => m.time); + break; + case 1: + query = query.OrderBy(m => m.piaoshu); + break; + case 2: + query = query.OrderByDescending(m => m.piaoshu); + break; + case 3: + query = query.OrderBy(m => m.time); + break; + case 4: + query = query.OrderByDescending(m => m.time); + break; + default: + break; + } + var results = await query + .GroupBy(m => new { m.team_name, m.piaoshu, m.time }) + .Select(g => new TeamFind + { + teamName = g.Key.team_name, + roleNames = g.Select(x => x.role_name).ToList() + }) + .Skip((page - 1) * limit) + .Take(limit) + .ToListAsync(); + int total = results.Count(); + return Ok(new { code = 200, message = "成功", data = results,total }); } catch (Exception ex) { - return Ok(new { code = 500, message = "服务器错误", ex }); + return Ok(new { code = 500, message = "服务器错误", ex = ex.Message }); } } } + } }