白名单

This commit is contained in:
yanghongwei 2025-04-12 19:28:18 +08:00
parent 85bf5da2bc
commit 9994a375cc
4 changed files with 239 additions and 2 deletions

View File

@ -0,0 +1,71 @@
using LY.App.Model;
using LY.App.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Drawing.Printing;
namespace LY.App.Controllers
{
/// <summary>
/// WhitListController
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class WhitListController : ControllerBase
{
private readonly WhitListService _whitListService;
/// <summary>
/// Constructor
/// </summary>
/// <param name="whitListService"></param>
public WhitListController(WhitListService whitListService)
{
_whitListService = whitListService;
}
/// <summary>
/// GetList
/// </summary>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <param name="key"></param>
/// <returns></returns>
[HttpGet("list")]
public async Task<IActionResult> List(int pageNum, int pageSize, string key)
{
var result = await _whitListService.GetList(pageNum, pageSize, key);
return Ok(result);
}
/// <summary>
/// Add
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("add")]
public async Task<IActionResult> add(AddWhitelist input)
{
var result = await _whitListService.Add(input);
return Ok(result);
}
/// <summary>
/// Delete
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("delete")]
public async Task<IActionResult> delete(long id)
{
var result = await _whitListService.Delete(id);
return Ok(result);
}
/// <summary>
/// update
/// </summary>
/// <returns></returns>
[HttpPost("update")]
public async Task<IActionResult> Update(UpdateWhitelist input)
{
var result = await _whitListService.Update(input);
return Ok(result);
}
}
}

55
Model/Whitelist.cs Normal file
View File

@ -0,0 +1,55 @@
using Newtonsoft.Json;
using SqlSugar;
namespace LY.App.Model
{
[SugarTable("ly_white_list")]
public class Whitelist : BaseEntity
{
/// <summary>
/// 设备序列号
/// </summary>
public string sn { get; set; }
[SugarColumn(ColumnName = "all_day", ColumnDescription = "是否全天")]
public bool allDay { get; set; }
[SugarColumn(IsNullable = true)]
public DateTime? startTime { get; set; }
[SugarColumn(IsNullable = true)]
public DateTime? endTime { get; set; }
[JsonConverter(typeof(ValueToStringConverter))]
[SugarColumn(ColumnName = "position_id", ColumnDescription = "阵地id")]
public long positionId { get; set; }
public string positionName { get; set; }
}
public class AddWhitelist
{
/// <summary>
/// 设备序列号
/// </summary>
public string sn { get; set; }
/// <summary>
/// 是否全天
/// </summary>
public bool allDay { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? startTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? endTime { get; set; }
/// <summary>
/// 阵地id
/// </summary>
public long positionId { get; set; }
/// <summary>
/// 阵地名称
/// </summary>
public string positionName { get; set; }
}
public class UpdateWhitelist : AddWhitelist
{
public long id { get; set; }
}
}

View File

@ -85,7 +85,7 @@ builder.Services.AddTransient<SqlSugarClient>(sp =>
};
//创建数据库和表的语句仅执行一次
//db.DbMaintenance.CreateDatabase();
//db.CodeFirst.SetStringDefaultLength(2000).InitTables(typeof(UserEntity));
db.CodeFirst.SetStringDefaultLength(2000).InitTables(typeof(Whitelist));
#endif
//过滤器写在这儿就行了
// db.QueryFilter.AddTableFilter<IDeleted>(it => it.IsDeleted == false);
@ -125,7 +125,7 @@ app.UseCors("CorsPolicy");
//异常中间件
app.UseMiddleware<CustomErrorMiddleware>();
//token验证中间件
app.UseMiddleware<TokenValidationMiddleware>();
// app.UseMiddleware<TokenValidationMiddleware>();
//执行匹配的端点
app.UseEndpoints(endpoints =>
{

111
Service/WhitListService.cs Normal file
View File

@ -0,0 +1,111 @@
using LY.App.Extensions.DI;
using LY.App.Model;
using Mapster;
using SqlSugar;
using System.Collections.Generic;
namespace LY.App.Service
{
/// <summary>
/// 业务层白名单服务
/// </summary>
[ServiceInjection(InjectionType.Transient)]
public class WhitListService
{
private readonly SqlSugarClient _db;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="sqlSugarClient"></param>
public WhitListService(SqlSugarClient sqlSugarClient)
{
_db = sqlSugarClient;
}
/// <summary>
/// 新增白名单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> Add(AddWhitelist input)
{
var result = new ApiResult();
var entity = input.Adapt<Whitelist>();
var id = await _db.Insertable(entity).ExecuteReturnIdentityAsync();
result.data = id.ToString();
return result;
}
/// <summary>
/// 删除白名单
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<ApiResult> Delete(long id)
{
var result = new ApiResult();
var entity = await _db.Queryable<Whitelist>().FirstAsync(x => x.Id == id);
if (entity == null)
{
entity.IsDeleted = true;
await _db.Updateable(entity).ExecuteCommandAsync();
return result;
}
return result;
}
/// <summary>
/// 获取白名单列表
/// </summary>
/// <param name="pageNum"></param>
/// <param name="pageSize"></param>
/// <param name="key"></param>
/// <returns></returns>
public async Task<ApiResult> GetList(int pageNum, int pageSize, string key)
{
var result = new ApiResult();
RefAsync<int> total = 0;
var items = await _db.Queryable<Whitelist>()
.Where(s => s.IsDeleted == false)
.WhereIF(!string.IsNullOrEmpty(key), s => s.sn.Contains(key))
.OrderByDescending(s => s.Id)
.ToPageListAsync(pageNum, pageSize, total);
return new ApiResult()
{
data = new
{
total = total.Value,
items
}
};
}
/// <summary>
/// 获取白名单详情
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<ApiResult> GetById(long id)
{
var entity = await _db.Queryable<Whitelist>().FirstAsync(x => x.Id == id);
if (entity != null)
{
return new ApiResult(true, null);
}
return new ApiResult(false, "未找到该白名单");
}
/// <summary>
/// 更新白名单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> Update(UpdateWhitelist input)
{
var entity = input.Adapt<Whitelist>();
await _db.Updateable(entity).ExecuteCommandAsync();
if (entity != null)
{
entity.Adapt(input);
await _db.Updateable(entity).ExecuteCommandAsync();
return new ApiResult() { code = 0 };
}
return new ApiResult() { code = 1, msg = "更新失败" };
}
}
}