mh_jy_safe/APT.MicroApi/APT.PF.WebApi/Controllers/Api/RedisController.cs

148 lines
5.3 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.IServices;
using APT.Infrastructure.Core;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using APT.Infrastructure.Api;
using APT.Infrastructure.Api.Redis;
using APT.MS.Domain.ApiModel.PF;
namespace APT.MS.WebApiControllers.Api.PF
{
[Route("api/PF/Redis")]
public class RedisController : AuthorizeTreeApiController<T_PF_MENU>
{
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("Entities")]
public JsonActionResult<List<RedisModel>> Entities([FromBody] KeywordFilter filter)
{
return SafeExecute<List<RedisModel>>(() =>
{
RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<RedisManager>();
return manager.GetListKeys(filter.GetOrgId())
.Select(x => new RedisModel { ID = x.Name, HashEntry = x }).ToList();
});
}
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("Paged")]
public PagedActionResult<RedisModel> Paged([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData<RedisModel>((result) =>
{
RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<RedisManager>();
var list = manager.GetListKeys(pageFilter.GetOrgId());
if (!string.IsNullOrEmpty(pageFilter.Parameter1))
{
string name = pageFilter.Parameter1;
list = list.Where(i => i.Name.ToString().Contains(name)).ToList();
}
result.TotalCount = list.Count;
result.Data = list.Skip(pageFilter.Start).Take(pageFilter.Limit)
.Select(x => new RedisModel { ID = x.Name, HashEntry = x }).ToList();
});
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("Clear")]
public JsonActionResult<bool> Clear([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<RedisManager>();
if (manager.ExistsListKeys(filter.GetOrgId(), filter.Keyword))
{
var redisDataKey = manager.GetListKey(filter.GetOrgId(), filter.Keyword);
if (CsRedisManager.KeyExists(redisDataKey))
{
CsRedisManager.KeyDelete(redisDataKey);
}
manager.DeleteListKeys(filter.GetOrgId(), filter.Keyword);
}
return true;
});
}
[HttpPost, Route("SetStyle")]
public JsonActionResult<bool> SetStyle([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
if (string.IsNullOrEmpty(filter.Keyword))
this.ThrowError("020023");
if (string.IsNullOrEmpty(filter.Parameter1))
this.ThrowError("020024");
var keyPer = "Style_";
int styleModel = int.Parse(filter.Parameter1);
//RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<RedisManager>();
return CsRedisManager.StringSet<int>(keyPer + filter.Keyword, styleModel);
});
}
[HttpPost, Route("GetStyle")]
public JsonActionResult<int> GetStyle([FromBody] KeywordFilter filter)
{
return SafeExecute<int>(() =>
{
var style = 0;
if (string.IsNullOrEmpty(filter.Keyword))
this.ThrowError("020023");
var keyPer = "Style_";
//RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<RedisManager>();
if (CsRedisManager.KeyExists(keyPer + filter.Keyword))
{
style = CsRedisManager.StringGet<int>(keyPer + filter.Keyword);
}
return style;
});
}
/// <summary>
/// Keywordkey
/// Parameter1value
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("SetValue")]
public JsonActionResult<bool> SetValue([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
CsRedisManager.StringSet(filter.Keyword + filter.OrgId, filter.Parameter1);
return true;
});
}
/// <summary>
/// 返回value
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
[HttpPost, Route("GetValue")]
public JsonActionResult<string> GetValue([FromBody] KeywordFilter filter)
{
return SafeExecute<string>(() =>
{
return CsRedisManager.StringGet(filter.Keyword + filter.OrgId);
});
}
}
}