修复
This commit is contained in:
parent
9832eaebdb
commit
a942f3ad7d
@ -25,12 +25,154 @@ using static
|
|||||||
using Manganese.Array;
|
using Manganese.Array;
|
||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Flurl.Http;
|
using Flurl.Http;
|
||||||
|
using System.Security.Claims;
|
||||||
|
|
||||||
namespace asg_form.Controllers
|
namespace asg_form.Controllers
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public class form_cs : ControllerBase
|
||||||
|
{
|
||||||
|
[Route("api/v3/form/all")]
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<ActionResult<object>> GetFormById(short page, short limit, int sort, int eventId)
|
||||||
|
{
|
||||||
|
using (var db = new TestDbContext())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var query = db.Forms.Where(f => f.events.Id == eventId);
|
||||||
|
query = sort switch
|
||||||
|
{
|
||||||
|
0 => query.OrderByDescending(m => m.piaoshu).ThenByDescending(m => m.time),
|
||||||
|
1 => query.OrderBy(m => m.piaoshu),
|
||||||
|
2 => query.OrderByDescending(m => m.piaoshu),
|
||||||
|
3 => query.OrderBy(m => m.time),
|
||||||
|
4 => query.OrderByDescending(m => m.time),
|
||||||
|
_ => query
|
||||||
|
};
|
||||||
|
if (this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin") || this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var results = await query
|
||||||
|
.Skip((page - 1) * limit)
|
||||||
|
.Take(limit)
|
||||||
|
.Select(f => new AdminTeamFind
|
||||||
|
{
|
||||||
|
form = f,
|
||||||
|
roles = findRolesByFormId(f.Id, 0)
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
int total = await query.CountAsync();
|
||||||
|
|
||||||
|
return Ok(new { code = 200, message = "成功", data = results, total });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return Ok(new { code = 500, message = "服务器错误", error = ex.Message });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var results = await query
|
||||||
|
.Skip((page - 1) * limit)
|
||||||
|
.Take(limit)
|
||||||
|
.Select(f => new AdminTeamFind
|
||||||
|
{
|
||||||
|
form = new form
|
||||||
|
{
|
||||||
|
Id = f.Id,
|
||||||
|
team_name = f.team_name,
|
||||||
|
piaoshu = f.piaoshu,
|
||||||
|
},
|
||||||
|
roles = findRolesByFormId(f.Id, 1)
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
int total = await query.CountAsync();
|
||||||
|
return Ok(new { code = 200, message = "成功", data = results, total });
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return Ok(new { code = 500, message = "服务器错误", ex = ex.Message });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class tmpRole
|
||||||
|
{
|
||||||
|
public string? roleName { get; set; }
|
||||||
|
public int? roleRank { get; set; }
|
||||||
|
public string? commonRoles { get; set; }
|
||||||
|
public string? roleLin { get; set; }
|
||||||
|
public string? roleId { get; set; }
|
||||||
|
public string? gameName { get; set; }
|
||||||
|
public string? idCard { get; set; }
|
||||||
|
public string? phoneNumber { get; set; }
|
||||||
|
public string? idCardName { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
public class TeamFind
|
||||||
|
{
|
||||||
|
|
||||||
|
public long formId { get; set; }
|
||||||
|
public string teamName { get; set; }
|
||||||
|
public int voteOfLikes { get; set; }
|
||||||
|
public List<tmpRole> roles { get; set; } = new List<tmpRole>();
|
||||||
|
|
||||||
|
}
|
||||||
|
public class AdminTeamFind
|
||||||
|
{
|
||||||
|
public form? form { get; set; }
|
||||||
|
public List<tmpRole>? roles { get; set; } = new List<tmpRole>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<tmpRole> findRolesByFormId(long formId, int y)
|
||||||
|
{
|
||||||
|
var roles = new List<tmpRole>();
|
||||||
|
var db = new TestDbContext();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var query = db.Roles.Where(x => x.form.Id == formId);
|
||||||
|
if (y == 1)
|
||||||
|
{
|
||||||
|
roles = query
|
||||||
|
.Select(f => new tmpRole
|
||||||
|
{
|
||||||
|
roleName = f.role_name,
|
||||||
|
roleRank = f.Historical_Ranks,
|
||||||
|
commonRoles = f.Common_Roles,
|
||||||
|
roleLin = f.role_lin
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
roles = query
|
||||||
|
.Select(f => new tmpRole
|
||||||
|
{
|
||||||
|
roleName = f.role_name,
|
||||||
|
roleRank = f.Historical_Ranks,
|
||||||
|
commonRoles = f.Common_Roles,
|
||||||
|
roleLin = f.role_lin,
|
||||||
|
roleId = f.role_id,
|
||||||
|
gameName = f.Game_Name,
|
||||||
|
idCard = f.Id_Card,
|
||||||
|
phoneNumber = f.Phone_Number,
|
||||||
|
idCardName = f.Id_Card_Name
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error in BuildTree: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("[controller]")]
|
[Route("[controller]")]
|
||||||
@ -281,7 +423,7 @@ namespace asg_form.Controllers
|
|||||||
if (imageFile == null || imageFile.Length == 0)
|
if (imageFile == null || imageFile.Length == 0)
|
||||||
return BadRequest("Invalid image file.");
|
return BadRequest("Invalid image file.");
|
||||||
// ½«Îļþ±£´æµ½´ÅÅÌ
|
// ½«Îļþ±£´æµ½´ÅÅÌ
|
||||||
var filePath = Path.Combine(Directory.GetCurrentDirectory(), $"loge/{for1.events_name}/{for1.events_name}/", $"{imageFile.FileName}");
|
var filePath = Path.Combine(Directory.GetCurrentDirectory(), $"loge/{for1.events_name}/", $"{imageFile.FileName}");
|
||||||
using (var stream = new FileStream(filePath, FileMode.Create))
|
using (var stream = new FileStream(filePath, FileMode.Create))
|
||||||
{
|
{
|
||||||
await imageFile.CopyToAsync(stream);
|
await imageFile.CopyToAsync(stream);
|
||||||
@ -497,8 +639,8 @@ namespace asg_form.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class role
|
public class role
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user