public Object GetKBDataByPage(string q, string domain, string intent_domain, string intent_id, string pageNum) { var emptyObject = new { result = false, msg = "未找到查询结果!" }; IntentItem itentItem = null; Domain.Intent intent = new Answer(domain).GetIntent(q); if (intent.qt_parsed_rst == null) { return(null); } foreach (var item in intent.qt_parsed_rst) { if (item.results == null) { continue; } if (item.qt_domain == domain && item.results[0].domain == intent_domain && item.intent_no == intent_id) { itentItem = item; break; } } string intentItem = string.Empty; int pnum = 0; try { pnum = int.Parse(pageNum); } catch { return(emptyObject); } //try //{ // itentItem = Newtonsoft.Json.JsonConvert.DeserializeObject<IntentItem>(intentItem); //} //catch (System.Exception ex) //{ // CBase.Log.Logger.Error(ex); //} if (itentItem == null) { return(emptyObject); } itentItem.results[0].pagenum = pnum; CMKArea karea = null; var qc = new KB().GetItem(itentItem); if (qc != null && qc.Total > 0) { karea = qc.MetaList[0]; karea.Page.PageNum = pnum; return(new { result = true, karea }); } else { return(emptyObject); } //GetBookInfo(karea); }
public static Dictionary <string, Dictionary <string, Dictionary <string, object> > > BuildDict( string ordinate, string abscissa, CMKArea cArea) { if (cArea == null || cArea.KNode.Count == 0) { return(null); } Dictionary <string, Dictionary <string, Dictionary <string, object> > > dict = new Dictionary <string, Dictionary <string, Dictionary <string, object> > >(); //装载第一个node 并以第一个为纵坐标为标准添加后续节点 foreach (var data in cArea.KNode[0].DATA) { string ordinateValue = string.Empty; string abscissaValue = string.Empty; if (data.FieldValue.ContainsKey(ordinate) && data.FieldValue[ordinate] != null) { ordinateValue = data.FieldValue[ordinate].ToString(); } if (data.FieldValue.ContainsKey(abscissa) && data.FieldValue[abscissa] != null) { abscissaValue = data.FieldValue[abscissa].ToString(); cArea.KNode[0].Title = abscissaValue; } if (!string.IsNullOrEmpty(ordinateValue) && !string.IsNullOrEmpty(abscissaValue)) { var abscissaDic = new Dictionary <string, Dictionary <string, object> >(); abscissaDic.Add(abscissaValue, data.FieldValue); if (!dict.ContainsKey(ordinateValue)) { dict.Add(ordinateValue, abscissaDic); } } } //添加后续节点 for (int i = 1; i < cArea.KNode.Count; i++) { foreach (var data in cArea.KNode[i].DATA) { string ordinateValue = string.Empty; string abscissaValue = string.Empty; if (data.FieldValue.ContainsKey(ordinate) && data.FieldValue[ordinate] != null) { ordinateValue = data.FieldValue[ordinate].ToString(); } if (!dict.ContainsKey(ordinateValue)) { continue; } if (data.FieldValue.ContainsKey(abscissa) && data.FieldValue[abscissa] != null) { abscissaValue = data.FieldValue[abscissa].ToString(); cArea.KNode[i].Title = abscissaValue; } if (!string.IsNullOrEmpty(ordinateValue) && !string.IsNullOrEmpty(abscissaValue)) { var abscissaDic = new Dictionary <string, Dictionary <string, object> >(); abscissaDic.Add(abscissaValue, data.FieldValue); var ordinateDic = dict[ordinateValue]; if (!ordinateDic.ContainsKey(abscissaValue)) { ordinateDic.Add(abscissaValue, data.FieldValue); } } } } return(dict); }