Example #1
0
        /// <summary>
        /// 根据用户Id,查询部门,角色,符合条件的公告栏
        /// </summary>
        /// <param name="bulletinByUserSearchViewModel"></param>
        /// <returns></returns>
        public BulletinBoardRoleSearchMiddlecs BulletinByUserId_Search(BulletinByUserSearchViewModel bulletinByUserSearchViewModel)
        {
            BulletinBoardRoleSearchMiddlecs bulletinBoardRoleSearchMiddlecs = new BulletinBoardRoleSearchMiddlecs();
            //公告栏集合
            List <Bulletin_Board> bulletin_Boards = new List <Bulletin_Board>();
            //获取用户信息
            var user_info = _IUserInfoRepository.GetInfoAndDepartByUserid(bulletinByUserSearchViewModel.UserUid);
            //获取用户相关所有信息(部门,公告栏,角色等等)
            var user_Infos_All = _IBulletinBoardRelateRoleRepository.SearchInfoByWhere(bulletinByUserSearchViewModel.UserUid);

            //匹配相关信息
            bulletinBoardRoleSearchMiddlecs = _IMapper.Map(user_info, bulletinBoardRoleSearchMiddlecs);
            //建有层级关系的权限扁平化
            for (int i = 0; i < user_Infos_All.Count; i++)
            {
                int rightNum = user_Infos_All[i].User_Role.Bulletin_Board_Relate_Role.Count;
                for (int j = 0; j < rightNum; j++)
                {
                    //将外键变为空
                    var tempBoards = user_Infos_All[i].User_Role.Bulletin_Board_Relate_Role[j].Bulletin_Board;
                    int sn         = Convert.ToInt32(tempBoards.StayNum);//停留小时数
                    //创建公告时间+停留小时数 转换为时间戳格式
                    TimeSpan ts    = tempBoards.AddDate.AddHours(sn).ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                    long     sdate = Convert.ToInt64(ts.TotalSeconds);
                    //当前时间转为时间戳格式
                    TimeSpan ts2   = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                    long     edate = Convert.ToInt64(ts2.TotalSeconds);
                    //当前时间 在限制的时间内 则显示,否则不显示
                    if (sdate > edate)
                    {
                        bulletin_Boards.Add(tempBoards);
                    }
                }
            }
            int SkipNum  = bulletinByUserSearchViewModel.pageViewModel.CurrentPageNum * bulletinByUserSearchViewModel.pageViewModel.PageSize;
            int pageSiez = bulletinByUserSearchViewModel.pageViewModel.PageSize;
            List <Bulletin_Board> bulletin_BoardTrue = new List <Bulletin_Board>();
            List <Bulletin_Board> bulletin_BoardQc   = new List <Bulletin_Board>();

            if (pageSiez > bulletin_Boards.Count)
            {
                pageSiez = bulletin_Boards.Count;//篇幅不能超过 数组最长长度
            }
            for (int j = 0; j < pageSiez; j++)
            {
                if (SkipNum >= bulletin_Boards.Count)
                {
                    continue;
                }
                bulletin_BoardTrue.Add(bulletin_Boards[SkipNum]);
                SkipNum++;
            }

            foreach (Bulletin_Board bulletin in bulletin_BoardTrue)//去重
            {
                if (bulletin_BoardQc.Exists(x => x.Id == bulletin.Id) == false)
                {
                    bulletin_BoardQc.Add(bulletin);
                }
            }
            bulletinBoardRoleSearchMiddlecs.Bulletin_Board = bulletin_BoardQc;
            return(bulletinBoardRoleSearchMiddlecs);
        }
Example #2
0
        public ActionResult <BulletinByUserSearchResModel> Manage_BulletinByLogin_Search(BulletinByUserSearchViewModel bulletinByUserSearchViewModel)
        {
            BulletinByUserSearchResModel bulletinByUserSearchResModel = new BulletinByUserSearchResModel();
            var UserSearchResult = _bulletinBoardService.BulletinByUserId_Search(bulletinByUserSearchViewModel);

            if (UserSearchResult.Bulletin_Board.Count < 1)
            {
                bulletinByUserSearchResModel.IsSuccess                  = false;
                bulletinByUserSearchResModel.baseViewModel.Message      = "用户无权限查看公告信息";
                bulletinByUserSearchResModel.baseViewModel.ResponseCode = 400;
                _ILogger.Information("用户无权限,查看公告失败");
                return(BadRequest(bulletinByUserSearchResModel));
            }
            else
            {
                bulletinByUserSearchResModel.userInfo                   = UserSearchResult;
                bulletinByUserSearchResModel.IsSuccess                  = true;
                bulletinByUserSearchResModel.baseViewModel.Message      = "存在可显示的公告,查询成功";
                bulletinByUserSearchResModel.baseViewModel.ResponseCode = 200;
                _ILogger.Information("查询公告信息成功");
                return(Ok(bulletinByUserSearchResModel));
            }
        }