黑名单1.0

This commit is contained in:
王炜翔 2025-02-05 21:09:37 +08:00
parent 500202946d
commit 7935019f48
2 changed files with 90 additions and 14 deletions

View File

@ -1,6 +1,8 @@
using AsmResolver.PE.DotNet.Cil; using AsmResolver.PE.DotNet.Cil;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Security.Claims; using System.Security.Claims;
using static asg_form.Controllers.AssignmentController; using static asg_form.Controllers.AssignmentController;
@ -8,19 +10,30 @@ namespace asg_form.Controllers
{ {
public class BlackDB public class BlackDB
{ {
public string id { get; set; } public Guid id { get; set; }
public string record_name { get; set; } public string record_time { get; set; }
public string violator { get; set; } public string violator { get; set; }
public string platform_record { get; set; } public string platform_record { get; set; }
public string offending_details { get; set; } public string offending_details { get; set; }
public string processing_result { get; set; } public string processing_result { get; set; }
public string feature_id { get; set; } public string feature_id { get; set; }
public string recorder { get; set; }
} }
public class BlackFront 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 violator { get; set; }
public string platformRecord { get; set; } public string platformRecord { get; set; }
public string offendingDetails { get; set; } public string offendingDetails { get; set; }
@ -31,6 +44,14 @@ namespace asg_form.Controllers
[ApiController] [ApiController]
public class BlackController : ControllerBase public class BlackController : ControllerBase
{ {
private readonly RoleManager<Role> roleManager;
private readonly UserManager<User> userManager;
public BlackController(
RoleManager<Role> roleManager, UserManager<User> userManager)
{
this.roleManager = roleManager;
this.userManager = userManager;
}
/// <summary> /// <summary>
/// 增加信息 /// 增加信息
@ -39,8 +60,11 @@ namespace asg_form.Controllers
/// <returns></returns> /// <returns></returns>
[Route("api/v1/blackTable/Add")] [Route("api/v1/blackTable/Add")]
[HttpPost] [HttpPost]
[Authorize]
public async Task<ActionResult<object>> blackAdd ([FromBody] BlackFront datas) public async Task<ActionResult<object>> 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")) 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 = "无权访问" }); return Ok(new error_mb { code = 401, message = "无权访问" });
@ -51,13 +75,13 @@ namespace asg_form.Controllers
{ {
var blackp = new BlackDB var blackp = new BlackDB
{ {
id = Guid.NewGuid().ToString(), record_time = datas.recordTime,
record_name = datas.recordName,
violator = datas.violator, violator = datas.violator,
platform_record = datas.platformRecord, platform_record = datas.platformRecord,
offending_details = datas.offendingDetails, offending_details = datas.offendingDetails,
processing_result = datas.processingResult, processing_result = datas.processingResult,
feature_id = datas.featureId, feature_id = datas.featureId,
recorder = user.chinaname,
}; };
try try
{ {
@ -85,15 +109,33 @@ namespace asg_form.Controllers
/// <returns></returns> /// <returns></returns>
[Route("api/v1/blackTable/Update")] [Route("api/v1/blackTable/Update")]
[HttpPost] [HttpPost]
public async Task<ActionResult<object>> blackUpd([FromBody] BlackFront datas) [Authorize]
public async Task<ActionResult<object>> 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")) 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 = "无权访问" }); 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 = "" });
} }
/// <summary> /// <summary>
@ -102,16 +144,50 @@ namespace asg_form.Controllers
/// <param name="idFind"></param> /// <param name="idFind"></param>
/// <returns></returns> /// <returns></returns>
[Route("api/v1/blackTable/Del")] [Route("api/v1/blackTable/Del")]
[HttpGet] [HttpDelete]
[Authorize]
public async Task<ActionResult<object>> blackDel([FromQuery] string idFind) public async Task<ActionResult<object>> 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")) 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 = "无权访问" }); 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<ActionResult<object>> 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 });
}
} }
} }
} }

View File

@ -74,7 +74,7 @@ namespace asg_form
string msg = "为了良好的赛事环境,我们对以下选手进行禁赛处理"; string msg = "为了良好的赛事环境,我们对以下选手进行禁赛处理";
foreach (var b in blacks) 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; return msg;
} }