Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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;
            }
        }
Exemplo n.º 5
0
        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));
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        /// <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));
        }
Exemplo n.º 10
0
        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));
            }
        }
Exemplo n.º 11
0
        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));
        }
Exemplo n.º 12
0
        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));
        }
Exemplo n.º 13
0
        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));
        }
Exemplo n.º 14
0
        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));
        }
Exemplo n.º 15
0
        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));
        }
Exemplo n.º 16
0
        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));
        }
Exemplo n.º 17
0
        /// <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));
        }
Exemplo n.º 18
0
        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));
            }
        }
Exemplo n.º 19
0
        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;
            }
        }
Exemplo n.º 20
0
        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));
        }
Exemplo n.º 21
0
        /// <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));
        }