HomeController.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Data;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.AspNetCore.Http;
  7. using MySystem.Models;
  8. using Library;
  9. using LitJson;
  10. namespace MySystem.Areas.Admin.Controllers
  11. {
  12. [Area("Admin")]
  13. [Route("Admin/[controller]/[action]")]
  14. public class HomeController : Controller
  15. {
  16. public BsModels.WebCMSEntities db = new BsModels.WebCMSEntities();
  17. public WebCMSEntities maindb = new WebCMSEntities();
  18. public IHttpContextAccessor _accessor;
  19. public HomeController(IHttpContextAccessor accessor)
  20. {
  21. _accessor = accessor;
  22. }
  23. /// <summary>
  24. /// 主界面
  25. /// </summary>
  26. /// <returns></returns>
  27. public IActionResult Index()
  28. {
  29. if (function.GetSession(_accessor.HttpContext, "IsLogin") != "1")
  30. {
  31. return Redirect("/Admin/Home/Login");
  32. }
  33. ViewBag.SysUserName = function.GetCookie(_accessor.HttpContext, "SysUserName");
  34. List<BsModels.RightDic> RightList = db.RightDic.OrderBy(m => m.Id).ToList();
  35. ViewBag.RightList = RightList;
  36. ViewBag.SysRealName = function.GetCookie(_accessor.HttpContext, "SysRealName");
  37. ViewBag.RightInfo = "," + function.GetSession(_accessor.HttpContext, "RightInfo") + ",";
  38. ViewBag.MyTaskCount = "0";
  39. List<BsModels.RightDic> menus = db.RightDic.Where(m => !string.IsNullOrEmpty(m.Url)).ToList();
  40. ViewBag.menus = menus;
  41. string Role = function.GetCookie(_accessor.HttpContext, "SysRealRole");
  42. ViewBag.Role = Role;
  43. return View();
  44. }
  45. /// <summary>
  46. /// 统计界面
  47. /// </summary>
  48. /// <returns></returns>
  49. public IActionResult Main()
  50. {
  51. BsModels.SystemSet set = db.SystemSet.FirstOrDefault() ?? new BsModels.SystemSet();
  52. ViewBag.SMSCount = set.QueryCount.ToString();
  53. ViewBag.RightInfo = function.GetSession(_accessor.HttpContext, "RightInfo");
  54. List<BsModels.RightDic> menus = db.RightDic.Where(m => m.MainMenu == 1).OrderByDescending(m => m.Sort).ThenBy(m => m.Id).Take(8).ToList();
  55. ViewBag.menus = menus;
  56. List<Dictionary<string, object>> statlist = new List<Dictionary<string, object>>();
  57. List<BsModels.RightDic> stats = db.RightDic.Where(m => m.MainStat == 1).OrderBy(m => m.Id).ToList();
  58. foreach (BsModels.RightDic sub in stats)
  59. {
  60. string url = sub.Url;
  61. if (!string.IsNullOrEmpty(url))
  62. {
  63. string table = url.Split('/')[2];
  64. Dictionary<string, object> item = new Dictionary<string, object>();
  65. item.Add("Name", function.CheckNull(sub.Name).Replace("管理", "").Replace("列表", ""));
  66. int count = 0;
  67. DataTable dt = dbconn.dtable("select count(Id) from " + table);
  68. if (dt.Rows.Count > 0)
  69. {
  70. count = int.Parse(dt.Rows[0][0].ToString());
  71. }
  72. item.Add("Count", count);
  73. statlist.Add(item);
  74. }
  75. }
  76. //统计机具券剩余数量
  77. Dictionary<string, object> otherItem = new Dictionary<string, object>();
  78. otherItem.Add("Name", "电签券库存");
  79. otherItem.Add("Count", maindb.PosCoupons.Count(m => m.IsUse == 0 && m.IsLock == 0 && m.UserId == 0 && m.QueryCount == 1));
  80. statlist.Add(otherItem);
  81. otherItem = new Dictionary<string, object>();
  82. otherItem.Add("Name", "大机券库存");
  83. otherItem.Add("Count", maindb.PosCoupons.Count(m => m.IsUse == 0 && m.IsLock == 0 && m.UserId == 0 && m.QueryCount == 2));
  84. statlist.Add(otherItem);
  85. otherItem = new Dictionary<string, object>();
  86. otherItem.Add("Name", "电渠卡库存");
  87. otherItem.Add("Count", maindb.PosMachinesTwo.Count(m => m.BrandId == 14 && m.StoreId == 8664 && m.PosSn.StartsWith("CS") && m.BuyUserId == 0 && m.BindingState == 0 && m.ActivationState == 0));
  88. statlist.Add(otherItem);
  89. ViewBag.statlist = statlist;
  90. List<BsModels.RightDic> datalist = db.RightDic.Where(m => m.MainDataList == 1).OrderBy(m => m.Id).ToList();
  91. ViewBag.datalist = datalist;
  92. string Role = function.GetCookie(_accessor.HttpContext, "SysRealRole");
  93. ViewBag.Role = Role;
  94. return View();
  95. }
  96. /// <summary>
  97. /// 搜索菜单
  98. /// </summary>
  99. /// <returns></returns>
  100. public IActionResult Search(string keywords = "")
  101. {
  102. ViewBag.RightInfo = "," + function.GetSession(_accessor.HttpContext, "RightInfo") + ",";
  103. List<BsModels.RightDic> menus = db.RightDic.Where(m => m.Name.Contains(keywords) && !string.IsNullOrEmpty(m.Url)).ToList();
  104. ViewBag.menus = menus;
  105. return View();
  106. }
  107. #region 后台管理员登录
  108. public IActionResult Login()
  109. {
  110. function.WriteSession(_accessor.HttpContext, "GotoLogin", "");
  111. string Pwd = function.MD5_32("ym87540628");
  112. BsModels.SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.AdminName == "admin");
  113. if (sys == null)
  114. {
  115. string Role = "0";
  116. List<BsModels.SysAdminRole> roles = db.SysAdminRole.ToList();
  117. if (roles.Count > 0)
  118. {
  119. Role = roles[0].Id.ToString();
  120. }
  121. db.SysAdmin.Add(new BsModels.SysAdmin()
  122. {
  123. AdminName = "admin", //用户名
  124. Password = Pwd, //密码
  125. RealName = "系统管理员", //名称
  126. Role = Role,
  127. });
  128. db.SaveChanges();
  129. }
  130. return View();
  131. }
  132. /// <summary>
  133. /// 后台管理员登录
  134. /// </summary>
  135. /// <param name="UserName">用户名</param>
  136. /// <param name="Pwd">密码</param>
  137. /// <returns></returns>
  138. [HttpPost]
  139. public string Login(string UserName, string Pwd, string CheckCode)
  140. {
  141. string result = "";
  142. if (function.GetCookie(_accessor.HttpContext, "checkcode") != CheckCode)
  143. {
  144. result = "验证码错误!!";
  145. }
  146. else
  147. {
  148. Pwd = function.MD5_32(Pwd);
  149. var user = db.SysAdmin.FirstOrDefault(m => m.AdminName == UserName && m.Password == Pwd);
  150. if (user != null)
  151. {
  152. user.LastLoginDate = DateTime.Now;
  153. db.SaveChanges();
  154. function.WriteCookie(_accessor.HttpContext, "SysUserName", user.AdminName);
  155. function.WriteCookie(_accessor.HttpContext, "SysRealName", user.RealName);
  156. function.WriteCookie(_accessor.HttpContext, "SysRealRole", user.Role);
  157. int RoleId = int.Parse(function.CheckInt(user.Role));
  158. BsModels.SysAdminRole Role = db.SysAdminRole.FirstOrDefault(m => m.Id == RoleId) ?? new BsModels.SysAdminRole();
  159. string RightInfo = function.CheckNull(Role.RightInfo);
  160. function.WriteSession(_accessor.HttpContext, "RightInfo", RightInfo);
  161. string UserId = user.Id.ToString();
  162. function.WriteCookie(_accessor.HttpContext, "SysId", UserId);
  163. function.WriteSession(_accessor.HttpContext, "IsLogin", "1");
  164. result = "success";
  165. }
  166. else
  167. {
  168. result = "用户名或密码错误";
  169. }
  170. }
  171. // string result = "";
  172. // Pwd = function.MD5_32(Pwd);
  173. // var user = db.SysAdmin.FirstOrDefault(m => m.AdminName == UserName && m.Password == Pwd);
  174. // if (user != null)
  175. // {
  176. // user.LastLoginDate = DateTime.Now;
  177. // db.SaveChanges();
  178. // function.WriteCookie(_accessor.HttpContext, "SysUserName", user.AdminName);
  179. // function.WriteCookie(_accessor.HttpContext, "SysRealName", user.RealName);
  180. // function.WriteCookie(_accessor.HttpContext, "SysRealRole", user.Role);
  181. // int RoleId = int.Parse(function.CheckInt(user.Role));
  182. // BsModels.SysAdminRole Role = db.SysAdminRole.FirstOrDefault(m => m.Id == RoleId) ?? new BsModels.SysAdminRole();
  183. // string RightInfo = function.CheckNull(Role.RightInfo);
  184. // function.WriteSession(_accessor.HttpContext, "RightInfo", RightInfo);
  185. // string UserId = user.Id.ToString();
  186. // function.WriteCookie(_accessor.HttpContext, "SysId", UserId);
  187. // function.WriteSession(_accessor.HttpContext, "IsLogin", "1");
  188. // result = "success";
  189. // }
  190. // else
  191. // {
  192. // result = "用户名或密码错误";
  193. // }
  194. return result;
  195. }
  196. #endregion
  197. #region 退出登录
  198. /// <summary>
  199. /// 退出登录
  200. /// </summary>
  201. public void Quit()
  202. {
  203. function.WriteCookie(_accessor.HttpContext, "SysUserName", "", -1);
  204. function.WriteCookie(_accessor.HttpContext, "SysRealName", "", -1);
  205. function.WriteCookie(_accessor.HttpContext, "SysId", "", -1);
  206. function.WriteCookie(_accessor.HttpContext, "Role", "", -1);
  207. function.WriteCookie(_accessor.HttpContext, "IsLogin", "", -1);
  208. _accessor.HttpContext.Response.Redirect("/Admin/Home/Login");
  209. }
  210. #endregion
  211. #region 修改登录密码
  212. /// <summary>
  213. /// 修改登录密码
  214. /// </summary>
  215. /// <returns></returns>
  216. public IActionResult LoginPassword()
  217. {
  218. if (function.GetCookie(_accessor.HttpContext, "SysRealRole") == "3")
  219. {
  220. return Redirect("/Admin/Merchants/LoginPassword");
  221. }
  222. return View();
  223. }
  224. public string LoginPasswordPost(string OldPassword, string NewPassword, string NewPassword2)
  225. {
  226. if (string.IsNullOrEmpty(OldPassword))
  227. {
  228. return "请输入旧密码";
  229. }
  230. if (string.IsNullOrEmpty(NewPassword))
  231. {
  232. return "请输入新密码";
  233. }
  234. if (string.IsNullOrEmpty(NewPassword2))
  235. {
  236. return "请确认密码";
  237. }
  238. if (NewPassword != NewPassword2)
  239. {
  240. return "两次密码输入不一致";
  241. }
  242. int SysId = int.Parse(function.CheckInt(function.GetCookie(_accessor.HttpContext, "SysId")));
  243. BsModels.SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.Id == SysId);
  244. if (sys != null)
  245. {
  246. if (function.MD5_32(OldPassword) != sys.Password)
  247. {
  248. return "旧密码不正确";
  249. }
  250. sys.Password = function.MD5_32(NewPassword);
  251. db.SaveChanges();
  252. return "success";
  253. }
  254. return "修改失败";
  255. }
  256. #endregion
  257. #region 个人资料
  258. /// <summary>
  259. /// 个人资料
  260. /// </summary>
  261. /// <returns></returns>
  262. public IActionResult AdminInfo()
  263. {
  264. if (function.GetCookie(_accessor.HttpContext, "SysRealRole") == "3")
  265. {
  266. return Redirect("/Admin/Merchants/AdminInfo");
  267. }
  268. int SysId = int.Parse(function.CheckInt(function.GetCookie(_accessor.HttpContext, "SysId")));
  269. BsModels.SysAdmin data = db.SysAdmin.FirstOrDefault(m => m.Id == SysId) ?? new BsModels.SysAdmin();
  270. ViewBag.data = data;
  271. return View();
  272. }
  273. public string AdminInfoPost(SysAdmin data)
  274. {
  275. int SysId = int.Parse(function.CheckInt(function.GetCookie(_accessor.HttpContext, "SysId")));
  276. BsModels.SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.Id == SysId);
  277. if (sys != null)
  278. {
  279. sys.RealName = data.RealName;
  280. db.SaveChanges();
  281. return "success";
  282. }
  283. return "修改失败";
  284. }
  285. #endregion
  286. public string MakeData()
  287. {
  288. OtherMySqlConn.connstr = ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  289. Dictionary<string, Dictionary<string, string>> tables = PublicFunction.MainTables;
  290. foreach (string table in tables.Keys)
  291. {
  292. int num = function.get_Random(50, 100);
  293. for (int i = 0; i < num; i++)
  294. {
  295. string fields = "";
  296. string values = "";
  297. Dictionary<string, string> columns = tables[table];
  298. foreach (string column in columns.Keys)
  299. {
  300. string columnType = columns[column];
  301. fields += column + ",";
  302. if (columnType == "numeric" || columnType == "int")
  303. {
  304. values += function.get_Random(1) + ",";
  305. }
  306. else if (columnType == "datetime")
  307. {
  308. values += "'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',";
  309. }
  310. else if (columnType == "bit")
  311. {
  312. values += "1,";
  313. }
  314. else
  315. {
  316. values += "'" + function.get_Random(20) + "',";
  317. }
  318. }
  319. string sql = "insert into " + table + " (" + fields.TrimEnd(',') + ") values (" + values.TrimEnd(',') + ")";
  320. OtherMySqlConn.op(sql);
  321. }
  322. }
  323. OtherMySqlConn.connstr = "";
  324. return "ok";
  325. }
  326. #region 通过用户Id修改登录密码
  327. /// <summary>
  328. /// 通过用户Id修改登录密码
  329. /// </summary>
  330. /// <returns></returns>
  331. public AppResultJson ChangeLoginPassworByIdDo(string value)
  332. {
  333. JsonData data = JsonMapper.ToObject(value);
  334. string SysId = data["SysId"].ToString();
  335. string NewPassword = data["NewPassword"].ToString();
  336. string Operator = data["Operator"].ToString();
  337. if (string.IsNullOrEmpty(SysId))
  338. {
  339. return new AppResultJson() { Status = "-1", Info = "请输入旧密码" };
  340. }
  341. if (string.IsNullOrEmpty(NewPassword))
  342. {
  343. return new AppResultJson() { Status = "-1", Info = "请输入新密码" };
  344. }
  345. if (string.IsNullOrEmpty(Operator))
  346. {
  347. return new AppResultJson() { Status = "-1", Info = "请输入操作人信息" };
  348. }
  349. var Id = int.Parse(SysId);
  350. BsModels.SysAdmin sys = db.SysAdmin.FirstOrDefault(m => m.Id == Id);
  351. if (sys != null)
  352. {
  353. sys.Password = function.MD5_32(NewPassword);
  354. sys.UpdateMan = Operator;
  355. db.SaveChanges();
  356. return new AppResultJson() { Status = "1", Info = "成功,新密码为:" + NewPassword };
  357. }
  358. return new AppResultJson() { Status = "-1", Info = "修改失败,未找到相关账号信息" };
  359. }
  360. #endregion
  361. }
  362. }