148 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								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>
							 | 
						|||
| 
								 | 
							
										/// Keyword:key
							 | 
						|||
| 
								 | 
							
										/// Parameter1:value
							 | 
						|||
| 
								 | 
							
										/// </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);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |