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 NPOI.OpenXmlFormats.Dml;
 | 
				
			||||||
using System.Security.Claims;
 | 
					using System.Security.Claims;
 | 
				
			||||||
using static allteam1;
 | 
					using static allteam1;
 | 
				
			||||||
 | 
					using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace asg_form.Controllers.Team
 | 
					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")]
 | 
					        [Route("api/v3/form/all")]
 | 
				
			||||||
        [HttpGet]
 | 
					        [HttpGet]
 | 
				
			||||||
        [Authorize]
 | 
					        [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
 | 
					                try
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    var query = await db.Forms.FindAsync(eventId);
 | 
					                    var query = from m in db.Forms
 | 
				
			||||||
 | 
					                                where m.events.Id == eventId
 | 
				
			||||||
                    return Ok(new { code = 200, message = "没有完成的接口" });
 | 
					                                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)
 | 
					                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