public JsonResult CarouselPictures(long UserId, int IsOpen) { using (var result = new ResponseResult <List <ExpertQuestionCarouselOutput> >()) { long totalCount; //判断是否有专家身份 var isExpert = _expertPermissionService.Count(m => m.IsEnabled && m.UserId == UserId) > 0; Expression <Func <T_QUESTION, bool> > predicate; if (isExpert && IsOpen == 0) { predicate = m => !m.IsDeleted && !m.IsOpen && m.IsPutOnCarousel; } else { predicate = m => !m.IsDeleted && m.IsOpen && m.IsPutOnCarousel; } //获取符合条件的问题列表 var list = _expertQuestionService.GetAll(predicate, null, m => m.LastModifiedTime, 1, 3, out totalCount, "User"); var enumerable = list as T_QUESTION[] ?? list.ToArray(); if (enumerable.Any()) { result.Entity = Mapper.Map <List <ExpertQuestionCarouselOutput> >(list); //从每个问题条目中提取一个图片编号 var pictureIdDictionary = new Dictionary <long, long>(); GetOnePictureIdFromPerQuestion(enumerable, pictureIdDictionary); var picIdArray = pictureIdDictionary.Values.ToArray(); //根据图片编号列表获取图片信息 var fileInfoList = _fileInfoRepository.GetAll(m => picIdArray.Contains(m.Id)); //提取每个问题的用户编号 var userIdList = enumerable.Select(m => m.UserId).Distinct().ToArray(); var userList = _userService.GetAll(m => userIdList.Contains(m.Id)); //图片路径赋值 foreach (var item in result.Entity) { if (pictureIdDictionary.ContainsKey(item.QuestionId)) { var fileInfo = fileInfoList.FirstOrDefault(m => m.Id == pictureIdDictionary[item.QuestionId]); if (fileInfo != null) { item.PictureUrl = fileInfo.Path; } } var user = userList.First(m => m.Id == item.UserId); item.UserName = string.IsNullOrEmpty(user.UserName) ? user.LoginUserName : user.UserName; } } result.TotalNums = totalCount; result.Message = "获取问题列表轮播图成功!"; return(new JsonResultEx(result)); } }
// // GET: /Expert/Permission/ public ActionResult Check(long UserId) { var isExpert = _expertPermissionService.Count(m => m.IsEnabled && m.UserId == UserId); using (var result = new ResponseResult <ExpertPermissionCheckOutput>()) { result.Entity.IsExpert = isExpert; return(new JsonResultEx(result)); } }