/// <summary> /// 获取当前用户用户名 /// </summary> /// <returns></returns> public static UserOnLine GetLoginUserName(ContextString dbContext, HttpContext context) { UserOnLine uol = new UserOnLine(); int? _ID = context.Session.GetInt32("AccountID"); if (_ID == null) { return(uol); } var _User = dbContext.Account.Where(i => i.ID == _ID).FirstOrDefault(); if (_User == null) { return(uol); } var mallcode = context.Session.GetString("MallCode"); uol.UserName = _User.AccountName; uol.UserCode = _User.Code; uol.MallCode = mallcode; uol.ID = _ID.Value; uol.SystemModule = _User.SystemModule; return(uol); }
public override Task OnConnected() { var conferenceid = Context.QueryString["conferenceid"]; var uid = Context.QueryString["uid"]; var onlineUsers = RedisHelper.Hash_Get <List <UserOnLine> >("A_IM_Conference_OnlineUser", conferenceid) ?? new List <UserOnLine>(); var model = onlineUsers.Find(p => p.uid == uid); if (model != null) { //更新时间 model.CreateDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"); } else { //新建一条数据 var item = new UserOnLine() { ConnectionId = Context.ConnectionId, CreateDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff"), deviceid = string.Empty, devicetype = "web", deviceToken = string.Empty, uid = uid, }; onlineUsers.Add(item); } RedisHelper.Hash_Remove("A_IM_Conference_OnlineUser", conferenceid); RedisHelper.Hash_Set("A_IM_Conference_OnlineUser", conferenceid, onlineUsers); foreach (var onlineUser in onlineUsers) { if (onlineUser.uid != uid) { Clients.Client(onlineUser.ConnectionId).notifyOtherUserOnline(uid); } //Clients.Group() } return(Clients.Caller.notifySelfUserOnline()); }
public async Task <IActionResult> GetUserList(Input_QueryUser model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine userOnLine = Method.GetLoginUserName(dbContext, this.HttpContext); if (userOnLine == null || string.IsNullOrEmpty(userOnLine.UserCode) || string.IsNullOrEmpty(userOnLine.MallCode)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_QueryUser)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); var userlist = await dbContext.Output_UserList.FromSql(@"select a.ID,a.AccountName,a.NickName,c.Name as RoleName, CONVERT(varchar(100), a.AddTime, 20) as AddTime, case ISNULL(d.Code, '') when '' then 0 else 1 end as [Status] from Account a left join UserRoles b on a.ID = b.UserID left join Roles c on b.RoleID = c.ID left join UserWarningEmail d on a.ID = d.UserID where a.MallCode=@mallcode and a.Activity = 1", new SqlParameter("@mallcode", userOnLine.MallCode)).ToListAsync(); if (model.Paging == 1) { userlist = userlist.Skip((model.PageIndex - 1) * model.PageSize).Take(model.PageSize).ToList(); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = userlist; return(Json(_Result)); }
public async Task <IActionResult> DelProgram(Input_ProgramDel model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_ProgramDel)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); //判断字符串是否合法 if (model.Codes.Count() <= 0) { _Result.Code = "510"; _Result.Msg = "未能检测到编码"; _Result.Data = ""; return(Json(_Result)); } var pnames = string.Empty; //删除节目及节目组关系 try { List <Programs> list = new List <Programs>(); List <ProgramToGroup> _pgList = new List <ProgramToGroup>(); foreach (var item in model.Codes) { string ProgSrc = await dbContext.Programs.Where(i => i.Code == item).Select(s => s.ProgSrc).FirstOrDefaultAsync(); if (ProgSrc == null) { ProgSrc = string.Empty; } var path = string.Empty; string[] pathArry = ProgSrc.Split('\\'); for (int i = 0; i < pathArry.Length - 1; i++) { path += @"\" + pathArry[i]; } if (!string.IsNullOrEmpty(path)) { path = Method._hostingEnvironment.WebRootPath + path; //删除文件夹及其中的文件 if (Directory.Exists(path)) { DirectoryInfo di = new DirectoryInfo(path); di.Delete(true); } } var pro = dbContext.Programs.Where(i => i.Code == item).FirstOrDefault(); pnames += pro.ProgramName + ","; list.Add(pro); _pgList.AddRange(dbContext.ProgramToGroup.Where(i => i.ProgramCode == item)); } dbContext.Programs.RemoveRange(list); dbContext.ProgramToGroup.RemoveRange(_pgList); await dbContext.SaveChangesAsync(); _Result.Code = "200"; _Result.Msg = "删除成功"; _Result.Data = ""; //var ip = Method.GetUserIp(this.HttpContext); //dbContext.SysLog.Add(new SysLog { AccountName = username, ModuleName = "节目模块", LogMsg = username + "删除名称为:" + pnames.TrimEnd(',') + "的节目", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "删除", IP = ip }); // dbContext.SaveChanges(); return(Json(_Result)); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro: " + e.ToString(); _Result.Data = ""; return(Json(_Result)); throw; } }
public async Task <IActionResult> GetList(Input_GetProgList model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_GetProgList)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } String MallCode = model.MallCode; if (string.IsNullOrEmpty(MallCode)) { MallCode = uol.MallCode; } try { ////检测用户登录情况 //string username = Method.GetLoginUserName(dbContext, this.HttpContext); //if (string.IsNullOrEmpty(username)) //{ // _Result.Code = "401"; // _Result.Msg = "请登陆后再进行操作"; // _Result.Data = ""; // return Json(_Result); //} var mall = await dbContext.Mall.Where(i => i.Code == MallCode).FirstOrDefaultAsync(); if (mall == null) { _Result.Code = "510"; _Result.Msg = "无效的商场编码"; _Result.Data = ""; return(Json(_Result)); } var list = await dbContext.Programs.Where(i => i.MallCode == MallCode && (string.IsNullOrEmpty(model.SearchKey) || i.ProgramName.Contains(model.SearchKey)) && (string.IsNullOrEmpty(model.ScreenCode) || i.ProgScreenInfo == model.ScreenCode) && (string.IsNullOrEmpty(model.ProgType) || i.ProgType == model.ProgType) && (string.IsNullOrEmpty(model.SwitchMode) || i.SwitchMode == model.SwitchMode) && (string.IsNullOrEmpty(model.ScreenMatch) || i.ScreenMatch == model.ScreenMatch) ).Join(dbContext.ScreenInfo, p => p.ProgScreenInfo, si => si.Code, (p, si) => new { p.Code, p.FileCode, p.PreviewFileGuid, PreviewSrc = p.PreviewSrc, ProgSrc = p.ProgSrc, p.ProgramName, p.ProgType, p.ProgScreenInfo, si.SName, LaunchTime = p.LaunchTime.ToString("yyyy-MM-dd"), ExpiryDate = p.ExpiryDate.ToString("yyyy-MM-dd"), p.SwitchMode, p.SwitchTime, p.ScreenMatch, p.AddTime }).Join(dbContext.AssetFiles, p => p.Code, af => af.Code, (p, af) => new { p.Code, p.FileCode, p.PreviewFileGuid, p.PreviewSrc, p.ProgSrc, p.ProgramName, p.ProgType, p.ProgScreenInfo, p.SName, p.LaunchTime, p.ExpiryDate, p.SwitchMode, p.SwitchTime, p.ScreenMatch, p.AddTime, af.FileSize, af.Height, af.Width, af.Duration }).OrderByDescending(i => i.AddTime).ToListAsync(); if (model.Paging == null) { model.Paging = 0; } if (model.PageIndex == null) { model.PageIndex = 1; } if (model.PageSize == null) { model.PageSize = 10; } if (model.Paging == 0) { ArrayList arrayList = new ArrayList(); foreach (var p in list) { var Status = string.Empty; var _LaunchTime = Convert.ToDateTime(p.LaunchTime); var _ExpiryDate = Convert.ToDateTime(p.ExpiryDate).AddDays(1); if (DateTime.Now < _LaunchTime) { Status = "未开始"; } if (_LaunchTime <= DateTime.Now && DateTime.Now < _ExpiryDate) { Status = "排期中"; } if (_ExpiryDate <= DateTime.Now) { Status = "已过期"; } arrayList.Add(new { p.Code, p.FileCode, p.PreviewFileGuid, PreviewSrc = Method.OSSServer + p.PreviewSrc, ProgSrc = Method.OSSServer + p.ProgSrc, p.ProgramName, p.ProgType, p.ProgScreenInfo, p.SName, p.LaunchTime, p.ExpiryDate, p.SwitchMode, p.SwitchTime, p.ScreenMatch, p.Duration, p.FileSize, p.Height, p.Width, Status }); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = arrayList; } else { int allPage = 1; int allCount = list.Count(); allPage = (int)(allCount / model.PageSize); if (allCount % model.PageSize > 0) { allPage = allPage + 1; } list = list.Skip(((int)model.PageIndex - 1) * (int)model.PageSize).Take((int)model.PageSize).ToList(); ArrayList arrayList = new ArrayList(); foreach (var p in list) { var Status = string.Empty; var _LaunchTime = Convert.ToDateTime(p.LaunchTime); var _ExpiryDate = Convert.ToDateTime(p.ExpiryDate).AddDays(1); if (DateTime.Now < _LaunchTime) { Status = "未开始"; } if (_LaunchTime <= DateTime.Now && DateTime.Now < _ExpiryDate) { Status = "排期中"; } if (_ExpiryDate <= DateTime.Now) { Status = "已过期"; } arrayList.Add(new { p.Code, p.FileCode, p.PreviewFileGuid, PreviewSrc = Method.OSSServer + p.PreviewSrc, ProgSrc = Method.OSSServer + p.ProgSrc, p.ProgramName, p.ProgType, p.ProgScreenInfo, p.SName, p.LaunchTime, p.ExpiryDate, p.SwitchMode, p.SwitchTime, p.ScreenMatch, p.Duration, p.FileSize, p.Height, p.Width, Status }); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = new { List = arrayList, AllPage = allPage, AllCount = allCount }; } } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro: " + e.ToString(); _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> Add(Input_Prog model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_Prog)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } String MallCode = model.MallCode; if (string.IsNullOrEmpty(MallCode)) { MallCode = uol.MallCode; } try { //检测用户登录情况 //string username = Method.GetLoginUserName(dbContext, this.HttpContext); //if (string.IsNullOrEmpty(username)) //{ // _Result.Code = "401"; // _Result.Msg = "请登陆后再进行操作"; // _Result.Data = ""; // return Json(_Result); //} var mall = await dbContext.Mall.Where(i => i.Code == MallCode).FirstOrDefaultAsync(); if (mall == null) { _Result.Code = "510"; _Result.Msg = "无效的商场编码"; _Result.Data = ""; return(Json(_Result)); } var LaunchTime = Convert.ToDateTime(model.LaunchTime); var ExpiryDate = Convert.ToDateTime(model.ExpiryDate); var scount = await dbContext.ScreenInfo.Where(i => i.Code == model.ScreenInfo).CountAsync(); if (scount <= 0) { _Result.Code = "510"; _Result.Msg = "无效的屏幕类型"; _Result.Data = ""; return(Json(_Result)); } if (model.ProgFiles.Count() <= 0) { _Result.Code = "510"; _Result.Msg = "素材数量不应为空"; _Result.Data = ""; return(Json(_Result)); } foreach (var pf in model.ProgFiles) { Programs p = new Programs(); if (string.IsNullOrEmpty(pf.ProgramName)) { _Result.Code = "510"; _Result.Msg = "节目名称不可为空"; _Result.Data = ""; return(Json(_Result)); } var file = await dbContext.AssetFiles.Where(i => i.Code == pf.Code).FirstOrDefaultAsync(); if (file == null) { _Result.Code = "510"; _Result.Msg = "无效的素材编码:" + pf.Code; _Result.Data = ""; return(Json(_Result)); } if (string.IsNullOrEmpty(pf.PreviewFileGUID)) { pf.PreviewFileGUID = pf.Code; p.PreviewSrc = file.FilePath; } else { var pfile = await dbContext.AssetFiles.Where(i => i.Code == pf.PreviewFileGUID).FirstOrDefaultAsync(); if (pfile == null) { _Result.Code = "510"; _Result.Msg = "无效的素材编码:" + pf.PreviewFileGUID; _Result.Data = ""; return(Json(_Result)); } p.PreviewSrc = pfile.FilePath; } p.MallCode = MallCode; p.ExpiryDate = ExpiryDate; p.LaunchTime = LaunchTime; p.ProgScreenInfo = model.ScreenInfo; p.ScreenMatch = model.ScreenMatch; p.SwitchMode = model.SwitchMode; p.SwitchTime = model.SwitchTime; p.ProgramName = pf.ProgramName; p.AddTime = DateTime.Now; p.ProgSrc = file.FilePath; p.ProgType = file.FileType; p.Code = Guid.NewGuid().ToString(); p.UpdateTime = DateTime.Now; p.Code = pf.Code; p.PreviewFileGuid = pf.PreviewFileGUID; dbContext.Programs.Add(p); } if (await dbContext.SaveChangesAsync() >= 0) { _Result.Code = "200"; _Result.Msg = "添加成功"; _Result.Data = ""; } } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro: " + e.ToString(); _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> Edit(Input_EditRole model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_EditRole)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); //检测用户登录情况 UserOnLine userOnLine = Method.GetLoginUserName(dbContext, this.HttpContext); if (userOnLine == null || string.IsNullOrEmpty(userOnLine.UserCode)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } if (string.IsNullOrEmpty(model.Name)) { _Result.Code = "510"; _Result.Msg = "角色名称不可为空"; _Result.Data = ""; return(Json(_Result)); } Regex regExp = new Regex("[ \\[ \\] \\^ \\-_*×――(^)$%~!@#$…&%¥—+=<>《》!!???::•`·、。,;,.;\"‘’“”-]"); if (regExp.IsMatch(model.Name)) { _Result.Code = "510"; _Result.Msg = "角色名称不能有特殊字符"; _Result.Data = ""; return(Json(_Result)); } var count = await dbContext.Roles.Where(i => i.Code == model.Code).AsNoTracking().CountAsync(); if (count <= 0) { _Result.Code = "510"; _Result.Msg = "角色不存在"; _Result.Data = ""; return(Json(_Result)); } //更新角色 if (regExp.IsMatch(model.Intro)) { _Result.Code = "510"; _Result.Msg = "角色描述不能有特殊字符"; _Result.Data = ""; return(Json(_Result)); } var role = await dbContext.Roles.Where(i => i.Code == model.Code).FirstOrDefaultAsync(); if (role.Name == "超级管理员") { _Result.Code = "510"; _Result.Msg = "超级管理员不可修改"; _Result.Data = ""; return(Json(_Result)); } role.Description = model.Name; role.Name = model.Name; role.Intro = model.Intro; dbContext.Roles.UpdateRange(role); dbContext.RolePermissions.RemoveRange(dbContext.RolePermissions.Where(i => i.RoleCode == model.Code)); //如果有设备控制权限 则加上设备查看权限 var _DeviceControl = await dbContext.Permission.Where(i => i.Description == "DeviceControl").FirstOrDefaultAsync(); var _DevListMgr = await dbContext.Permission.Where(i => i.Description == "DevListMgr").FirstOrDefaultAsync(); if (model.PermissionCode.Contains(_DeviceControl.Code)) { if (!model.PermissionCode.Contains(_DevListMgr.Code)) { model.PermissionCode.Add(_DevListMgr.Code); } } List <RolePermissions> list = new List <RolePermissions>(); foreach (var p in model.PermissionCode) { var percount = await dbContext.Permission.Where(i => i.Code == p).CountAsync(); if (percount <= 0) { _Result.Code = "510"; _Result.Msg = "无效的权限编码:" + p; _Result.Data = ""; return(Json(_Result)); } var per = await dbContext.Permission.Where(i => i.Code == p).FirstOrDefaultAsync(); var parents = await dbContext.Permission.Where(i => i.Code == per.ParentCode).FirstOrDefaultAsync(); list.Add(new RolePermissions { AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), PermissionCode = p, RoleCode = role.Code }); if (list.Where(i => i.PermissionCode == parents.Code).Count() <= 0) { list.Add(new RolePermissions { AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), PermissionCode = parents.Code, RoleCode = role.Code }); } // dbContext.RolePermissions.Add(new RolePermissions { AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), PermissionCode = p, RoleCode = role.Code }); } list = list.Distinct().ToList(); dbContext.RolePermissions.AddRange(list); if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "修改成功"; _Result.Data = ""; var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = userOnLine.UserName, ModuleName = "用户模块", LogMsg = userOnLine.UserName + "修改角色:" + model.Name, AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "修改", IP = ip, MallCode = userOnLine.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); } else { _Result.Code = "1"; _Result.Msg = "修改失败"; _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> Del(Input_DelRole model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_DelRole)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); //检测用户登录情况 UserOnLine userOnLine = Method.GetLoginUserName(dbContext, this.HttpContext); if (userOnLine == null || string.IsNullOrEmpty(userOnLine.UserCode)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } var _names = String.Empty; foreach (var c in model.Code) { var rcount = await dbContext.Roles.Where(i => i.Code == c).CountAsync(); if (rcount <= 0) { _Result.Code = "510"; _Result.Msg = "无效的角色编码:" + c; _Result.Data = ""; return(Json(_Result)); } var role = await dbContext.Roles.Where(i => i.Code == c).FirstOrDefaultAsync(); var urcount = await dbContext.UserRoles.Where(i => i.RoleCode == role.Code).CountAsync(); if (urcount > 0) { _Result.Code = "510"; _Result.Msg = "角色:" + role.Name + "正在被使用不可删除"; _Result.Data = ""; return(Json(_Result)); } if (role.Name == "超级管理员") { _Result.Code = "510"; _Result.Msg = "超级管理员不可删除"; _Result.Data = ""; return(Json(_Result)); } dbContext.Roles.Remove(role); dbContext.RolePermissions.RemoveRange(dbContext.RolePermissions.Where(i => i.RoleCode == role.Code)); _names += role.Name + ","; } if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "删除成功"; _Result.Data = ""; var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = userOnLine.UserName, ModuleName = "用户模块", LogMsg = userOnLine.UserName + "删除角色:" + _names.TrimEnd(','), AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "删除", IP = ip, MallCode = userOnLine.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); } else { _Result.Code = "1"; _Result.Msg = "删除失败"; _Result.Data = ""; } return(Json(_Result)); }
/// <summary> /// 查询日志信息 /// </summary> /// <param name="model">查询条件</param> /// <param name="dbContext"></param> /// <returns></returns> //[HttpPost] public async Task <IActionResult> QueryLogPageList(Input_LogPageQuery model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine user = Method.GetLoginUserName(dbContext, this.HttpContext); if (user == null || string.IsNullOrEmpty(user.UserCode) || (model.Type.HasValue && string.IsNullOrEmpty(user.MallCode))) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } DateTime _BeginTime = new DateTime(); DateTime _EndTime = new DateTime(); //检测用户输入格式 if (string.IsNullOrEmpty(model.BeginTime)) { _BeginTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd ") + " 00:00:00"); } else { try { _BeginTime = Convert.ToDateTime(Convert.ToDateTime(model.BeginTime).ToString("yyyy-MM-dd ") + " 00:00:00"); } catch (Exception) { var _BT = Method.GMT2Local(model.BeginTime); _BeginTime = Convert.ToDateTime(Convert.ToDateTime(_BT).ToString("yyyy-MM-dd ") + " 00:00:00"); } } if (string.IsNullOrEmpty(model.EndTime)) { _EndTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd ") + " 00:00:00").AddDays(1).AddMilliseconds(-1); } else { try { _EndTime = Convert.ToDateTime(Convert.ToDateTime(model.EndTime).ToString("yyyy-MM-dd ") + " 00:00:00").AddDays(1).AddMilliseconds(-1); } catch (Exception) { var _ED = Method.GMT2Local(model.EndTime); _EndTime = Convert.ToDateTime(Convert.ToDateTime(_ED).ToString("yyyy-MM-dd ") + " 00:00:00").AddDays(1).AddMilliseconds(-1); } } if (_BeginTime > _EndTime) { _Result.Code = "510"; _Result.Msg = "开始时间不可大于结束时间"; _Result.Data = ""; return(Json(_Result)); } var loglist = await dbContext.SysLog.Where(i => ((i.MallCode == "" && i.SystemModule == "Manage" && !model.Type.HasValue) || (i.MallCode == user.MallCode && i.SystemModule == "Mall" && model.Type.HasValue)) && i.AddTime >= _BeginTime && i.AddTime <= _EndTime).Select(s => new { s.AccountName, AddTime = s.AddTime.ToString("yyyy-MM-dd HH:mm:ss"), s.Code, s.ID, IP = s.IP == "::1" ? "127.0.0.1" : s.IP, s.LogMsg, s.ModuleName, s.Type }).ToListAsync(); //模块名称过滤 if (!string.IsNullOrEmpty(model.Keywords)) { loglist = loglist.Where(i => i.ModuleName.Contains(model.Keywords) || i.AccountName.Contains(model.Keywords) || i.LogMsg.Contains(model.Keywords)).ToList(); } loglist = loglist.OrderByDescending(O => O.AddTime).ToList(); int allPage = 1; var allCount = loglist.Count(); if (model.Paging == 1) { if (model.PageIndex == null) { model.PageIndex = 1; } if (model.PageSize == null) { model.PageSize = 10; } allPage = (int)(allCount / model.PageSize); if (allCount % model.PageSize > 0) { allPage = allPage + 1; } loglist = loglist.Skip(((int)model.PageIndex - 1) * (int)model.PageSize).Take((int)model.PageSize).ToList(); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = new { List = loglist, AllPage = allPage, AllCount = allCount }; return(Json(_Result)); }
public async Task <IActionResult> GetList(Input_GetDevGroupList model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_GetDevGroupList)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); try { var list = await dbContext.DeviceGroup.Where(i => i.MallCode == uol.MallCode && i.GName.Contains(model.SearchKey)).Join(dbContext.ScreenInfo.Where(i => i.MallCode == uol.MallCode), dg => dg.ScreenInfoCode, si => si.Code, (dg, si) => new { dg.Code, dg.GName, dg.ScreenInfoCode, dg.Type, si.SName, dg.AddTime, TypeStr = dg.Type == 1 ? "正常" : "同步" }).OrderByDescending(i => i.AddTime).ToListAsync(); ArrayList arrayList = new ArrayList(); if (model.Paging == null) { model.Paging = 0; } if (model.PageIndex == null) { model.PageIndex = 1; } if (model.PageSize == null) { model.PageSize = 10; } if (model.Paging == 0) { foreach (var dg in list) { var DevCount = await dbContext.DeviceToGroup.Where(i => i.GroupCode == dg.Code).AsNoTracking().CountAsync(); //var DevCount = await dbContext.DeviceToGroup.Where(i => i.MallCode == uol.MallCode && i.GroupCode == dg.Code).AsNoTracking().CountAsync(); var PGCount = await dbContext.ProgramDevice.Where(i => i.DeviceGrounpCode == dg.Code).AsNoTracking().CountAsync(); var SubtitleCount = await dbContext.SubtitleToDeviceGroup.Where(i => i.GroupCode == dg.Code).AsNoTracking().CountAsync(); arrayList.Add(new { dg.Code, dg.GName, dg.ScreenInfoCode, dg.Type, dg.SName, dg.TypeStr, DevCount, PGCount, SubtitleCount }); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = arrayList; } else { int allPage = 1; int allCount = list.Count(); allPage = (int)(allCount / model.PageSize); if (allCount % model.PageSize > 0) { allPage = allPage + 1; } list = list.Skip(((int)model.PageIndex - 1) * (int)model.PageSize).Take((int)model.PageSize).ToList(); foreach (var dg in list) { var DevCount = await dbContext.DeviceToGroup.Where(i => i.GroupCode == dg.Code).AsNoTracking().CountAsync(); // var DevCount = await dbContext.DeviceToGroup.Where(i => i.MallCode == uol.MallCode && i.GroupCode == dg.Code).AsNoTracking().CountAsync(); var PGCount = await dbContext.ProgramDevice.Where(i => i.DeviceGrounpCode == dg.Code).AsNoTracking().CountAsync(); var SubtitleCount = await dbContext.SubtitleToDeviceGroup.Where(i => !i.IsDel && i.GroupCode == dg.Code).AsNoTracking().CountAsync(); arrayList.Add(new { dg.Code, dg.GName, dg.ScreenInfoCode, dg.Type, dg.SName, dg.TypeStr, DevCount, PGCount, SubtitleCount }); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = new { List = arrayList, AllPage = allPage, AllCount = allCount }; } return(Json(_Result)); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "" + e.ToString(); _Result.Data = ""; return(Json(_Result)); } }
public async Task <IActionResult> SetWarningUser(Input_SetWE model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine userOnLine = Method.GetLoginUserName(dbContext, this.HttpContext); if (userOnLine == null || string.IsNullOrEmpty(userOnLine.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_SetWE)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); if (model.ID == null) { _Result.Code = "510"; _Result.Msg = "请输入一个ID"; _Result.Data = ""; return(Json(_Result)); } var count = await dbContext.Account.Where(i => i.Activity == true && i.ID == model.ID).CountAsync(); if (count <= 0) { _Result.Code = "510"; _Result.Msg = "无效的用户ID"; _Result.Data = ""; return(Json(_Result)); } var user = await dbContext.Account.Where(i => i.Activity == true && i.ID == model.ID).FirstOrDefaultAsync(); if (model.Status != 0) { dbContext.UserWarningEmail.RemoveRange(dbContext.UserWarningEmail.Where(i => i.UserCode == user.Code)); dbContext.UserWarningEmail.Add(new UserWarningEmail { AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), UserCode = user.Code, UpdateTime = DateTime.Now }); } else { dbContext.UserWarningEmail.RemoveRange(dbContext.UserWarningEmail.Where(i => i.UserCode == user.Code)); } if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "设置成功"; _Result.Data = ""; var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = userOnLine.UserName, ModuleName = "用户模块", LogMsg = userOnLine.UserName + "设置用户:" + user.AccountName + "为报警用户", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "修改", IP = ip, MallCode = userOnLine.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); } else { _Result.Code = "2"; _Result.Msg = "设置失败"; _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> ChangePassWord(Input_ChangePassWord model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine userOnLine = Method.GetLoginUserName(dbContext, this.HttpContext); if (userOnLine == null || string.IsNullOrEmpty(userOnLine.UserCode)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_ChangePassWord)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); //判断输入条件 if (string.IsNullOrEmpty(model.AccountName)) { _Result.Code = "510"; _Result.Msg = "请输入一个用户名"; _Result.Data = ""; return(Json(_Result)); } if (model.Password.Length < 6) { _Result.Code = "510"; _Result.Msg = "用户密码应为6-20位字符"; _Result.Data = ""; return(Json(_Result)); } if (model.Password != model.ConfirmPassword) { _Result.Code = "510"; _Result.Msg = "二次输入新密码不一致"; _Result.Data = ""; return(Json(_Result)); } var user = await dbContext.Account.Where(i => i.Activity && i.AccountName == model.AccountName).FirstOrDefaultAsync(); if (user != null) { user.PassWord = Method.StringToPBKDF2Hash(model.Password); dbContext.Account.Update(user); if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "修改密码成功"; _Result.Data = ""; var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = userOnLine.UserName, ModuleName = "用户模块", LogMsg = userOnLine.UserName + "修改了用户:" + model.AccountName + "的登录密码", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "修改", IP = ip, MallCode = userOnLine.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); } else { _Result.Code = "2"; _Result.Msg = "修改密码失败"; _Result.Data = ""; } } else { _Result.Code = "510"; _Result.Msg = "无效的用户名"; _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> EditInfo(Input_UserEditInfo model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine user = Method.GetLoginUserName(dbContext, this.HttpContext); if (user == null || string.IsNullOrEmpty(user.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_UserEditInfo)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); if (string.IsNullOrEmpty(model.Phone) || string.IsNullOrEmpty(model.Email) || string.IsNullOrEmpty(model.NickName) ) { _Result.Code = "510"; _Result.Msg = "输入信息不正确"; _Result.Data = ""; return(Json(_Result)); } var _user = await dbContext.Account.Where(i => i.Code == user.UserCode).FirstOrDefaultAsync(); if (_user == null) { _Result.Code = "510"; _Result.Msg = "无效的用户"; _Result.Data = ""; return(Json(_Result)); } var phonenum = await dbContext.Account.Where(i => i.Code != user.UserCode && i.Phone == model.Phone && i.Activity).CountAsync(); if (phonenum > 0) { _Result.Code = "510"; _Result.Msg = "手机号已被使用"; _Result.Data = ""; return(Json(_Result)); } var emailnum = await dbContext.Account.Where(i => i.Code != user.UserCode && i.Email == model.Email && i.Activity).CountAsync(); if (emailnum > 0) { _Result.Code = "510"; _Result.Msg = "邮箱已被使用"; _Result.Data = ""; return(Json(_Result)); } _user.NickName = model.NickName; _user.Phone = model.Phone; _user.Email = model.Email; dbContext.Account.Update(_user); if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "修改成功"; _Result.Data = ""; var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = user.UserName, ModuleName = "用户模块", LogMsg = user.UserName + "修改了账户为:" + _user.AccountName + "的用户信息", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "修改", IP = ip, MallCode = user.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); } else { _Result.Code = "2"; _Result.Msg = "修改失败"; _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> Del(Input_Del model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine user = Method.GetLoginUserName(dbContext, this.HttpContext); if (user == null || string.IsNullOrEmpty(user.UserCode)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_Del)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); //if (string.IsNullOrEmpty(inputStr)) //{ // _Result.Code = "510"; // _Result.Msg = "请输入一个用户ID"; // _Result.Data = ""; // return Json(_Result); //} //JsonModel model = new JsonModel(); //model = (JsonModel)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); //ID = model.ID; if (model.IDS == null || model.IDS.Count() <= 0) { _Result.Code = "510"; _Result.Msg = "请输入一个用户ID"; _Result.Data = ""; return(Json(_Result)); } var _username = string.Empty; foreach (var ID in model.IDS) { Account _User = Method.GetUserByID(dbContext, (int)ID).Result; if (_User == null) { _Result.Code = "1"; _Result.Msg = "系统中无此用户"; _Result.Data = ""; return(Json(_Result)); } if (!_User.Activity) { _Result.Code = "2"; _Result.Msg = "此用户已废弃"; _Result.Data = ""; return(Json(_Result)); } if (_User.ID == 1) { _Result.Code = "510"; _Result.Msg = "超管不可删除"; _Result.Data = ""; return(Json(_Result)); } //删除用户 _User.Activity = false; _username += _User.AccountName + ","; dbContext.Account.Update(_User); dbContext.UserRoles.RemoveRange(dbContext.UserRoles.Where(i => i.UserCode == _User.Code)); } if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "删除用户成功"; _Result.Data = ""; } else { _Result.Code = "200"; _Result.Msg = "删除用户成功"; _Result.Data = ""; } var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = user.UserName, ModuleName = "用户模块", LogMsg = user.UserName + "删除了账户为:" + _username.TrimEnd(',') + "的用户", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "删除", IP = ip, MallCode = user.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); return(Json(_Result)); }
public async Task <IActionResult> Register(RegisterUser model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 UserOnLine user = Method.GetLoginUserName(dbContext, this.HttpContext); if (user == null || string.IsNullOrEmpty(user.UserCode)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (RegisterUser)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); if (string.IsNullOrEmpty(model.RoleID)) { _Result.Code = "510"; _Result.Msg = "Erro:角色ID不可为空"; _Result.Data = ""; return(Json(_Result)); } if (!Method.IsNumeric(model.RoleID)) { _Result.Code = "510"; _Result.Msg = "Erro:包含非法的角色ID" + model.RoleID; _Result.Data = ""; return(Json(_Result)); } var _RoleID = Convert.ToInt32(model.RoleID); //判断ID是否都为有效角色 var q = await dbContext.Roles.Where(i => i.ID == _RoleID).AsNoTracking().CountAsync(); if (q <= 0) { _Result.Code = "510"; _Result.Msg = "Erro:没有ID为:" + _RoleID + "的角色"; _Result.Data = ""; return(Json(_Result)); } var _AvatarSrc = @"\images\DefaultAvatar.png"; if (string.IsNullOrEmpty(model.AccountName) || string.IsNullOrEmpty(model.Password) || string.IsNullOrEmpty(model.Phone) || string.IsNullOrEmpty(model.Email) || model.Password != model.ConfirmPassword) { _Result.Code = "510"; _Result.Msg = "输入信息不正确"; _Result.Data = ""; return(Json(_Result)); } if (model.Password.Length < 6) { _Result.Code = "510"; _Result.Msg = "密码长度不因少于6位"; _Result.Data = ""; return(Json(_Result)); } //判断系统中是否存在用户 if (Method.FindAllByName(dbContext, model.AccountName)) { _Result.Code = "1"; _Result.Msg = "用户已存在"; _Result.Data = ""; return(Json(_Result)); } var phonenum = await dbContext.Account.Where(i => i.Phone == model.Phone && i.Activity).CountAsync(); if (phonenum > 0) { _Result.Code = "1"; _Result.Msg = "手机号码已被使用"; _Result.Data = ""; return(Json(_Result)); } var emailnum = await dbContext.Account.Where(i => i.Email == model.Email && i.Activity).CountAsync(); if (emailnum > 0) { _Result.Code = "1"; _Result.Msg = "邮箱已被使用"; _Result.Data = ""; return(Json(_Result)); } //创建用户 var _User = new Account() { AccountName = model.AccountName, PassWord = Method.StringToPBKDF2Hash(model.Password), NickName = model.NickName, Phone = model.Phone, Email = model.Email, AvatarSrc = _AvatarSrc, Activity = true, AddTime = DateTime.Now, UpdateTime = DateTime.Now, Code = Guid.NewGuid().ToString(), MallCode = user.MallCode, SystemModule = "Mall" }; int _AccountID = Method.CreateAccount(dbContext, _User).Result; var role = await dbContext.Roles.Where(i => i.ID == _RoleID).FirstOrDefaultAsync(); //添加账户 角色关系 if (_AccountID > 0) { try { dbContext.UserRoles.Add(new UserRoles { UserCode = _User.Code, RoleCode = role.Code }); await dbContext.SaveChangesAsync(); _Result.Code = "200"; _Result.Msg = "创建用户成功"; _Result.Data = ""; var ip = Method.GetUserIp(this.HttpContext); dbContext.SysLog.Add(new SysLog { AccountName = user.UserName, ModuleName = "用户模块", LogMsg = user.UserName + "创建了用户名为:" + model.AccountName + "的用户,访问信息:" + inputStr, AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "创建", IP = ip, MallCode = user.MallCode, SystemModule = "Mall" }); dbContext.SaveChanges(); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro:关联用户-角色关系失败 " + e.ToString(); _Result.Data = ""; } } else { _Result.Code = "2"; _Result.Msg = "创建用户失败"; _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> GetProgramListByCode(Input_GetProgramListByCode model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_GetProgramListByCode)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); ////检测用户登录情况 UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } //判断输入条件 if (string.IsNullOrEmpty(model.Code)) { _Result.Code = "510"; _Result.Msg = "未能检测到编码"; _Result.Data = ""; return(Json(_Result)); } try { DateTime dtime = DateTime.Now.AddDays(-5).Date; //var list = await (from pg in dbContext.ProgramToGroup // join pr in dbContext.Programs on pg.ProgramCode equals pr.Code // join sc in dbContext.ScreenInfo on pr.ProgScreenInfo equals sc.Code into ProS // from ps in ProS.DefaultIfEmpty() // where pg.GroupCode == model.Code // select new // { // ID = pr.ID, // pr.Code, // PreviewSrc = Method.OSSServer + pr.PreviewSrc, // ProgramName = pr.ProgramName, // ProgType = pr.ProgType, // ProgScreenInfo = ps.SName, // ScreenCode = ps.Code, // LaunchTime = pr.LaunchTime.ToString("yyyy-MM-dd HH:mm:mm"), // ExpiryDate = pr.ExpiryDate.ToString("yyyy-MM-dd HH:mm:mm"), // SwitchMode = pr.SwitchMode, // SwitchTime = pr.SwitchTime, // ScreenMatch = pr.ScreenMatch, // Order = pg.Order // }).OrderBy(i => i.Order).ToListAsync(); var list = await(from pg in dbContext.ProgramToGroup join pr in dbContext.Programs on pg.ProgramCode equals pr.Code join sc in dbContext.ScreenInfo on pr.ProgScreenInfo equals sc.Code into ProS from ps in ProS.DefaultIfEmpty() where pg.GroupCode == model.Code && pr.LaunchTime <= DateTime.Now && pr.ExpiryDate >= DateTime.Now select new { ID = pr.ID, pr.Code, PreviewSrc = Method.ServerAddr + pr.PreviewSrc, ProgramName = pr.ProgramName, ProgType = pr.ProgType, ProgScreenInfo = ps.SName, ScreenCode = ps.Code, LaunchTime = pr.LaunchTime.ToString("yyyy-MM-dd HH:mm:mm"), ExpiryDate = pr.ExpiryDate.ToString("yyyy-MM-dd HH:mm:mm"), SwitchMode = pr.SwitchMode, SwitchTime = pr.SwitchTime, ScreenMatch = pr.ScreenMatch, Order = pg.Order }).OrderBy(i => i.Order).ToListAsync(); _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = list; //var ip = Method.GetUserIp(this.HttpContext); //dbContext.SysLog.Add(new SysLog { AccountName = username, ModuleName = "节目模块", LogMsg = username + "获取节目组:"+ id+"中的节目", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "查询", IP = ip }); //dbContext.SaveChanges(); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro:" + e.ToString(); _Result.Data = ""; } return(Json(_Result)); }
/// <summary> /// 返回节目组列表 /// </summary> /// <param name="dbContext"></param> /// <returns></returns> public async Task <IActionResult> GetProgramGroupList(string ScreenCode, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); try { // var list = await dbContext.ProgramGroup.Select(s => new { s.ID, s.GroupName }).ToListAsync(); //var list = await dbContext.ProgramGroupList.FromSql(@"select a.ID,a.GroupName,b.SName as ScreenInfo,COUNT(c.ID) as ProgramCount from ProgramGroup a left join ScreenInfo b on a.ScreenInfoID = b.ID left join ProgramToGroup c on a.ID = c.GroupID //group by a.ID,a.GroupName,b.SName").ToListAsync(); ////检测用户登录情况 UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } //查询数据 var list = await dbContext.ProgramGroup.Join(dbContext.ScreenInfo, pg => pg.ScreenInfoCode, si => si.Code, (pg, si) => new { pg.ID, pg.Code, pg.GroupName, ScreenInfo = si.SName, pg.ScreenInfoCode, pg.AddTime }).OrderByDescending(o => o.AddTime).ToListAsync(); //过滤数据 if (!string.IsNullOrEmpty(ScreenCode)) { list = list.Where(i => i.ScreenInfoCode == ScreenCode).ToList(); } //获取行数 ArrayList array = new ArrayList(); foreach (var item in list) { var ProgramCount = dbContext.ProgramToGroup.Where(i => i.GroupCode == item.Code).Count(); array.Add(new { item.ID, item.Code, item.GroupName, item.ScreenInfo, item.ScreenInfoCode, ProgramCount }); //item.DeviceCount = dbContext.DeviceToGroups.Where(i => i.GroupID == item.ID).Count(); } _Result.Code = "200"; _Result.Msg = "获取成功"; // _Result.Data = list; _Result.Data = array; //var ip = Method.GetUserIp(this.HttpContext); //dbContext.SysLog.Add(new SysLog { AccountName = username, ModuleName = "节目模块", LogMsg = username + "查询节目组列表", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "查询", IP = ip }); //dbContext.SaveChanges(); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro:" + e.ToString(); _Result.Data = ""; } return(Json(_Result)); }
public async Task <IActionResult> GetDevGroupList(Input_GetDevGroupListNew model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_GetDevGroupListNew)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } String MallCode = model.MallCode; if (string.IsNullOrEmpty(MallCode)) { MallCode = uol.MallCode; } try { var list = await dbContext.Output_GetDevGroupList.FromSql(@"select a.Code ,a.GName ,a.ScreenInfoCode ,a.[Type] ,b.SName ,case a.[Type] when 1 then '正常' else '同步' end as TypeStr ,count(distinct(c.Code)) as DevCount ,count(distinct(d.Code)) as PGCount from DeviceGroup a left join ScreenInfo b on a.ScreenInfoCode = b.Code left join DeviceToGroup c on a.Code = c.GroupCode left join ProgramDevice d on d.DeviceGrounpCode = a.Code where a.MallCode = @MallCode group by a.Code ,a.GName ,a.ScreenInfoCode ,a.[Type] ,b.SName order by DevCount desc ,PGCount desc ", new SqlParameter("@MallCode", MallCode)).AsNoTracking().ToListAsync(); list = list.Where(i => (string.IsNullOrEmpty(model.SearchKey) || i.GName.Contains(model.SearchKey))).ToList(); if (model.Order.ToUpper() == "DESC") { list = list.OrderByDescending(o => o.DevCount).ToList(); } if (model.Order.ToUpper() == "ASC") { list = list.OrderBy(o => o.DevCount).ToList(); } //var list = await dbContext.DeviceGroup.Where(i=>i.GName.Contains(model.SearchKey)).Join(dbContext.ScreenInfo,dg=>dg.ScreenInfoCode,si=>si.Code,(dg,si)=>new { // dg.Code, // dg.GName, // dg.ScreenInfoCode, // dg.Type, // si.SName, // dg.AddTime, // TypeStr = dg.Type == 1?"正常":"同步" //}).OrderByDescending(i=>i.AddTime).ToListAsync(); // ArrayList arrayList = new ArrayList(); if (model.Paging == null) { model.Paging = 0; } if (model.PageIndex == null) { model.PageIndex = 1; } if (model.PageSize == null) { model.PageSize = 10; } if (model.Paging == 0) { //foreach (var dg in list) //{ // var DevCount = await dbContext.DeviceToGroup.Where(i => i.GroupCode == dg.Code).CountAsync(); // var PGCount = await dbContext.ProgramDevice.Where(i => i.DeviceGrounpCode == dg.Code).CountAsync(); // arrayList.Add(new // { // dg.Code, // dg.GName, // dg.ScreenInfoCode, // dg.Type, // dg.SName, // dg.TypeStr, // DevCount, // PGCount // }); //} //_Result.Code = "200"; //_Result.Msg = "获取成功"; //_Result.Data = arrayList; _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = list; } else { int allPage = 1; int allCount = list.Count(); allPage = (int)(allCount / model.PageSize); if (allCount % model.PageSize > 0) { allPage = allPage + 1; } list = list.Skip(((int)model.PageIndex - 1) * (int)model.PageSize).Take((int)model.PageSize).ToList(); //foreach (var dg in list) //{ // var DevCount = await dbContext.DeviceToGroup.Where(i => i.GroupCode == dg.Code).CountAsync(); // var PGCount = await dbContext.ProgramDevice.Where(i => i.DeviceGrounpCode == dg.Code).CountAsync(); // arrayList.Add(new // { // dg.Code, // dg.GName, // dg.ScreenInfoCode, // dg.Type, // dg.SName, // dg.TypeStr, // DevCount, // PGCount // }); //} //_Result.Code = "200"; //_Result.Msg = "获取成功"; //_Result.Data = new { List = arrayList, AllPage = allPage, AllCount = allCount }; _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = new { List = list, AllPage = allPage, AllCount = allCount }; } return(Json(_Result)); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "" + e.ToString(); _Result.Data = ""; return(Json(_Result)); } }
public async Task <IActionResult> GetDeviceOptionsNew(Input_GetDeviceOptionsNew model, [FromServices] ContextString dbContext) { Output_DeviceOptionsNew _OD = new Output_DeviceOptionsNew(); QianMuResult _Result = new QianMuResult(); try { Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_GetDeviceOptionsNew)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); string MallCode = model.MallCode; if (string.IsNullOrEmpty(model.MallCode)) { UserOnLine user = Method.GetLoginUserName(dbContext, this.HttpContext); if (user == null || string.IsNullOrEmpty(user.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } else { MallCode = user.MallCode; } } if (string.IsNullOrEmpty(MallCode)) { _Result.Code = "510"; _Result.Msg = "无效的商场编码"; _Result.Data = ""; return(Json(_Result)); } var mall = await dbContext.Mall.Where(i => i.Code == MallCode).FirstOrDefaultAsync(); if (mall == null) { _Result.Code = "510"; _Result.Msg = "无效的商场编码"; _Result.Data = ""; return(Json(_Result)); } _OD.ScreenInfos = await dbContext.ScreenInfo.Where(i => i.MallCode == MallCode).ToListAsync(); List <Building> list = await dbContext.MallBuilding.Where(i => i.MallCode == MallCode).Join(dbContext.Building.Where(i => !i.IsDel), mb => mb.BuildingCode, b => b.Code, (mb, b) => b).ToListAsync(); List <Output_Building_Local> Buildings = new List <Output_Building_Local>(); foreach (var l in list) { var floors = await dbContext.Floor.Where(i => i.BuildingCode == l.Code && !i.IsDel).Select(s => new { FloorName = s.Name, Code = s.Code }).ToListAsync(); Buildings.Add(new Output_Building_Local { BuildingName = l.Name, Floors = floors, Code = l.Code }); } _OD.Buildings = Buildings; _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = _OD; return(Json(_Result)); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro:" + e.ToString(); _Result.Data = ""; return(Json(_Result)); throw; } }
public async Task <IActionResult> AddDeviceGroup(Input_DeviceGroupNew model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); //检测用户登录情况 //string username = Method.GetLoginUserName(dbContext, this.HttpContext); //if (string.IsNullOrEmpty(username)) //{ // _Result.Code = "401"; // _Result.Msg = "请登陆后再进行操作"; // _Result.Data = ""; // return Json(_Result); //} Stream stream = HttpContext.Request.Body; byte[] buffer = new byte[HttpContext.Request.ContentLength.Value]; stream.Read(buffer, 0, buffer.Length); string inputStr = Encoding.UTF8.GetString(buffer); model = (Input_DeviceGroupNew)Newtonsoft.Json.JsonConvert.DeserializeObject(inputStr, model.GetType()); UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } String MallCode = model.MallCode; if (string.IsNullOrEmpty(MallCode)) { MallCode = uol.MallCode; } //检测用户输入格式 if (!ModelState.IsValid) { _Result.Code = "510"; _Result.Msg = "请求信息不正确"; _Result.Data = ""; return(Json(_Result)); } var mall = await dbContext.Mall.Where(i => i.Code == MallCode).FirstOrDefaultAsync(); if (mall == null) { _Result.Code = "510"; _Result.Msg = "无效的商场编码"; _Result.Data = ""; return(Json(_Result)); } if (string.IsNullOrEmpty(model.GName)) { _Result.Code = "510"; _Result.Msg = "名称不可为空"; _Result.Data = ""; return(Json(_Result)); } //判断屏幕类型是否有效 int sCount = dbContext.ScreenInfo.Where(i => i.Code == model.ScreenInfoCode).Count(); if (sCount <= 0) { _Result.Code = "510"; _Result.Msg = "未知的屏幕类型"; _Result.Data = ""; return(Json(_Result)); } //判断设备组是否已存在 int count = dbContext.DeviceGroup.Where(i => i.MallCode == MallCode && i.GName == model.GName).Count(); if (count > 0) { _Result.Code = "1"; _Result.Msg = "设备组已存在"; _Result.Data = ""; return(Json(_Result)); } //检查组中的设备 if (model.Devices.Count() > 0) { var errorNoCodeList = new ArrayList(); var errorScreenList = new ArrayList(); var errorSyncList = new ArrayList(); var errorExistList = new ArrayList(); //判断ID是否都为有效设备 foreach (var item in model.Devices) { var dev = await dbContext.Device.Where(i => i.Code == item).FirstOrDefaultAsync(); if (dev == null) { errorNoCodeList.Add(item); } if (dev.ScreenInfo.ToLower() != model.ScreenInfoCode.ToLower()) { errorScreenList.Add(dev.IP); } if (dev.IsSyn != model.IsSync) { errorSyncList.Add(dev.DevNum); } if (model.IsSync) { var dgnum = await dbContext.DeviceToGroup.Where(i => i.DeviceCode == item).CountAsync(); if (dgnum > 0) { errorExistList.Add(dev.DevNum); } } else { var dgnum = await dbContext.DeviceToGroup.Where(i => i.DeviceCode == item).Join(dbContext.DeviceGroup.Where(i => i.MallCode == MallCode && i.Type == 2), d => d.GroupCode, g => g.Code, (d, g) => d).CountAsync(); if (dgnum > 0) { errorExistList.Add(dev.DevNum); } } } if (errorNoCodeList.Count > 0) { _Result.Code = "510"; _Result.Msg = "没有编码为:" + string.Join(";", (string[])errorNoCodeList.ToArray(typeof(string))) + "的设备"; _Result.Data = ""; return(Json(_Result)); } if (errorScreenList.Count > 0) { _Result.Code = "510"; _Result.Msg = "IP为:" + string.Join(";", (string[])errorScreenList.ToArray(typeof(string))) + "的设备屏幕分辨率与设备组分辨率不一致"; _Result.Data = ""; return(Json(_Result)); } if (errorSyncList.Count > 0) { _Result.Code = "510"; _Result.Msg = "设备名:" + string.Join(";", (string[])errorSyncList.ToArray(typeof(string))) + "的设备同步属性与设备组属性不一致"; _Result.Data = ""; return(Json(_Result)); } if (errorExistList.Count > 0) { _Result.Code = "510"; if (model.IsSync) { _Result.Msg = "设备名为:" + string.Join(";", (string[])errorExistList.ToArray(typeof(string))) + "的设备已存在于其他设备组"; } else { _Result.Msg = "设备名为:" + string.Join(";", (string[])errorExistList.ToArray(typeof(string))) + "的设备已存在于其他同步设备组"; } _Result.Data = ""; return(Json(_Result)); } } //添加设备组 DeviceGroup _DG = new DeviceGroup(); _DG.MallCode = MallCode; _DG.AddTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); _DG.ScreenInfoCode = model.ScreenInfoCode; _DG.GName = model.GName; _DG.Code = Guid.NewGuid().ToString(); _DG.UpdateTime = DateTime.Now; _DG.Type = model.IsSync ? 2 : 1; dbContext.DeviceGroup.Add(_DG); if (await dbContext.SaveChangesAsync() > 0) { //添加设备到设备组 if (model.Devices.Count > 0) { foreach (var item in model.Devices) { dbContext.DeviceToGroup.Add(new DeviceToGroup { AddTime = DateTime.Now, DeviceCode = item, GroupCode = _DG.Code, Code = Guid.NewGuid().ToString(), UpdateTime = DateTime.Now }); } if (await dbContext.SaveChangesAsync() > 0) { _Result.Code = "200"; _Result.Msg = "添加成功"; _Result.Data = ""; // var _thisjobId = BackgroundJob.Schedule(() => SynData.SendDevInfo(), TimeSpan.FromSeconds(1)); // var ip = Method.GetUserIp(this.HttpContext); // dbContext.SysLog.Add(new SysLog { AccountName = username, ModuleName = "设备组模块", LogMsg = username + "添加了设备组:" + model.GName, AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "创建", IP = ip }); //dbContext.SaveChanges(); } else { _Result.Code = "4"; _Result.Msg = "添加设备到设备组组失败"; _Result.Data = ""; } } else { _Result.Code = "200"; _Result.Msg = "添加成功"; _Result.Data = ""; // var _thisjobId = BackgroundJob.Schedule(() => SynData.SendDevInfo(), TimeSpan.FromSeconds(1)); } } else { _Result.Code = "5"; _Result.Msg = "添加设备组失败"; _Result.Data = ""; } return(Json(_Result)); }
/// <summary> /// 返回节目组列表 /// </summary> /// <param name="dbContext"></param> /// <returns></returns> public async Task <IActionResult> GetProgramGroupListByPage(Input_ProgramGroupQuery model, [FromServices] ContextString dbContext) { QianMuResult _Result = new QianMuResult(); try { UserOnLine uol = Method.GetLoginUserName(dbContext, this.HttpContext); if (uol == null || string.IsNullOrEmpty(uol.UserName)) { _Result.Code = "401"; _Result.Msg = "请登陆后再进行操作"; _Result.Data = ""; return(Json(_Result)); } //查询数据 var list = await dbContext.ProgramGroup.Join(dbContext.ScreenInfo, pg => pg.ScreenInfoCode, si => si.Code, (pg, si) => new { pg.ID, pg.Code, pg.GroupName, ScreenInfo = si.SName, pg.ScreenInfoCode, pg.AddTime }).OrderByDescending(o => o.AddTime).ToListAsync(); //过滤数据 if (!string.IsNullOrEmpty(model.ScreenCode)) { list = list.Where(i => i.ScreenInfoCode == model.ScreenCode).ToList(); } int allPage = 1; var allCount = list.Count(); model.Paging = model.Paging.HasValue ? model.Paging.Value : 0; if (model.Paging == 1) { if (model.PageIndex == null) { model.PageIndex = 1; } if (model.PageSize == null) { model.PageSize = 10; } allPage = (int)(allCount / model.PageSize); if (allCount % model.PageSize > 0) { allPage = allPage + 1; } list = list.Skip(((int)model.PageIndex - 1) * (int)model.PageSize).Take((int)model.PageSize).ToList(); } //获取行数 ArrayList array = new ArrayList(); foreach (var item in list) { var ProgramCount = dbContext.ProgramToGroup.Where(i => i.GroupCode == item.Code).Count(); array.Add(new { item.ID, item.Code, item.GroupName, item.ScreenInfo, item.ScreenInfoCode, ProgramCount }); //item.DeviceCount = dbContext.DeviceToGroups.Where(i => i.GroupID == item.ID).Count(); } _Result.Code = "200"; _Result.Msg = "获取成功"; _Result.Data = new { List = array, AllPage = allPage, AllCount = allCount }; //var ip = Method.GetUserIp(this.HttpContext); //dbContext.SysLog.Add(new SysLog { AccountName = username, ModuleName = "节目模块", LogMsg = username + "查询节目组列表", AddTime = DateTime.Now, Code = Guid.NewGuid().ToString(), Type = "查询", IP = ip }); //dbContext.SaveChanges(); } catch (Exception e) { _Result.Code = "500"; _Result.Msg = "Erro:" + e.ToString(); _Result.Data = ""; } return(Json(_Result)); }