public async Task <SearchFaqsQuestionResponseDto> SearchFaqsQuestionAsync(SearchFaqsQuestionRequestDto request) { var sqlWhere = $@"AND a.enable=1"; if (!string.IsNullOrWhiteSpace(request.Keyword)) { request.Keyword = $"{request.Keyword}%"; sqlWhere = $"{sqlWhere} AND a.content like @Keyword"; } if (request.RewardType != null) { sqlWhere = $"{sqlWhere} AND a.reward_type = '{request.RewardType.ToString()}'"; } if (!string.IsNullOrWhiteSpace(request.Phone)) { request.Phone = $"{request.Phone}%"; sqlWhere = $"{sqlWhere} AND (b.phone like @Phone or b.nick_name like @Phone or b.user_name like @Phone )"; } var sql = $@" SELECT a.question_guid, a.user_guid, a.STATUS, a.answer_num, a.content, a.attachment_guid_list, a.creation_date, a.ENABLE, a.reward_intergral, a.reward_type, b.user_name FROM t_faqs_question a left join t_utility_user b on a.user_guid=b.user_guid WHERE 1 = 1 {sqlWhere} ORDER BY creation_date desc" ; return(await MySqlHelper.QueryByPageAsync <SearchFaqsQuestionRequestDto, SearchFaqsQuestionResponseDto, SearchFaqsQuestionItemDto>(sql, request)); }
public async Task <IActionResult> SearchFaqsQuestionAsync([FromBody] SearchFaqsQuestionRequestDto request) { var response = await new FaqsQuestionBiz().SearchFaqsQuestionAsync(request); var aguids = new List <string> { }; //var uguids = new List<string> { }; var guids = new List <string> { }; foreach (var item in response.CurrentPage) { item.AttachmentGuidList2 = Newtonsoft.Json.JsonConvert.DeserializeObject <string[]>(item.AttachmentGuidList ?? "[]"); aguids.AddRange(item.AttachmentGuidList2); //uguids.Add(item.UserGuid); guids.Add(item.QuestionGuid); } var accessorys = await new AccessoryBiz().GetListAsync(aguids); //var users = await new UserBiz().GetListAsync(uguids); var hots = await new HotBiz().GetListAsync(guids); var collectioncs = await new CollectionBiz().GetCollectionCountAsync(guids); foreach (var item in response.CurrentPage) { item.Attachments = accessorys.Where(a => item.AttachmentGuidList2.Contains(a.AccessoryGuid)).Select(s => new SearchFaqsQuestionItemDto.Attachment { Guid = s.AccessoryGuid, Url = $"{s.BasePath}{s.RelativePath}" }).ToArray(); //item.UserName = users.FirstOrDefault(a => a.UserGuid == item.UserGuid)?.UserName; var hot = hots.FirstOrDefault(a => a.OwnerGuid == item.QuestionGuid); //item.LikeCount = hot?.LikeCount ?? 0; item.VisitCount = hot?.VisitCount ?? 0; item.CollectionCount = hot?.CollectCount ?? 0; } return(Success(response)); }