mh_lcmk_sms_service/APT.MicroApi/APT.PF.WebApi/Controllers/Api/RedisController.cs
2024-07-12 16:37:09 +08:00

148 lines
5.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
});
}
}
}