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