/* * App底部导航 */ 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.BsModels; using Library; using LitJson; using MySystemLib; namespace MySystem.Areas.Admin.Controllers { [Area("Admin")] [Route("Admin/[controller]/[action]")] public class AppBottomNavsController : BaseController { public AppBottomNavsController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { OtherMySqlConn.connstr = ConfigurationManager.AppSettings["BsSqlConnStr"].ToString(); } #region App底部导航列表 /// /// 根据条件查询App底部导航列表 /// /// public IActionResult Index(AppBottomNavs data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; string Condition = ""; if (!string.IsNullOrEmpty(Condition)) { Condition = Condition.TrimEnd(','); Condition = ", where: {" + Condition + "}"; } ViewBag.Condition = Condition; return View(); } #endregion #region 根据条件查询App底部导航列表 /// /// App底部导航列表 /// /// public JsonResult IndexData(AppBottomNavs data, string Kind = "default", int page = 1, int limit = 30) { Dictionary Fields = new Dictionary(); string condition = " and SeoKeyword='" + Kind + "'"; Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).IndexData("AppBottomNavs", Fields, "QueryCount asc, Sort desc, Id desc", "0", page, limit, condition); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["Status"] = dic["Status"].ToString() == "1" ? "开启" : "关闭"; } return Json(obj); } #endregion #region 增加App底部导航 /// /// 增加或修改App底部导航信息 /// /// public IActionResult Add(string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; return View(); } #endregion #region 增加App底部导航 /// /// 增加或修改App底部导航信息 /// /// [HttpPost] public string Add(AppBottomNavs data) { string Kind = function.CheckNull(data.SeoKeyword); Dictionary Fields = new Dictionary(); Fields.Add("Title", data.Title); //标题 string SelectIcon = function.ReadInstance("/WebRootPath.txt") + data.SelectIcon; string NormalIcon = function.ReadInstance("/WebRootPath.txt") + data.NormalIcon; if (System.IO.File.Exists(SelectIcon)) { System.IO.File.Move(SelectIcon, SelectIcon.Replace("/default/", "/" + Kind + "/"), true); } if (System.IO.File.Exists(NormalIcon)) { System.IO.File.Move(NormalIcon, NormalIcon.Replace("/default/", "/" + Kind + "/"), true); } Fields.Add("SelectIcon", function.CheckNull(data.SelectIcon).Replace("/default/", "/" + Kind + "/")); //选中图标 Fields.Add("NormalIcon", function.CheckNull(data.NormalIcon).Replace("/default/", "/" + Kind + "/")); //未选中图标 Fields.Add("SelectTextColor", data.SelectTextColor); //选中文字颜色 Fields.Add("NormalTextColor", data.NormalTextColor); //未选中文字颜色 Fields.Add("PageName", data.PageName); //关联页面文件 Fields.Add("NoPageHint", data.NoPageHint); //为关联页面提示信息 Fields.Add("BgColor", data.BgColor); //背景色 Fields.Add("SeoTitle", data.SeoTitle); Fields.Add("SeoKeyword", data.SeoKeyword); Fields.Add("SeoDescription", data.SeoDescription); int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Add("AppBottomNavs", Fields, 0); AddSysLog(data.Id.ToString(), "AppBottomNavs", "add"); bsdb.SaveChanges(); return "success"; } #endregion #region 修改App底部导航 /// /// 增加或修改App底部导航信息 /// /// public IActionResult Edit(string right, int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; AppBottomNavs editData = bsdb.AppBottomNavs.FirstOrDefault(m => m.Id == Id) ?? new AppBottomNavs(); ViewBag.data = editData; return View(); } #endregion #region 修改App底部导航 /// /// 增加或修改App底部导航信息 /// /// [HttpPost] public string Edit(AppBottomNavs data) { string Kind = function.CheckNull(data.SeoKeyword); Dictionary Fields = new Dictionary(); Fields.Add("Title", data.Title); //标题 string SelectIcon = function.ReadInstance("/WebRootPath.txt") + data.SelectIcon; string NormalIcon = function.ReadInstance("/WebRootPath.txt") + data.NormalIcon; if (System.IO.File.Exists(SelectIcon)) { System.IO.File.Move(SelectIcon, SelectIcon.Replace("/default/", "/" + Kind + "/"), true); } if (System.IO.File.Exists(NormalIcon)) { System.IO.File.Move(NormalIcon, NormalIcon.Replace("/default/", "/" + Kind + "/"), true); } Fields.Add("SelectIcon", function.CheckNull(data.SelectIcon).Replace("/default/", "/" + Kind + "/")); //选中图标 Fields.Add("NormalIcon", function.CheckNull(data.NormalIcon).Replace("/default/", "/" + Kind + "/")); //未选中图标 Fields.Add("SelectTextColor", data.SelectTextColor); //选中文字颜色 Fields.Add("NormalTextColor", data.NormalTextColor); //未选中文字颜色 Fields.Add("PageName", data.PageName); //关联页面文件 Fields.Add("NoPageHint", data.NoPageHint); //为关联页面提示信息 Fields.Add("BgColor", data.BgColor); //背景色 Fields.Add("SeoTitle", data.SeoTitle); Fields.Add("SeoKeyword", data.SeoKeyword); Fields.Add("SeoDescription", data.SeoDescription); new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Edit("AppBottomNavs", Fields, data.Id); AddSysLog(data.Id.ToString(), "AppBottomNavs", "update"); bsdb.SaveChanges(); return "success"; } #endregion #region 删除App底部导航信息 /// /// 删除App底部导航信息 /// /// public string Delete(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "AppBottomNavs", "del"); foreach (string subid in idlist) { int id = int.Parse(subid); new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Delete("AppBottomNavs", id); } bsdb.SaveChanges(); return "success"; } #endregion #region 开启 /// /// 开启 /// /// public string Open(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "AppBottomNavs", "open"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", 1); new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Edit("AppBottomNavs", Fields, id); } bsdb.SaveChanges(); return "success"; } #endregion #region 关闭 /// /// 关闭 /// /// public string Close(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "AppBottomNavs", "close"); foreach (string subid in idlist) { int id = int.Parse(subid); Dictionary Fields = new Dictionary(); Fields.Add("Status", 0); new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Edit("AppBottomNavs", Fields, id); } bsdb.SaveChanges(); return "success"; } #endregion #region 排序 /// /// 排序 /// /// public string Sort(int Id, int Sort) { new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Sort("AppBottomNavs", Sort, Id); AddSysLog(Id.ToString(), "AppBottomNavs", "sort"); return "success"; } #endregion #region 导入数据 /// /// 导入数据 /// /// public string Import(string ExcelData) { ExcelData = HttpUtility.UrlDecode(ExcelData); JsonData list = JsonMapper.ToObject(ExcelData); for (int i = 1; i < list.Count; i++) { JsonData dr = list[i]; string Title = dr["标题"].ToString(); string SelectIcon = dr["选中图标"].ToString(); string NormalIcon = dr["未选中图标"].ToString(); string SelectTextColor = dr["选中文字颜色"].ToString(); string NormalTextColor = dr["未选中文字颜色"].ToString(); string PageName = dr["关联页面文件"].ToString(); string NoPageHint = dr["为关联页面提示信息"].ToString(); string BgColor = dr["背景色"].ToString(); bsdb.AppBottomNavs.Add(new AppBottomNavs() { CreateDate = DateTime.Now, UpdateDate = DateTime.Now, Title = Title, //标题 SelectIcon = SelectIcon, //选中图标 NormalIcon = NormalIcon, //未选中图标 SelectTextColor = SelectTextColor, //选中文字颜色 NormalTextColor = NormalTextColor, //未选中文字颜色 PageName = PageName, //关联页面文件 NoPageHint = NoPageHint, //为关联页面提示信息 BgColor = BgColor, //背景色 }); bsdb.SaveChanges(); } AddSysLog("0", "AppBottomNavs", "Import"); return "success"; } #endregion #region 导出Excel /// /// 导出Excel /// /// public JsonResult ExportExcel(AppBottomNavs data) { Dictionary Fields = new Dictionary(); Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).IndexData("AppBottomNavs", Fields, "Id desc", "0", 1, 20000, "", "Title,SelectIcon,NormalIcon,SelectTextColor,NormalTextColor,PageName,NoPageHint,BgColor", false); List> diclist = obj["data"] as List>; Dictionary result = new Dictionary(); result.Add("Status", "1"); result.Add("Info", "Excel报表-" + DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss") + ".xlsx"); result.Add("Obj", diclist); Dictionary ReturnFields = new Dictionary(); ReturnFields.Add("Title", "标题"); ReturnFields.Add("SelectIcon", "选中图标"); ReturnFields.Add("NormalIcon", "未选中图标"); ReturnFields.Add("SelectTextColor", "选中文字颜色"); ReturnFields.Add("NormalTextColor", "未选中文字颜色"); ReturnFields.Add("PageName", "关联页面文件"); ReturnFields.Add("NoPageHint", "为关联页面提示信息"); ReturnFields.Add("BgColor", "背景色"); result.Add("Fields", ReturnFields); AddSysLog("0", "AppBottomNavs", "ExportExcel"); return Json(result); } #endregion #region 同步数据到redis public string SyncAll(string Kind = "default") { List appnavs = bsdb.AppBottomNavs.Where(m => m.SeoKeyword == Kind && m.QueryCount == 0).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).ToList(); RedisDbconn.Instance.Clear("AppBottomNavs:" + Kind + ""); // RedisDbconn.Instance.AddList("AppBottomNavs:" + Kind + "", appnavs.ToArray()); appnavs = bsdb.AppBottomNavs.Where(m => m.SeoKeyword == Kind && m.QueryCount == 1).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).ToList(); RedisDbconn.Instance.Clear("AppBottomNavs:" + Kind + "test"); // RedisDbconn.Instance.AddList("AppBottomNavs:" + Kind + "test", appnavs.ToArray()); return "success"; } #endregion #region 上传资源图片 public JsonResult UploadPhoto([FromForm] IFormCollection rf) { IFormFile imgFile = rf.Files[0]; SystemSet set = bsdb.SystemSet.FirstOrDefault() ?? new SystemSet(); string path = MySystemLib.SystemPublicFuction.GetPicPath(imgFile, "skin/app/default/static/images/", function.ReadInstance("/WebRootPath.txt"), imgFile.FileName.Split('.')[0]); return Json(new AppResultJson() { Status = "1", Info = "", Data = path.Replace("wwwroot/", "") }); } #endregion } }