/// <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); }
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)); } }