2024-11-08 21:58:56 +08:00
|
|
|
|
using AsmResolver.PE.DotNet.Cil;
|
|
|
|
|
using Microsoft.AspNetCore.Authorization;
|
2025-02-05 21:09:37 +08:00
|
|
|
|
using Microsoft.AspNetCore.Identity;
|
2024-11-08 21:58:56 +08:00
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
2025-02-05 21:09:37 +08:00
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2024-11-08 21:58:56 +08:00
|
|
|
|
using System.Security.Claims;
|
|
|
|
|
using static asg_form.Controllers.AssignmentController;
|
|
|
|
|
|
|
|
|
|
namespace asg_form.Controllers
|
|
|
|
|
{
|
|
|
|
|
public class BlackDB
|
|
|
|
|
{
|
2025-02-05 21:09:37 +08:00
|
|
|
|
public Guid id { get; set; }
|
|
|
|
|
public string record_time { get; set; }
|
2025-02-01 22:36:25 +08:00
|
|
|
|
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; }
|
2025-02-05 21:09:37 +08:00
|
|
|
|
public string recorder { get; set; }
|
2024-11-08 21:58:56 +08:00
|
|
|
|
}
|
2025-01-27 20:32:23 +08:00
|
|
|
|
|
2025-02-01 22:36:25 +08:00
|
|
|
|
public class BlackFront
|
|
|
|
|
{
|
2025-02-05 21:09:37 +08:00
|
|
|
|
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; }
|
2025-02-01 22:36:25 +08:00
|
|
|
|
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; }
|
|
|
|
|
}
|
2025-01-27 20:32:23 +08:00
|
|
|
|
|
2024-11-08 21:58:56 +08:00
|
|
|
|
public class BlackController : ControllerBase
|
|
|
|
|
{
|
2025-02-05 21:09:37 +08:00
|
|
|
|
private readonly RoleManager<Role> roleManager;
|
|
|
|
|
private readonly UserManager<User> userManager;
|
|
|
|
|
public BlackController(
|
|
|
|
|
RoleManager<Role> roleManager, UserManager<User> userManager)
|
|
|
|
|
{
|
|
|
|
|
this.roleManager = roleManager;
|
|
|
|
|
this.userManager = userManager;
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-01 22:36:25 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 增加信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="datas"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Route("api/v1/blackTable/Add")]
|
|
|
|
|
[HttpPost]
|
2025-02-05 21:09:37 +08:00
|
|
|
|
[Authorize]
|
2025-02-01 22:36:25 +08:00
|
|
|
|
public async Task<ActionResult<object>> blackAdd ([FromBody] BlackFront datas)
|
2024-11-08 21:58:56 +08:00
|
|
|
|
{
|
2025-02-05 21:09:37 +08:00
|
|
|
|
string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
|
|
|
|
|
var user = await userManager.FindByIdAsync(userId);
|
2025-02-18 21:26:19 +08:00
|
|
|
|
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin")||!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
2024-11-08 21:58:56 +08:00
|
|
|
|
{
|
|
|
|
|
return Ok(new error_mb { code = 401, message = "无权访问" });
|
|
|
|
|
}
|
2025-02-01 22:36:25 +08:00
|
|
|
|
using (TestDbContext sub = new TestDbContext())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var blackp = new BlackDB
|
|
|
|
|
{
|
2025-02-05 21:09:37 +08:00
|
|
|
|
record_time = datas.recordTime,
|
2025-02-01 22:36:25 +08:00
|
|
|
|
violator = datas.violator,
|
|
|
|
|
platform_record = datas.platformRecord,
|
|
|
|
|
offending_details = datas.offendingDetails,
|
|
|
|
|
processing_result = datas.processingResult,
|
|
|
|
|
feature_id = datas.featureId,
|
2025-02-05 21:09:37 +08:00
|
|
|
|
recorder = user.chinaname,
|
2025-02-01 22:36:25 +08:00
|
|
|
|
};
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
sub.T_blacks.Add(blackp);
|
|
|
|
|
await sub.SaveChangesAsync();
|
|
|
|
|
return Ok(new error_mb { code = 200, message = "添加黑名单人员成功!" });
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return Ok(new { code = 500, message = "服务器错误", details = ex });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return BadRequest(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 更新信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="datas"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Route("api/v1/blackTable/Update")]
|
|
|
|
|
[HttpPost]
|
2025-02-05 21:09:37 +08:00
|
|
|
|
[Authorize]
|
|
|
|
|
public async Task<ActionResult<object>> blackUpd([FromBody] BlackChange datas)
|
2025-02-01 22:36:25 +08:00
|
|
|
|
{
|
2025-02-05 21:09:37 +08:00
|
|
|
|
string userId = this.User.FindFirst(ClaimTypes.NameIdentifier)!.Value;
|
|
|
|
|
var user = await userManager.FindByIdAsync(userId);
|
2025-02-18 21:26:19 +08:00
|
|
|
|
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin") || !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
2025-02-01 22:36:25 +08:00
|
|
|
|
{
|
|
|
|
|
return Ok(new error_mb { code = 401, message = "无权访问" });
|
|
|
|
|
}
|
2025-02-05 21:09:37 +08:00
|
|
|
|
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 = "记录不存在!" });
|
|
|
|
|
}
|
2025-02-01 22:36:25 +08:00
|
|
|
|
|
2025-02-05 21:09:37 +08:00
|
|
|
|
|
2025-02-01 22:36:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 删除信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="idFind"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[Route("api/v1/blackTable/Del")]
|
2025-02-05 21:09:37 +08:00
|
|
|
|
[HttpDelete]
|
|
|
|
|
[Authorize]
|
2025-02-01 22:36:25 +08:00
|
|
|
|
public async Task<ActionResult<object>> blackDel([FromQuery] string idFind)
|
|
|
|
|
{
|
2025-02-18 21:26:19 +08:00
|
|
|
|
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin") || !this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
|
2025-02-01 22:36:25 +08:00
|
|
|
|
{
|
|
|
|
|
return Ok(new error_mb { code = 401, message = "无权访问" });
|
|
|
|
|
}
|
2025-02-05 21:09:37 +08:00
|
|
|
|
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 = "没有这个记录!" });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2024-11-08 21:58:56 +08:00
|
|
|
|
|
2025-02-05 21:09:37 +08:00
|
|
|
|
[Route("api/v1/admin/FindBlacks")]
|
|
|
|
|
[HttpGet]
|
2025-02-18 21:36:41 +08:00
|
|
|
|
public async Task<ActionResult<object>> FindBlacks([FromQuery]string recordYear = null,string violator=null, short page = 1, short limit = 10)
|
2025-02-05 21:09:37 +08:00
|
|
|
|
{
|
|
|
|
|
using (TestDbContext sub = new TestDbContext())
|
|
|
|
|
{
|
|
|
|
|
var query = sub.T_blacks.AsQueryable();
|
|
|
|
|
|
|
|
|
|
var TotalRecords = await query.CountAsync();
|
|
|
|
|
|
|
|
|
|
var Tasks = await query
|
2025-02-19 13:21:36 +08:00
|
|
|
|
.Where(g => (recordYear==null || g.record_time.Contains(recordYear)) && (g.violator==violator || violator==null))
|
2025-02-18 21:36:41 +08:00
|
|
|
|
.OrderByDescending(n => n.record_time)
|
2025-02-05 21:09:37 +08:00
|
|
|
|
.Skip((page - 1) * limit)
|
|
|
|
|
.Take(limit)
|
|
|
|
|
.ToListAsync();
|
|
|
|
|
|
|
|
|
|
var data = new
|
|
|
|
|
{
|
|
|
|
|
rows = Tasks,
|
|
|
|
|
total = TotalRecords,
|
|
|
|
|
};
|
|
|
|
|
return Ok(new { code = 200, message = " ", data });
|
|
|
|
|
}
|
2024-11-08 21:58:56 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|