diff --git a/asg_form/Controllers/BlackController.cs b/asg_form/Controllers/BlackController.cs index 42f8fc6..4882f71 100644 --- a/asg_form/Controllers/BlackController.cs +++ b/asg_form/Controllers/BlackController.cs @@ -1,6 +1,8 @@ using AsmResolver.PE.DotNet.Cil; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; using System.Security.Claims; using static asg_form.Controllers.AssignmentController; @@ -8,19 +10,30 @@ namespace asg_form.Controllers { public class BlackDB { - public string id { get; set; } - public string record_name { get; set; } + public Guid id { get; set; } + public string record_time { get; set; } public string violator { get; set; } public string platform_record { get; set; } public string offending_details { get; set; } public string processing_result { get; set; } public string feature_id { get; set; } - + public string recorder { get; set; } } public class BlackFront { - public string recordName { get; set; } + public string recordTime { get; set; } + public string violator { get; set; } + public string platformRecord { get; set; } + public string offendingDetails { get; set; } + public string processingResult { get; set; } + public string featureId { get; set; } + } + + public class BlackChange + { + public string id { get; set; } + public string recordTime { get; set; } public string violator { get; set; } public string platformRecord { get; set; } public string offendingDetails { get; set; } @@ -31,7 +44,15 @@ namespace asg_form.Controllers [ApiController] public class BlackController : ControllerBase { - + private readonly RoleManager roleManager; + private readonly UserManager userManager; + public BlackController( + RoleManager roleManager, UserManager userManager) + { + this.roleManager = roleManager; + this.userManager = userManager; + } + /// /// 增加信息 /// @@ -39,8 +60,11 @@ namespace asg_form.Controllers /// [Route("api/v1/blackTable/Add")] [HttpPost] + [Authorize] public async Task> blackAdd ([FromBody] BlackFront datas) { + string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; + var user = await userManager.FindByIdAsync(userId); if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin")||!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { return Ok(new error_mb { code = 401, message = "无权访问" }); @@ -51,13 +75,13 @@ namespace asg_form.Controllers { var blackp = new BlackDB { - id = Guid.NewGuid().ToString(), - record_name = datas.recordName, + record_time = datas.recordTime, violator = datas.violator, platform_record = datas.platformRecord, offending_details = datas.offendingDetails, processing_result = datas.processingResult, feature_id = datas.featureId, + recorder = user.chinaname, }; try { @@ -85,15 +109,33 @@ namespace asg_form.Controllers /// [Route("api/v1/blackTable/Update")] [HttpPost] - public async Task> blackUpd([FromBody] BlackFront datas) + [Authorize] + public async Task> blackUpd([FromBody] BlackChange datas) { + string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value; + var user = await userManager.FindByIdAsync(userId); if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin") || !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { return Ok(new error_mb { code = 401, message = "无权访问" }); } - TestDbContext sub = new TestDbContext(); + using (TestDbContext sub = new TestDbContext()) + { + var dataAvb = sub.T_blacks.FirstOrDefault(n => n.id.ToString() == datas.id); + if(dataAvb!=null) + { + dataAvb.record_time = datas.recordTime; + dataAvb.violator = datas.violator; + dataAvb.platform_record =dataAvb.platform_record; + dataAvb.offending_details = dataAvb.offending_details; + dataAvb.platform_record = dataAvb.platform_record; + dataAvb.recorder = user.chinaname; + await sub.SaveChangesAsync(); + return Ok(new error_mb { code = 200, message = "成功修改" }); + } + return Ok(new { code = 200, message = "记录不存在!" }); + } - return Ok(new { code = 200, message = "" }); + } /// @@ -102,16 +144,50 @@ namespace asg_form.Controllers /// /// [Route("api/v1/blackTable/Del")] - [HttpGet] + [HttpDelete] + [Authorize] public async Task> blackDel([FromQuery] string idFind) { if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "nbadmin") || !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")) { return Ok(new error_mb { code = 401, message = "无权访问" }); } - TestDbContext sub = new TestDbContext(); + using (TestDbContext sub = new TestDbContext()) + { + var dataAvb = sub.T_blacks.FirstOrDefault(n => n.id.ToString() == idFind); + if (dataAvb != null) + { + sub.T_blacks.Remove(dataAvb); + await sub.SaveChangesAsync(); + return Ok(new error_mb { code = 200, message = "成功删除" }); + } + return Ok(new { code = 200, message = "没有这个记录!" }); + } + + } - return Ok(new { code = 200, message = "" }); + [Route("api/v1/admin/FindBlacks")] + [HttpGet] + public async Task> FindBlacks([FromQuery]string status = null, short page = 1, short limit = 10) + { + using (TestDbContext sub = new TestDbContext()) + { + var query = sub.T_blacks.AsQueryable(); + + var TotalRecords = await query.CountAsync(); + + var Tasks = await query + .Skip((page - 1) * limit) + .Take(limit) + .ToListAsync(); + + var data = new + { + rows = Tasks, + total = TotalRecords, + }; + return Ok(new { code = 200, message = " ", data }); + } } } } diff --git a/asg_form/qqbot.cs b/asg_form/qqbot.cs index c3d3c47..760e798 100644 --- a/asg_form/qqbot.cs +++ b/asg_form/qqbot.cs @@ -74,7 +74,7 @@ namespace asg_form string msg = "为了良好的赛事环境,我们对以下选手进行禁赛处理"; foreach (var b in blacks) { - msg = $"{msg}\r\n{b.record_name} {b.violator} {b.platform_record} {b.offending_details} {b.processing_result} {b.feature_id}"; + msg = $"{msg}\r\n{b.record_time} {b.violator} {b.platform_record} {b.offending_details} {b.processing_result} {b.feature_id}"; } return msg; }