예제 #1
0
        public async Task <LayuiTablePageVO> GetAllUsersAsync(int page, int limit, string keyword)
        {
            var userSpec  = new FindUserSpecification(page, limit, keyword);
            var countSpec = new CountUserSpecification(keyword);

            var userEntities = await userRepository.ListAsync(userSpec);

            var totalCount = await userRepository.CountAsync(countSpec);

            var vo = ToMenuVO(userEntities);

            return(new LayuiTablePageVO(vo, totalCount, 1));
        }
예제 #2
0
        public async Task <EditUserVO> GetUserVOAsync(Guid guid)
        {
            var userSpec = new FindUserSpecification(guid);
            var entity   = await userRepository.FirstOrDefaultAsync(userSpec);

            return(new EditUserVO
            {
                DOB = entity.DOB,
                Id = entity.Guid,
                LoginName = entity.LoginName,
                NickName = entity.NickName,
                Type = entity.Type
            });
        }
예제 #3
0
        public async Task <List <Menu> > GetUserMenusAsync(Guid userId, bool includeHideMenu = false)
        {
            // 获取当前用户信息
            var userSpec   = new FindUserSpecification(userId);
            var userEntity = await _userRepository.FirstOrDefaultAsync(userSpec);

            if (userEntity == null)
            {
                return(new List <Menu>());
            }

            // 获取当前用户对应的角色编码
            var userRoleSpec     = new FindUserRoleSpecification(userId);
            var userRoleEntities = await _userRoleRepository.ListAsync(userRoleSpec);

            var roleCodes = userRoleEntities.Select(x => x.RoleCode).ToList();

            // 获取角色对应的权限编码
            var rolePermissionSpec     = new FindRolePermissionSpecification(roleCodes);
            var rolePermissionEntities = await _rolePermissionRepository.ListAsync(rolePermissionSpec);

            var permissionCodes = rolePermissionEntities.Select(x => x.PermissionCode).ToList();

            // 获取权限对应的菜单编码
            var permissonSpec      = new FindPermissionSpecification(permissionCodes);
            var permissionEntities = await _permissionRepository.ListAsync(permissonSpec);

            var menuIds = permissionEntities.Select(x => x.MenuGuid);
            // 获取菜单
            var menuSpec     = new FindMenuSpecification(menuIds, IsDeleted.No, Status.Normal);
            var menuEntities = await _menuRepository.ListAsync(menuSpec);

            if (includeHideMenu)
            {
                return(menuEntities.OrderBy(x => x.Sort).ToList());
            }
            else
            {
                return(menuEntities.Where(x => x.HideMenu == YesOrNo.No).OrderBy(x => x.Sort).ToList());
            }
            //return ToMenuBO(menuEntities);
        }