/* * 路由拦截 */ using System; using System.Web; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MySystem.Models; using Library; using LitJson; using MySystemLib; namespace MySystem.Areas.Admin.Controllers { [Area("Admin")] [Route("Admin/[controller]/[action]")] public class ApiUrlRewriteController : BaseController { public ApiUrlRewriteController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString(); } #region 路由拦截列表 /// /// 根据条件查询路由拦截列表 /// /// public IActionResult Index(ApiUrlRewrite data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 根据条件查询路由拦截列表 /// /// 路由拦截列表 /// /// public JsonResult IndexData(ApiUrlRewrite data, int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).IndexData("ApiUrlRewrite", Fields, "Id desc", "0", page, limit); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { int Kind = int.Parse(dic["QueryCount"].ToString()); if(Kind == 1) dic["Kind"] = "APP"; if(Kind == 2) dic["Kind"] = "后台"; } return Json(obj); } #endregion #region 增加路由拦截 /// /// 增加或修改路由拦截信息 /// /// public IActionResult Add(string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 增加路由拦截 /// /// 增加或修改路由拦截信息 /// /// [HttpPost] public string Add(ApiUrlRewrite data) { Dictionary Fields = new Dictionary(); Fields.Add("UrlPath", data.UrlPath); Fields.Add("QueryCount", data.QueryCount); int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Add("ApiUrlRewrite", Fields, 0); AddSysLog(data.Id.ToString(), "ApiUrlRewrite", "add"); db.SaveChanges(); return "success"; } #endregion #region 修改路由拦截 /// /// 增加或修改路由拦截信息 /// /// public IActionResult Edit(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; ApiUrlRewrite editData = db.ApiUrlRewrite.FirstOrDefault(m => m.Id == Id) ?? new ApiUrlRewrite(); ViewBag.data = editData; return View(); } #endregion #region 修改路由拦截 /// /// 增加或修改路由拦截信息 /// /// [HttpPost] public string Edit(ApiUrlRewrite data) { Dictionary Fields = new Dictionary(); Fields.Add("UrlPath", data.UrlPath); Fields.Add("QueryCount", data.QueryCount); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ApiUrlRewrite", Fields, data.Id); AddSysLog(data.Id.ToString(),"ApiUrlRewrite","update"); db.SaveChanges(); return "success"; } #endregion #region 删除路由拦截信息 /// /// 删除路由拦截信息 /// /// public string Delete(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id,"ApiUrlRewrite","del"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", -1); new AdminContentOther(_accessor.HttpContext, PublicFunction.MainTables).Edit("ApiUrlRewrite", Fields, id); } db.SaveChanges(); return "success"; } #endregion #region 设置缓存 public string SetRedis() { List query = db.ApiUrlRewrite.Where(m => m.QueryCount == 1).ToList().Select(m => m.UrlPath).ToList(); RedisDbconn.Instance.Clear("ApiUrlRewriteList1"); foreach(string sub in query) { RedisDbconn.Instance.AddList("ApiUrlRewriteList1", sub); } query = db.ApiUrlRewrite.Where(m => m.QueryCount == 2).ToList().Select(m => m.UrlPath).ToList(); RedisDbconn.Instance.Clear("ApiUrlRewriteList2"); foreach(string sub in query) { RedisDbconn.Instance.AddList("ApiUrlRewriteList2", sub); } AddSysLog("0", "ApiUrlRewrite", "SetRedis"); return "success"; } #endregion } }