/* * 广告位 */ using System; using System.Web; using System.Collections.Generic; using System.Linq; 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 AdvertismentController : BaseController { public AdvertismentController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { OtherMySqlConn.connstr = ConfigurationManager.AppSettings["BsSqlConnStr"].ToString(); } #region 广告位列表 /// /// 根据条件查询广告位列表 /// /// public IActionResult Index(Advertisment data, string right) { ViewBag.RightInfo = RightInfo; ViewBag.right = right; ViewBag.SysUserName = SysUserName; string Condition = ""; Condition += "Title:\"" + data.Title + "\","; if (!string.IsNullOrEmpty(Condition)) { Condition = Condition.TrimEnd(','); Condition = ", where: {" + Condition + "}"; } ViewBag.Condition = Condition; return View(); } #endregion #region 根据条件查询广告位列表 /// /// 广告位列表 /// /// public JsonResult IndexData(Advertisment data, int page = 1, int limit = 30) { Dictionary ColDic = new DictionaryClass().getColDic("003"); Dictionary Fields = new Dictionary(); Fields.Add("Title", "2"); //标题 Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).IndexData("Advertisment", Fields, "Id desc", "False", page, limit); List> diclist = obj["data"] as List>; foreach (Dictionary dic in diclist) { dic["ColId"] = new DictionaryClass().getDictionaryNameByKey(ColDic, dic["ColId"].ToString()); } return Json(obj); } #endregion #region 增加广告位 /// /// 增加或修改广告位信息 /// /// public IActionResult Add() { ViewBag.RightInfo = RightInfo; ViewBag.right = _accessor.HttpContext.Request.Query["right"]; ViewBag.SysUserName = SysUserName; return View(); } #endregion #region 增加广告位 /// /// 增加或修改广告位信息 /// /// [HttpPost] public string Add(Advertisment data) { Dictionary Fields = new Dictionary(); Fields.Add("Title", data.Title); //标题 Fields.Add("ColId", data.ColId); //分类 Fields.Add("PicPath", data.PicPath); //图片 Fields.Add("Contents", data.Contents); //内容 Fields.Add("Url", data.Url); //链接地址 Fields.Add("Status", 1); int Id = new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Add("Advertisment", Fields, 0); AddSysLog(data.Id.ToString(), "Advertisment", "add"); bsdb.SaveChanges(); SetRedis(data.ColId, Id); return "success"; } #endregion #region 修改广告位 /// /// 增加或修改广告位信息 /// /// public IActionResult Edit(int Id = 0) { ViewBag.RightInfo = RightInfo; ViewBag.right = _accessor.HttpContext.Request.Query["right"]; ViewBag.SysUserName = SysUserName; Advertisment editData = bsdb.Advertisment.FirstOrDefault(m => m.Id == Id) ?? new Advertisment(); ViewBag.data = editData; return View(); } #endregion #region 修改广告位 /// /// 增加或修改广告位信息 /// /// [HttpPost] public string Edit(Advertisment data) { Dictionary Fields = new Dictionary(); Fields.Add("Title", data.Title); //标题 Fields.Add("ColId", data.ColId); //分类 Fields.Add("PicPath", data.PicPath); //图片 Fields.Add("Contents", data.Contents); //内容 Fields.Add("Url", data.Url); //链接地址 new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Edit("Advertisment", Fields, data.Id); AddSysLog(data.Id.ToString(), "Advertisment", "update"); bsdb.SaveChanges(); SetRedis(data.ColId, data.Id); return "success"; } #endregion #region 删除广告位信息 /// /// 删除广告位信息 /// /// public string Delete(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Advertisment", "del"); foreach (string subid in idlist) { int id = int.Parse(subid); string ColId = ""; Advertisment ad = bsdb.Advertisment.FirstOrDefault(m => m.Id == id); if(ad != null) { ColId = ad.ColId; } new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Delete("Advertisment", id); SetRedis(ColId); } bsdb.SaveChanges(); return "success"; } #endregion #region 开启 /// /// 开启 /// /// public string Open(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Advertisment", "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("Advertisment", Fields, id); } bsdb.SaveChanges(); return "success"; } #endregion #region 关闭 /// /// 关闭 /// /// public string Close(string Id) { string[] idlist = Id.Split(new char[] { ',' }); AddSysLog(Id, "Advertisment", "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("Advertisment", Fields, id); } bsdb.SaveChanges(); return "success"; } #endregion #region 排序 /// /// 排序 /// /// public string Sort(int Id, int Sort) { new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).Sort("Advertisment", Sort, Id); AddSysLog(Id.ToString(), "Advertisment", "sort"); Advertisment ad = bsdb.Advertisment.FirstOrDefault(m => m.Id == Id); if(ad != null) { SetRedis(ad.ColId); } 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]; bsdb.Advertisment.Add(new Advertisment() { CreateDate = DateTime.Now, UpdateDate = DateTime.Now, }); bsdb.SaveChanges(); } AddSysLog("0", "Advertisment", "Import"); return "success"; } #endregion #region 导出Excel /// /// 导出Excel /// /// public JsonResult ExportExcel(Advertisment data) { Dictionary Fields = new Dictionary(); Fields.Add("Title", "2"); //标题 Dictionary obj = new AdminContentOther(_accessor.HttpContext, PublicFunction.BsTables).IndexData("Advertisment", Fields, "Id desc", "False", 1, 20000, "", "", 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(); result.Add("Fields", ReturnFields); AddSysLog("0", "Advertisment", "ExportExcel"); return Json(result); } #endregion #region 设置缓存 private void SetRedis(string ColId, int Id = 0) { List query = bsdb.Advertisment.Where(m => m.ColId == ColId).OrderByDescending(m => m.Sort).ThenByDescending(m => m.Id).ToList(); RedisDbconn.Instance.Clear("Advertisment:" + ColId); RedisDbconn.Instance.AddList("Advertisment:" + ColId, query.ToArray()); if (Id > 0) { Advertisment ad = bsdb.Advertisment.FirstOrDefault(m => m.Id == Id) ?? new Advertisment(); RedisDbconn.Instance.Set("Advertisment:" + Id, ad); } } #endregion } }