private List <ProductFaqConfigDetailModel> CheckPidHasSingleFaq(List <string> listpids) { var list = new List <ProductFaqConfigDetailModel>(); var flag = true; var firstPid = listpids.FirstOrDefault(); var faqdetail = ProductFaqManage.SelectProductFaqConfigDetailModels(firstPid); if (faqdetail == null || !faqdetail.Any()) { list.Add(new ProductFaqConfigDetailModel { Sort = 1 }); } else { var fkfaqid = faqdetail.Select(r => r.FkFaqId).FirstOrDefault(); if (listpids.Count() > 100) { var count = ProductFaqManage.SelectNotSameFaqCount(listpids, fkfaqid); if (count == 0) { list = faqdetail.ToList(); } else { list.Add(new ProductFaqConfigDetailModel { Sort = 1 }); } } else { foreach (var pid in listpids) { var innerList = ProductFaqManage.SelectProductFaqConfigDetailModels(pid); if (innerList == null || !innerList.Any() || innerList.Select(r => r.FkFaqId).FirstOrDefault() != fkfaqid) { list = new List <ProductFaqConfigDetailModel>(); list.Add(new ProductFaqConfigDetailModel { Sort = 1 }); flag = false; break; } } if (flag) { list = faqdetail.ToList(); } } } return(list); }
/// <summary> /// 查询问题详情 /// </summary> /// <param name="keyValue"></param> /// <param name="searchString"></param> /// <param name="pids"></param> /// <returns></returns> public ActionResult FaqConfig(string keyValue, string pids, string searchString) { var list = new List <ProductFaqConfigDetailModel>(); var flag = true; if (!string.IsNullOrEmpty(searchString) || !string.IsNullOrEmpty(pids)) { //var cbs = searchString.Replace("\'","\""); //var aa = cbs.Substring(1, cbs.Length - 1); searchString = TempData["searchString"].ToString(); var brandModel = JsonConvert.DeserializeObject <List <CBrandModel> >(searchString); var dalPids = ProductFaqManage.SelectSimpleProductModels(brandModel, pids).ToList(); var pidss = dalPids.Select(r => r.Pid.Trim()).ToList(); list = CheckPidHasSingleFaq(pidss); //全选的情况 todo 传查询条件过来去表里重新查一遍全部的 //if (pidss.Count > 5000) // ViewBag.Pids = "Long"; //else //ViewBag.Pids = pids; //ViewBag.searchString= TempData["Pids"] = pids; TempData["searchString"] = searchString; } else { var listpids = keyValue.Split(',').ToList(); //多选情况 //todo 多选还有一种情况是指勾选的产品配置的问题都一样的话要传过去 if (listpids.Count() > 1) { list = CheckPidHasSingleFaq(listpids); } else //单选情况 { list = ProductFaqManage.SelectProductFaqConfigDetailModels(keyValue).ToList(); if (!list.Any()) { list.Add(new ProductFaqConfigDetailModel { Sort = 1 }); } } } ViewBag.DataCount = list.Count; return(View(list)); }