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 { /// /// 查询 /// /// /// [HttpPost, Route("Entities")] public JsonActionResult> Entities([FromBody] KeywordFilter filter) { return SafeExecute>(() => { RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); return manager.GetListKeys(filter.GetOrgId()) .Select(x => new RedisModel { ID = x.Name, HashEntry = x }).ToList(); }); } /// /// 查询 /// /// /// [HttpPost, Route("Paged")] public PagedActionResult Paged([FromBody] KeywordPageFilter pageFilter) { return SafeGetPagedData((result) => { RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); 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(); }); } /// /// 删除 /// /// /// [HttpPost, Route("Clear")] public JsonActionResult Clear([FromBody] KeywordFilter filter) { return SafeExecute(() => { RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); 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 SetStyle([FromBody] KeywordFilter filter) { return SafeExecute(() => { 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(); return CsRedisManager.StringSet(keyPer + filter.Keyword, styleModel); }); } [HttpPost, Route("GetStyle")] public JsonActionResult GetStyle([FromBody] KeywordFilter filter) { return SafeExecute(() => { var style = 0; if (string.IsNullOrEmpty(filter.Keyword)) this.ThrowError("020023"); var keyPer = "Style_"; //RedisManager manager = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); if (CsRedisManager.KeyExists(keyPer + filter.Keyword)) { style = CsRedisManager.StringGet(keyPer + filter.Keyword); } return style; }); } /// /// Keyword:key /// Parameter1:value /// /// /// [HttpPost, Route("SetValue")] public JsonActionResult SetValue([FromBody] KeywordFilter filter) { return SafeExecute(() => { CsRedisManager.StringSet(filter.Keyword + filter.OrgId, filter.Parameter1); return true; }); } /// /// 返回value /// /// /// [HttpPost, Route("GetValue")] public JsonActionResult GetValue([FromBody] KeywordFilter filter) { return SafeExecute(() => { return CsRedisManager.StringGet(filter.Keyword + filter.OrgId); }); } } }