get teams according eventId
This commit is contained in:
parent
9b885f319e
commit
cbfdbd3882
@ -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<string> roleNames { get; set; }
|
||||
}
|
||||
|
||||
[Route("api/v3/form/all")]
|
||||
[HttpGet]
|
||||
[Authorize]
|
||||
public async Task<ActionResult<object>> GetformbyId(short page, short limit, int eventId)
|
||||
public async Task<ActionResult<object>> 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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user