/// <summary>
        /// 会员添加角色
        /// </summary>
        /// <param name="dicwhere">修改条件</param>
        /// <param name="kID">当前数据主键KID</param>
        /// <param name="opertionUser">操作者信息</param>
        /// <returns>Result.</returns>
        public static Result SetEmployeeRole(string empid, string roleids)
        {
            var res    = new Result();
            var dickey = new Dictionary <string, object>();

            dickey.Add(nameof(Sysuserrole.Userid), empid);
            dickey.Add(nameof(Sysuserrole.IsDeleted), 0);
            SysuserroleLogic.DeleteByWhere(dickey, new OpertionUser());
            var list = new List <Sysuserrole>();

            if (!string.IsNullOrEmpty(roleids))
            {
                var time = DateTime.Now;
                foreach (var item in roleids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
                {
                    list.Add(new Sysuserrole
                    {
                        CreateTime     = time,
                        UpdateTime     = time,
                        CreateUserId   = "1",
                        CreateUserName = "******",
                        Userid         = empid,
                        Roleid         = item,
                        UserType       = 0
                    });
                }
            }
            res = SysuserroleLogic.Adds(list, new OpertionUser());

            return(res);
        }
Beispiel #2
0
        /// <summary>
        /// 根据员工账号查询菜单
        /// </summary>
        /// <param name="userKID">员工账号ID</param>
        /// <returns>
        /// UserAuthorMenu.
        /// </returns>
        public static UserAuthorMenu GetMenuByUserID(int userKID)
        {
            //递归查询得到菜单信息
            UserAuthorMenu ret = new UserAuthorMenu()
            {
                UserMenuList = new List <zTreeModel>()
            };

            var allmenu = GetAllList().OrderByDescending(t => t.Menusort);

            var roleList = new List <Sysrole>();

            var dic = new Dictionary <string, object>();

            if (userKID > 1)
            {
                dic.Add(nameof(Sysuserrole.Userid), userKID);
                var roleLst = SysuserroleLogic.GetList(dic);

                if (roleLst.Count() == 0)
                {
                    return(new UserAuthorMenu()
                    {
                        Message = "未分配权限角色,请联系管理员开通权限"
                    });
                }

                var allRoleIds = string.Join(",", roleLst.Select(p => p.Roleid).ToArray());

                if (allRoleIds.Count() == 0)
                {
                    return(new UserAuthorMenu()
                    {
                        Message = "未分配权限角色,请联系管理员开通权限"
                    });
                }

                dic = new Dictionary <string, object>();
                dic.Add(nameof(Sysrole.KID) + "|i", allRoleIds);

                dic.Add(nameof(Sysrole.IsDeleted), 0);

                roleList = SysroleLogic.GetList(dic);

                if (roleList.Count() == 0)
                {
                    return(new UserAuthorMenu()
                    {
                        Message = "不存在对应角色,请联系管理员开通权限"
                    });
                }
                List <string> removelst = new List <string>();

                var allAuthMenu = string.Join(",", roleList.Select(p => p.MenuList).ToArray()).Split(',').ToList();

                foreach (var item in allmenu.Where(p => allAuthMenu.Contains(p.KID.ToString())).OrderByDescending(k => k.Menusort))
                {
                    if (item.IsNull())
                    {
                        continue;
                    }
                    if (item.IsNull() || removelst.Contains(item.KID.ToString()))
                    {
                        continue;
                    }
                    removelst.Add(item.KID.ToString());

                    ret.UserMenuList.Add(new zTreeModel()
                    {
                        id   = item.KID.ToString(),
                        pId  = item.Fatherid.ToString(),
                        name = item.Menuname,
                        url  = item.MenuUrl,
                        sort = item.Menusort,
                        ico  = item.Menuicon,
                        open = true
                    });
                }
            }
            else
            {
                foreach (var item in allmenu.OrderByDescending(p => p.Menusort))
                {
                    ret.UserMenuList.Add(new zTreeModel()
                    {
                        id   = item.KID.ToString(),
                        pId  = item.Fatherid.ToString(),
                        name = item.Menuname,
                        url  = item.MenuUrl,
                        sort = item.Menusort,
                        ico  = item.Menuicon,
                        open = true
                    });
                }
            }
            if (ret.UserMenuList.Count() > 0)
            {
                ret.IsSucceed = true;
                ret.Message   = "菜单获取成功";
            }
            else
            {
                ret.Message = "未找到对应菜单,请联系管理员";
            }

            return(ret);
        }