using System; using System.Collections.Generic; using System.Linq; using System.Data; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using MySystem.Models; using Library; using LitJson; using MySystemLib; namespace MySystem.Areas.Admin.Controllers { [Area("Admin")] [Route("Admin/[controller]/[action]")] public class HomeController : Controller { public WebCMSEntities db = new WebCMSEntities(); public IHttpContextAccessor _accessor; public HomeController(IHttpContextAccessor accessor) { _accessor = accessor; } /// /// 主界面 /// /// public IActionResult Index() { if (function.GetSession(_accessor.HttpContext, "IsLogin") != "1") { return Redirect("/Admin/Home/Login"); } ViewBag.SysUserName = function.GetCookie(_accessor.HttpContext, "SysUserName"); List RightList = db.RightDic.OrderBy(m => m.Id).ToList(); ViewBag.RightList = RightList; ViewBag.SysRealName = function.GetCookie(_accessor.HttpContext, "SysRealName"); ViewBag.RightInfo = "," + function.GetSession(_accessor.HttpContext, "RightInfo") + ","; ViewBag.MyTaskCount = "0"; List menus = db.RightDic.Where(m => !string.IsNullOrEmpty(m.Url)).ToList(); ViewBag.menus = menus; string Role = function.GetCookie(_accessor.HttpContext, "SysRealRole"); ViewBag.Role = Role; return View(); } /// /// 统计界面 /// /// public IActionResult Main() { SystemSet set = db.SystemSet.FirstOrDefault() ?? new SystemSet(); ViewBag.SMSCount = set.QueryCount.ToString(); ViewBag.RightInfo = function.GetSession(_accessor.HttpContext, "RightInfo"); List menus = db.RightDic.Where(m => m.MainMenu == 1).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).Take(8).ToList(); ViewBag.menus = menus; List> statlist = new List>(); List stats = db.RightDic.Where(m => m.MainStat == 1).OrderBy(m => m.Id).ToList(); foreach (RightDic sub in stats) { string url = sub.Url; if (!string.IsNullOrEmpty(url)) { string table = url.Split('/')[2]; Dictionary item = new Dictionary(); item.Add("Name", function.CheckNull(sub.Name).Replace("管理", "").Replace("列表", "")); int count = 0; DataTable dt = dbconn.dtable("select count(Id) from " + table); if (dt.Rows.Count > 0) { count = int.Parse(dt.Rows[0][0].ToString()); } item.Add("Count", count); statlist.Add(item); } } ViewBag.statlist = statlist; List datalist = db.RightDic.Where(m => m.MainDataList == 1).OrderBy(m => m.Id).ToList(); ViewBag.datalist = datalist; string Role = function.GetCookie(_accessor.HttpContext, "SysRealRole"); ViewBag.Role = Role; return View(); } /// /// 搜索菜单 /// /// public IActionResult Search(string keywords = "") { ViewBag.RightInfo = "," + function.GetSession(_accessor.HttpContext, "RightInfo") + ","; List menus = db.RightDic.Where(m => m.Name.Contains(keywords) && !string.IsNullOrEmpty(m.Url)).ToList(); ViewBag.menus = menus; return View(); } #region 后台管理员登录 public IActionResult Login() { function.WriteSession(_accessor.HttpContext, "GotoLogin", ""); string Pwd = function.MD5_32("ym87540628"); SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.AdminName == "admin"); if (sys == null) { string Role = "0"; List roles = db.SysAdminRole.ToList(); if (roles.Count > 0) { Role = roles[0].Id.ToString(); } db.SysAdmin.Add(new SysAdmin() { AdminName = "admin", //用户名 Password = Pwd, //密码 RealName = "系统管理员", //名称 Role = Role, }); db.SaveChanges(); } return View(); } /// /// 后台管理员登录 /// /// 用户名 /// 密码 /// [HttpPost] public string Login(string UserName, string Pwd, string CheckCode) { string result = ""; if (function.GetCookie(_accessor.HttpContext, "checkcode") != CheckCode) { result = "验证码错误!!"; } else { Pwd = function.MD5_32(Pwd); var user = db.SysAdmin.FirstOrDefault(m => m.AdminName == UserName && m.Password == Pwd); if (user != null) { user.LastLoginDate = DateTime.Now; db.SaveChanges(); function.WriteCookie(_accessor.HttpContext, "SysUserName", user.AdminName); function.WriteCookie(_accessor.HttpContext, "SysRealName", user.RealName); function.WriteCookie(_accessor.HttpContext, "SysRealRole", user.Role); int RoleId = int.Parse(function.CheckInt(user.Role)); SysAdminRole Role = db.SysAdminRole.FirstOrDefault(m => m.Id == RoleId) ?? new SysAdminRole(); string RightInfo = function.CheckNull(Role.RightInfo); function.WriteSession(_accessor.HttpContext, "RightInfo", RightInfo); string UserId = user.Id.ToString(); function.WriteCookie(_accessor.HttpContext, "SysId", UserId); function.WriteSession(_accessor.HttpContext, "IsLogin", "1"); result = "success"; } else { result = "用户名或密码错误"; } } return result; } #endregion #region 退出登录 /// /// 退出登录 /// public void Quit() { function.WriteCookie(_accessor.HttpContext, "SysUserName", "", -1); function.WriteCookie(_accessor.HttpContext, "SysRealName", "", -1); function.WriteCookie(_accessor.HttpContext, "SysId", "", -1); function.WriteCookie(_accessor.HttpContext, "Role", "", -1); function.WriteCookie(_accessor.HttpContext, "IsLogin", "", -1); _accessor.HttpContext.Response.Redirect("/Admin/Home/Login"); } #endregion #region 修改登录密码 /// /// 修改登录密码 /// /// public IActionResult LoginPassword() { if (function.GetCookie(_accessor.HttpContext, "SysRealRole") == "3") { return Redirect("/Admin/Merchants/LoginPassword"); } return View(); } public string LoginPasswordPost(string OldPassword, string NewPassword, string NewPassword2) { if (string.IsNullOrEmpty(OldPassword)) { return "请输入旧密码"; } if (string.IsNullOrEmpty(NewPassword)) { return "请输入新密码"; } if (string.IsNullOrEmpty(NewPassword2)) { return "请确认密码"; } if (NewPassword != NewPassword2) { return "两次密码输入不一致"; } int SysId = int.Parse(function.CheckInt(function.GetCookie(_accessor.HttpContext, "SysId"))); SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.Id == SysId); if (sys != null) { if (function.MD5_32(OldPassword) != sys.Password) { return "旧密码不正确"; } sys.Password = function.MD5_32(NewPassword); db.SaveChanges(); return "success"; } return "修改失败"; } #endregion #region 个人资料 /// /// 个人资料 /// /// public IActionResult AdminInfo() { if (function.GetCookie(_accessor.HttpContext, "SysRealRole") == "3") { return Redirect("/Admin/Merchants/AdminInfo"); } int SysId = int.Parse(function.CheckInt(function.GetCookie(_accessor.HttpContext, "SysId"))); SysAdmin data = db.SysAdmin.FirstOrDefault(m => m.Id == SysId) ?? new SysAdmin(); ViewBag.data = data; return View(); } public string AdminInfoPost(SysAdmin data) { int SysId = int.Parse(function.CheckInt(function.GetCookie(_accessor.HttpContext, "SysId"))); SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.Id == SysId); if (sys != null) { sys.RealName = data.RealName; db.SaveChanges(); return "success"; } return "修改失败"; } #endregion public string MakeData() { OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString(); Dictionary> tables = SystemPublicFuction.dbtables; foreach (string table in tables.Keys) { int num = function.get_Random(50, 100); for (int i = 0; i < num; i++) { string fields = ""; string values = ""; Dictionary columns = tables[table]; foreach (string column in columns.Keys) { string columnType = columns[column]; fields += column + ","; if (columnType == "numeric" || columnType == "int") { values += function.get_Random(1) + ","; } else if (columnType == "datetime") { values += "'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',"; } else if (columnType == "bit") { values += "1,"; } else { values += "'" + function.get_Random(20) + "',"; } } string sql = "insert into " + table + " (" + fields.TrimEnd(',') + ") values (" + values.TrimEnd(',') + ")"; OtherMySqlConn.op(sql); } } OtherMySqlConn.connstr = ""; return "ok"; } } }