Ejemplo n.º 1
0
        public void ClearRoleUserCache(long roleId)
        {
            //user2role 找到userid
            var userIdLst = User2RoleRepository
                            .QueryEnable()
                            .Where(m => m.RoleId == roleId)
                            .Select(m => m.UserId)
                            .ToList();

            //user2apart  role2apart 找到userid
            var user2ApartQuery = User2ApartRepository
                                  .QueryEnable();
            var role2ApartQuery = Role2ApartRepository
                                  .QueryEnable()
                                  .Where(m => m.RoleId == roleId);
            var apart2UserIdList = user2ApartQuery
                                   .Join(role2ApartQuery,
                                         u2a => u2a.ApartmentId,
                                         r2a => r2a.ApartmentId,
                                         (u2a, r2a) => u2a.UserId);

            //合集
            userIdLst.AddRange(apart2UserIdList);

            //剔除重复
            userIdLst = userIdLst.Distinct().ToList();

            //清除缓存
            foreach (var userId in userIdLst)
            {
                Cache.Remove(Users.GIdPrefix + userId);
            }
        }
Ejemplo n.º 2
0
        public List <long> GetRoleIdList(long userId)
        {
            if (userId == 0)
            {
                return(new List <long>());
            }
            //用户x角色
            var user2RoleIdList = User2RoleRepository
                                  .QueryEnable()
                                  .Where(m => m.UserId == userId)
                                  .Select(m => m.RoleId)
                                  .ToList();

            //用户x部门x角色
            var user2ApartQuery = User2ApartRepository
                                  .QueryEnable()
                                  .Where(m => m.UserId == userId);
            var role2ApartQuery = Role2ApartRepository
                                  .QueryEnable();
            var apart2RoleIdList = user2ApartQuery
                                   .Join(role2ApartQuery,
                                         u2a => u2a.ApartmentId,
                                         r2a => r2a.ApartmentId,
                                         (u2a, r2a) => r2a.RoleId);

            //RoleIdList
            user2RoleIdList.AddRange(apart2RoleIdList);
            var roleIdList = user2RoleIdList
                             .Distinct()
                             .ToList();

            return(roleIdList);
        }
Ejemplo n.º 3
0
        private AdminUserModel GetAdminUserModel(Users user)
        {
            var roleIdList     = UserRoleSvc.GetRoleIdList(user.Id);
            var menuList       = SysMenuSvc.GetList(roleIdList);
            var apartIdList    = User2ApartRepository.GetLstApartId(user.Id);
            var userFilterList = UserRole2FilterRepository.GetRoleFilterList(roleIdList);
            var model          = new AdminUserModel(user, roleIdList, menuList, apartIdList, userFilterList);

            return(model);
        }
        private SysUserModel GetModel(Users user)
        {
            var roleIdList     = UserRoleSvc.GetRoleIdList(user.Id);
            var menuList       = SysMenuSvc.GetList(roleIdList);
            var apartIdList    = User2ApartRepository.GetApartIdListAsync(user.Id).Result;
            var userFilterList = UserRole2FilterRepository.GetRoleFilterList(roleIdList);
            var serializeModel = new SysUserModel(user, roleIdList, menuList, apartIdList, userFilterList);

            return(serializeModel);
        }
Ejemplo n.º 5
0
        public void ClearRoleUserCache(long roleId)
        {
            //user2role 找到userid
            var lstUserId = User2RoleRepository.GetLstUserId(roleId);

            //user2apart  role2apart 找到userid
            var lstApartId     = Role2ApartRepository.GetLstApartId(roleId);
            var lstApartUserId = User2ApartRepository.GetLstUserId(lstApartId);

            //合集
            lstUserId.Concat(lstApartUserId);

            //剔除重复
            lstUserId = lstUserId.Distinct().ToList();

            //清除缓存
            foreach (var userId in lstUserId)
            {
                Cache.Remove(Users.GIdPrefix + userId);
            }
        }
Ejemplo n.º 6
0
        public List <long> GetRoleIdList(long userId)
        {
            if (userId == 0)
            {
                return(new List <long>());
            }
            //用户x角色
            var lstU2RRoleId = User2RoleRepository.GetLstRoleId(userId);

            //用户x部门x角色
            var lstApartId   = User2ApartRepository.GetLstApartId(userId);
            var lstR2ARoleId = Role2ApartRepository.GetLstRoleId(lstApartId);

            //RoleIdList
            lstU2RRoleId.Concat(lstR2ARoleId);
            var roleIdList = lstU2RRoleId
                             .Distinct()
                             .ToList();

            return(roleIdList);
        }