修复
This commit is contained in:
		
							parent
							
								
									9832eaebdb
								
							
						
					
					
						commit
						a942f3ad7d
					
				@ -25,12 +25,154 @@ using static 
 | 
			
		||||
using Manganese.Array;
 | 
			
		||||
using Microsoft.AspNetCore.Identity;
 | 
			
		||||
using Flurl.Http;
 | 
			
		||||
using System.Security.Claims;
 | 
			
		||||
 | 
			
		||||
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]
 | 
			
		||||
    [Route("[controller]")]
 | 
			
		||||
@ -281,7 +423,7 @@ namespace asg_form.Controllers
 | 
			
		||||
                        if (imageFile == null || imageFile.Length == 0)
 | 
			
		||||
                            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))
 | 
			
		||||
                        {
 | 
			
		||||
                            await imageFile.CopyToAsync(stream);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user