using Face.Domain.Application; using Face.Domain.Entities; using Face.Domain.ViewModels; using Face.Services.Cache; using Face.Services.Manager; using Face.Web.Areas.App.Models; using Newtonsoft.Json; using SqlSugar; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using System.Web; using System.Web.Mvc; using System.Web.Security; using static Face.Web.Areas.App.Models.Roominfo; namespace Face.Web.Controllers { public class HomeController : Controller { Areas.App.Models.Root judgedate = new Areas.App.Models.Root(); List authItems = new List(); ReturnResult result = new ReturnResult(); DateTime lastUpdated = DateTime.Now; public ActionResult Index(string Token = null) { string username = ""; if (Token == null) { return Redirect("/App/Login/Index"); } try { int sum = 0; var HotelList = SqlSugarBase.authoriydb.Queryable().ToList(); //var roomlist = horomm.Database.SqlQuery(@"select Id ,RoomStatusID,HotelID,[RoomNumber],[Status] = convert(int,[Status]),[Desc] =[remark],[CreateTime]=[registerdate] from BLW.CRICS.[dbo].tb_Hosts ").ToList(); Session["HotelList"] = HotelList; //Session["roomlist"] = roomlist; //permissionStatic.lit.Clear(); if (Token != null && Token != "") { string ip = Services.Tool.IPHelper.GetIP(); var UserAgent = HttpContext.Request.UserAgent; judgedate = jumpDenglv(Token, ip, UserAgent); List listSession = new List(); List lit = new List(); List ZongRoominfo = new List(); if (judgedate.Status == 200) { Session["judeg"] = judgedate.Data.Userinfo.HeadImg; Session["username"] = judgedate.Data.Userinfo.Uid; username = judgedate.Data.Userinfo.Uid; Session["id"] = judgedate.Data.Userinfo.Uid; foreach (var item in judgedate.Data.HotelData) { foreach (var iten in item.Hotels) { int s = int.Parse(iten.HotelId.ToString()); lit.Add(s);//添加酒店权限id foreach (var ite in iten.Auth) { authItems.Add(ite);//添加操作权限 } } } Session["authItems"] = authItems; Task.Run(() => { List li = new List();//获取在店住客总数 List dm = new List();//获取人脸机总数 List lr = new List();//获取住客总数 List fb = new List();//获取绑定人脸机总数 List storage = new List(); List dp = new List();//获取住客总数 List pms = new List();//获取住客总数 List ul = new List();//获取总数 using (SqlSugarClient db = SqlSugarBase.GesmartDb()) { var dmlist = db.Queryable().ToList();//查询所有 var userList = db.Queryable().ToList();//查询所有 var Loderlist = db.Queryable().ToList();//查询所有 var facelog = db.Queryable().ToList();//查询所有 var pmslist = db.Queryable().ToList();//查询所有 var dplist = db.Queryable().ToList();//查询所有 var ullist = db.Queryable().ToList();//查询所有 var hotellist = lit; var checkInInfo = db.Queryable() .Where(it => hotellist.Contains(it.HotelCode.Value)).ToList() .GroupBy(x => x.IdNumber).ToList(); for (var item = 0; item < checkInInfo.Count; item++) { storage.Add(checkInInfo[item].ToList()[0]); } ViewData["storage"] = storage; for (int i = 0; i < storage.Count; i++) { var id = storage[i].IdNumber; var lodge = db.Queryable().Where(s => s.IDNumber == id).ToList(); lr.AddRange(lodge); } for (int i = 0; i < lit.Count; i++) { var id = Convert.ToInt32(lit[i]); dm.AddRange(dmlist.Where(x => x.HotelCode == id.ToString()).ToList()); li.AddRange(userList.Where(x => x.HotelCode == id).ToList()); fb.AddRange(facelog.Where(x => x.HotelCode == id).ToList()); dp.AddRange(dplist.Where(x => x.hotelCode == id).ToList()); ul.AddRange(ullist.Where(x => x.hotelcode == id).ToList()); pms.AddRange(pmslist.Where(x => x.hotelid == id).ToList()); } li = li.Where(x => x.checkOutTime.Value.ToString("yyyy-MM-dd") == "2000-01-01").ToList(); for (int i = 0; i < authItems.Count; i++) { if (authItems[i].AuthotypeId == 5) { CacheHelp.Geiface(username + "pmslist", pms.Count()); } if (authItems[i].AuthorityId == 3) { sum = 1; } } if (sum == 1) { dm.AddRange(dmlist.Where(x => x.HotelCode == null || x.HotelCode == "").ToList()); } } CacheHelp.Geiface(username + "ullist", ul.Count()); CacheHelp.Geiface(username + "dp", dp.Count()); CacheHelp.Geiface(username + "fbcount", fb.Count()); CacheHelp.Geiface(username + "lodgeinfo", lr.Count()); CacheHelp.Geiface(username + "face", dm.Count()); CacheHelp.Geiface(username + "li", li.Count()); CacheHelp.Geiface(username + "quantity", lit.Count()); }); Session["list"] = lit; Session["ZongRoominfo"] = ZongRoominfo;//总房间数 result.Message = "/APP/Home/Index"; result.Status = 200; return Redirect("/App/Home/Index"); } else { return Redirect("/App/Login/Index"); } } } catch (Exception ex) { LogHelp.WriteExceptionLog(ex); throw; } return Redirect("/App/Login/Index"); } /// /// API访问登录 /// /// /// /// public Areas.App.Models.Root jumpDenglv(string token,string ip,string requesthead=null, bool isdata=true) { string url = "http://auth.blv-oa.com/OTApi/MoreLogin"; string postData = string.Format("Token={0}&appid=2&Ip={1}&UserAgent={2}&IsData={3}", token, ip, requesthead, isdata); WebRequest request = WebRequest.Create(url); request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; StreamWriter sw = new StreamWriter(request.GetRequestStream()); sw.Write(postData); sw.Flush(); WebResponse response = request.GetResponse(); Stream s = response.GetResponseStream(); StreamReader sr = new StreamReader(s, Encoding.GetEncoding("UTF-8")); string Show = sr.ReadToEnd(); Areas.App.Models.Root info = JsonConvert.DeserializeObject(Show);//josn转换实体类 sw.Dispose(); sw.Close(); sr.Dispose(); sr.Close(); s.Dispose(); s.Close(); return info; } public ActionResult Error() { return View(); } } }