Ejemplo n.º 1
0
        /// <summary>
        /// 添加部门信息
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <ApiResult <string> > AddAsync(SysMenu parm)
        {
            parm.Guid     = Guid.NewGuid().ToString();
            parm.EditTime = DateTime.Now;
            parm.AddTIme  = DateTime.Now;
            SysMenuDb.Insert(parm);
            if (!string.IsNullOrEmpty(parm.ParentGuid))
            {
                // 说明有父级  根据父级,查询对应的模型
                var model = SysMenuDb.GetById(parm.ParentGuid);
                parm.ParentGuidList = model.ParentGuidList + parm.Guid + ",";
                parm.Layer          = model.Layer + 1;
            }
            else
            {
                parm.ParentGuidList = "," + parm.Guid + ",";
                parm.Layer          = 1;
            }
            //更新  新的对象
            SysMenuDb.Update(parm);
            var res = new ApiResult <string>
            {
                statusCode = 200,
                data       = "1"
            };

            return(await Task.Run(() => res));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 修改菜单
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <ApiResult <string> > ModifyAsync(SysMenu parm, List <string> btnfun)
        {
            var res = new ApiResult <string>
            {
                statusCode = 200
            };
            //判断别名是否存在,要不一样的
            var isCodeExis = SysMenuDb.GetSingle(m => m.NameCode == parm.NameCode && m.Guid != parm.Guid);

            if (isCodeExis != null)
            {
                res.statusCode = (int)ApiEnum.Error;
                res.message    = "别名已存在~";
                return(await Task.Run(() => res));
            }
            parm.EditTime = DateTime.Now;
            if (!string.IsNullOrEmpty(parm.ParentGuid))
            {
                // 说明有父级  根据父级,查询对应的模型
                var model = SysMenuDb.GetById(parm.ParentGuid);
                parm.ParentGuidList = model.ParentGuidList + parm.Guid + ",";
                parm.Layer          = model.Layer + 1;
            }
            else
            {
                parm.ParentGuidList = "," + parm.Guid + ",";
            }
            parm.BtnFunJson = JsonConvert.SerializeObject(btnfun);
            await Db.Updateable(parm).ExecuteCommandAsync();

            return(res);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 根据菜单,获得当前菜单的所有功能权限
        /// </summary>
        /// <returns></returns>
        public Task <ApiResult <List <SysCodeDto> > > GetCodeByMenu(string role, string menu)
        {
            var res = new ApiResult <List <SysCodeDto> >()
            {
                statusCode = (int)ApiEnum.Error
            };

            try
            {
                //获得角色权限Guid-List
                var menuModel = SysMenuDb.GetSingle(m => m.Guid == menu);
                //查询授权菜单里面的按钮功能
                var btnFunModel = SysPermissionsDb.GetSingle(m => m.RoleGuid == role && m.MenuGuid == menu && m.Types == 1);
                var codeList    = new List <SysCodeDto>();
                if (!string.IsNullOrEmpty(menuModel.BtnFunJson))
                {
                    var list = JsonConvert.DeserializeObject <List <string> >(menuModel.BtnFunJson);
                    codeList = SysCodeDb.GetList(m => list.Contains(m.Guid)).Select(m => new SysCodeDto()
                    {
                        guid     = m.Guid,
                        name     = m.Name,
                        codeType = m.CodeType,
                        status   = string.IsNullOrEmpty(btnFunModel.BtnFunJson)?false:btnFunModel.BtnFunJson.Contains(m.Guid)?true:false
                    }).ToList();
                }
                res.statusCode = (int)ApiEnum.Status;
                res.data       = codeList;
            }
            catch (Exception ex)
            {
                res.message = ex.Message;
                Logger.Default.ProcessError((int)ApiEnum.Error, ex.Message);
            }
            return(Task.Run(() => res));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 查询Tree
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <List <SysMenuTree> > > GetListTreeAsync()
        {
            var list     = SysMenuDb.GetList();
            var treeList = new List <SysMenuTree>();

            foreach (var item in list.Where(m => m.Layer == 1).OrderBy(m => m.Sort))
            {
                //获得子级
                var children = RecursionOrganize(list, new List <SysMenuTree>(), item.Guid);
                treeList.Add(new SysMenuTree()
                {
                    guid     = item.Guid,
                    name     = item.Name,
                    open     = children.Count > 0,
                    children = children.Count == 0 ? null : children
                });
            }
            var res = new ApiResult <List <SysMenuTree> >
            {
                statusCode = 200,
                data       = treeList
            };

            return(await Task.Run(() => res));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 删除部门
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <ApiResult <string> > DeleteAsync(string parm)
        {
            var list = Utils.StrToListString(parm);
            var isok = SysMenuDb.Delete(m => list.Contains(m.Guid));
            var res  = new ApiResult <string>
            {
                statusCode = isok ? 200 : 500,
                data       = isok ? "1" : "0",
                message    = isok ? "删除成功~" : "删除失败~"
            };

            return(await Task.Run(() => res));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 根据菜单,获得当前菜单的所有功能权限
        /// </summary>
        /// <returns></returns>
        public ApiResult <List <SysCodeDto> > GetCodeByMenu(string role, string menu)
        {
            var res = new ApiResult <List <SysCodeDto> >()
            {
                statusCode = (int)ApiEnum.Error
            };

            try
            {
                //获得角色权限Guid-List
                var menuModel = SysMenuDb.GetSingle(m => m.Guid == menu);
                if (menuModel == null)
                {
                    return(new ApiResult <List <SysCodeDto> >());
                }
                //查询授权菜单里面的按钮功能
                var btnFunModel = SysPermissionsDb.GetSingle(m => m.RoleGuid == role && m.MenuGuid == menu && m.Types == 1);
                if (btnFunModel == null)
                {
                    return(new ApiResult <List <SysCodeDto> >());
                }
                var list     = JsonConvert.DeserializeObject <List <string> >(menuModel.BtnFunJson);
                var codeList = Db.Queryable <SysCode>().Where(m => list.Contains(m.Guid)).Select(m => new SysCodeDto()
                {
                    guid     = m.Guid,
                    name     = m.Name,
                    codeType = m.CodeType,
                    status   = false
                }).ToList();

                if (btnFunModel != null && !string.IsNullOrEmpty(btnFunModel.BtnFunJson) && btnFunModel.BtnFunJson != "[]")
                {
                    foreach (var item in codeList)
                    {
                        if (btnFunModel.BtnFunJson.Contains(item.guid))
                        {
                            item.status = true;
                        }
                    }
                }

                res.statusCode = (int)ApiEnum.Status;
                res.data       = codeList;
            }
            catch (Exception ex)
            {
                res.message = ex.Message;
                Logger.Default.ProcessError((int)ApiEnum.Error, ex.Message);
            }
            return(res);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 获得列表
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <Page <SysMenu> > > GetPagesAsync(PageParm parm)
        {
            var res = new ApiResult <Page <SysMenu> >();

            try
            {
                var query = await Db.Queryable <SysMenu>()
                            .WhereIF(!string.IsNullOrEmpty(parm.key), m => m.ParentGuidList.Contains(parm.key))
                            .OrderBy(m => m.Sort)
                            .Mapper((it, cache) =>
                {
                    var codeList = cache.Get(t =>
                    {
                        return(Db.Queryable <SysCode>().Where(m => m.ParentGuid == "a88fa4d3-3658-4449-8f4a-7f438964d716").ToList());
                    });
                    var list = new List <string>();
                    if (!string.IsNullOrEmpty(it.BtnFunJson))
                    {
                        list = JsonConvert.DeserializeObject <List <string> >(it.BtnFunJson);
                    }
                    if (list.Count > 0)
                    {
                        it.BtnFunJson = string.Join(',', codeList.Where(g => list.Contains(g.Guid)).Select(g => g.Name).ToList());
                    }
                })
                            .ToPageAsync(parm.page, parm.limit);

                res.success = true;
                res.message = "获取成功!";
                var result = new List <SysMenu>();
                if (!string.IsNullOrEmpty(parm.key))
                {
                    var menuModel = SysMenuDb.GetSingle(m => m.Guid == parm.key);
                    ChildModule(query.Items, result, menuModel.ParentGuid);
                }
                else
                {
                    ChildModule(query.Items, result, null);
                }

                query.Items = result;
                res.data    = query;
            }
            catch (Exception ex)
            {
                res.message    = ApiEnum.Error.GetEnumText() + ex.Message;
                res.statusCode = (int)ApiEnum.Error;
            }
            return(res);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 根据唯一编号查询一条部门信息
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <ApiResult <SysMenu> > GetByGuidAsync(string parm)
        {
            var model = SysMenuDb.GetById(parm);
            var res   = new ApiResult <SysMenu>
            {
                statusCode = 200
            };
            var pmdel = Db.Queryable <SysMenu>().OrderBy(m => m.Sort, OrderByType.Desc).First();

            res.data = model ?? new SysMenu()
            {
                Sort = pmdel?.Sort + 1 ?? 1, Status = true
            };
            return(await Task.Run(() => res));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 修改菜单
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <ApiResult <string> > ModifyAsync(SysMenu parm)
        {
            parm.EditTime = DateTime.Now;
            if (!string.IsNullOrEmpty(parm.ParentGuid))
            {
                // 说明有父级  根据父级,查询对应的模型
                var model = SysMenuDb.GetById(parm.ParentGuid);
                parm.ParentGuidList = model.ParentGuidList + parm.Guid + ",";
                parm.Layer          = model.Layer + 1;
            }
            else
            {
                parm.ParentGuidList = "," + parm.Guid + ",";
            }
            var res = new ApiResult <string>
            {
                statusCode = 200,
                data       = SysMenuDb.Update(parm) ? "1" : "0"
            };

            return(await Task.Run(() => res));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 添加部门信息
        /// </summary>
        /// <param name="parm"></param>
        /// <returns></returns>
        public async Task <ApiResult <string> > AddAsync(SysMenu parm, List <string> btnfun)
        {
            var res = new ApiResult <string>
            {
                statusCode = 200,
                data       = "1"
            };
            //判断别名是否存在,要不一样的
            var isCodeExis = SysMenuDb.GetSingle(m => m.NameCode == parm.NameCode);

            if (isCodeExis != null)
            {
                res.statusCode = (int)ApiEnum.Error;
                res.message    = "别名已存在~";
                return(await Task.Run(() => res));
            }
            parm.Guid       = Guid.NewGuid().ToString();
            parm.EditTime   = DateTime.Now;
            parm.AddTIme    = DateTime.Now;
            parm.BtnFunJson = JsonConvert.SerializeObject(btnfun);
            SysMenuDb.Insert(parm);
            if (!string.IsNullOrEmpty(parm.ParentGuid))
            {
                // 说明有父级  根据父级,查询对应的模型
                var model = SysMenuDb.GetById(parm.ParentGuid);
                parm.ParentGuidList = model.ParentGuidList + parm.Guid + ",";
                parm.Layer          = model.Layer + 1;
            }
            else
            {
                parm.ParentGuidList = "," + parm.Guid + ",";
                parm.Layer          = 1;
            }

            //更新  新的对象
            SysMenuDb.Update(parm);

            return(await Task.Run(() => res));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 根据登录账号,获得相应权限
        /// </summary>
        /// <returns></returns>
        public async Task <ApiResult <List <SysMenu> > > GetAuthorizeAsync(string admin)
        {
            var res = new ApiResult <List <SysMenu> >()
            {
                statusCode = (int)ApiEnum.Error
            };

            try
            {
                //根据用户查询角色列表, 一个用户对应多个角色
                var roleList = SysPermissionsDb.GetList(m => m.AdminGuid == admin && m.Types == 2).Select(m => m.RoleGuid).ToList();
                //根据角色获得多个菜单
                var menuList = SysPermissionsDb.GetList(m => roleList.Contains(m.RoleGuid) && m.Types == 1).Select(m => m.MenuGuid).ToList();
                //根据权限菜单查询列表
                res.data       = SysMenuDb.GetList(m => menuList.Contains(m.Guid) && m.Status).OrderBy(m => m.Sort).ToList();
                res.statusCode = (int)ApiEnum.Status;
            }
            catch (Exception ex)
            {
                res.message = ApiEnum.Error.GetEnumText() + ex.Message;
            }
            return(await Task.Run(() => res));
        }