yp 3 лет назад
Родитель
Сommit
410d0870c5

+ 31 - 5
nngkxxdp/src/main/java/com/example/nngkxxdp/elk/ElkController.java

@@ -3,6 +3,7 @@ package com.example.nngkxxdp.elk;
 import java.io.IOException;
 import java.util.*;
 
+import com.example.nngkxxdp.dao.ElkDao;
 import org.elasticsearch.action.search.SearchRequest;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.search.aggregations.bucket.terms.Terms;
@@ -436,12 +437,15 @@ public class ElkController {
 
         // 搜索主题分类
         if (Blank.notBlank(childTypeName)) {
-            if (childTypeName.indexOf("\\") != -1) {
-                childTypeName = childTypeName.replace("\\", "\\");
-            }
+            String[] childTypeNames = childTypeName.split(",");
             BoolQueryBuilder boolQueryBuilder4 = new BoolQueryBuilder();
             List<QueryBuilder> should = boolQueryBuilder4.should();
-            should.add(QueryBuilders.matchQuery(childType, childTypeName));
+            for (String typeName : childTypeNames) {
+                if (typeName.indexOf("\\") != -1) {
+                    typeName = typeName.replace("\\", "\\");
+                }
+                should.add(QueryBuilders.matchQuery(childType, typeName));
+            }
             list.add(boolQueryBuilder4);
         }
 
@@ -485,10 +489,30 @@ public class ElkController {
         Terms terms = searchResponse.getAggregations().get("childtype");
         List<? extends Bucket> buckets = terms.getBuckets();
         Map<Object, Object> groupInfo = new HashMap<>();
-        for(Bucket bt : buckets) {
+        for (Bucket bt : buckets) {
             groupInfo.put(bt.getKey(), bt.getDocCount());
             System.err.println(bt.getKey() + " " + bt.getDocCount());
         }
+
+        List<Map<String, Object>> childType = elkService.getChildType();
+        int count = 0;
+        Map<String, Object> childTypeMap = new HashMap<>();
+        if (Blank.isNotEmpty(childType)) {
+            for (Map<String, Object> childM : childType) {
+                if (Blank.isNotEmpty(childM.get("children"))) {
+                    List<Map<String, Object>> childrenList = (List<Map<String, Object>>) childM.get("children");
+                    for (int i = 0; i < childrenList.size(); i++) {
+                        String scendTitle = (String) childrenList.get(i).get("title");
+                        if (Blank.isNotEmpty(groupInfo.get(scendTitle))) {
+                            count += (long) groupInfo.get(scendTitle);
+                        }
+                    }
+                    childTypeMap.put((String) childM.get("title"), count);
+                    count = 0;
+                }
+            }
+        }
+
         JSONArray array = new JSONArray();
         JSONArray highlightArr = new JSONArray();
 
@@ -507,6 +531,7 @@ public class ElkController {
         map.put("data", array);
         map.put("highlightArr", highlightArr);
         map.put("groupInfo", groupInfo);
+        map.put("firstCount", childTypeMap);
         return SendUtil.send(true, null, map);
     }
 
@@ -552,6 +577,7 @@ public class ElkController {
     public Map<String, Object> getChildType() {
         return SendUtil.send(true, null, elkService.getChildType());
     }
+
     /**
      * 获取主题分类条数
      */

+ 54 - 54
nngkxxdp/src/main/resources/static/zdjc/sywj11.html

@@ -22,7 +22,7 @@
 	</div>
 
 		<div class="content">
-			<div class="ques" id="ques">没有找到合适答案,我要提问</div>
+<!--			<div class="ques" id="ques">没有找到合适答案,我要提问</div>-->
 			<div class="wrap_content">
 				<div class="wrapDiv">
 					<ul class="layui-timeline">
@@ -88,7 +88,7 @@
 						<h3>南岸区政策文件库</h3>
 					</div>
 
-					<span class="totall">共计问答数:1234</span>
+<!--					<span class="totall">共计问答数:1234</span>-->
 
 					<div class="sq">
 							<div style="position:relative">
@@ -157,40 +157,40 @@
 		</div>
 	</div>
 		
-		<div class="quesTanchu" id="quesTanchu">
-			<div class="layui-form">
-				<div class="layui-form-item">
-				    <label class="layui-form-label">手机号:</label>
-				    <div class="layui-input-block">
-				      <input id="lyPhone" type="text" name="username" lay-verify="required" lay-reqtext="请输入手机号" placeholder="请输入手机号" autocomplete="off" class="layui-input">
-				    </div>
-			  	</div>
-			  	
-			  	<div class="layui-form-item">
-				    <label class="layui-form-label">部门</label>
-				    <div class="layui-input-block">
-				      <select id="lyDept" name="dept" lay-verify="required" lay-reqtext="请选择部门">
-				        <option value=""></option>
-				      </select>
-				    </div>
-				 </div>
-				 
-				 <div class="layui-form-item layui-form-text">
-				    <label class="layui-form-label">问题</label>
-				    <div class="layui-input-block">
-				      <textarea id="lyRemark" placeholder="请输入内容" class="layui-textarea"></textarea>
-				    </div>
-			  	</div>
-			  	
-			  	<div class="layui-form-item" style="text-align: center">
-				    <div class="layui-input-block">
-				      <button type="button" id="quesub" class="layui-btn layui-btn-normal" onclick="saveSub()">立即提交</button>
-				      <button type="button" class="layui-btn layui-btn-primary" onclick="cancel()">取消</button>
-				    </div>
-			  	</div> 
-			  	
-			</div>
-		</div>
+<!--		<div class="quesTanchu" id="quesTanchu">-->
+<!--			<div class="layui-form">-->
+<!--				<div class="layui-form-item">-->
+<!--				    <label class="layui-form-label">手机号:</label>-->
+<!--				    <div class="layui-input-block">-->
+<!--				      <input id="lyPhone" type="text" name="username" lay-verify="required" lay-reqtext="请输入手机号" placeholder="请输入手机号" autocomplete="off" class="layui-input">-->
+<!--				    </div>-->
+<!--			  	</div>-->
+<!--			  	-->
+<!--			  	<div class="layui-form-item">-->
+<!--				    <label class="layui-form-label">部门</label>-->
+<!--				    <div class="layui-input-block">-->
+<!--				      <select id="lyDept" name="dept" lay-verify="required" lay-reqtext="请选择部门">-->
+<!--				        <option value=""></option>-->
+<!--				      </select>-->
+<!--				    </div>-->
+<!--				 </div>-->
+<!--				 -->
+<!--				 <div class="layui-form-item layui-form-text">-->
+<!--				    <label class="layui-form-label">问题</label>-->
+<!--				    <div class="layui-input-block">-->
+<!--				      <textarea id="lyRemark" placeholder="请输入内容" class="layui-textarea"></textarea>-->
+<!--				    </div>-->
+<!--			  	</div>-->
+<!--			  	-->
+<!--			  	<div class="layui-form-item" style="text-align: center">-->
+<!--				    <div class="layui-input-block">-->
+<!--				      <button type="button" id="quesub" class="layui-btn layui-btn-normal" onclick="saveSub()">立即提交</button>-->
+<!--				      <button type="button" class="layui-btn layui-btn-primary" onclick="cancel()">取消</button>-->
+<!--				    </div>-->
+<!--			  	</div> -->
+<!--			  	-->
+<!--			</div>-->
+<!--		</div>-->
 
 
 		<script type="text/javascript">
@@ -244,24 +244,24 @@
 					initPage();
 				});
 				
-				$.ajax({
-					type:'get',
-					url: '/elk/getSubDeptAll',
-					success:function(obj) {
-			          if (obj.data && obj.data.length > 0) {
-			        	  var data = obj.data;
-			        	  var html = '';
-			        	  for (var i = 0; i < data.length; i++) {
-			        		  html += '<option value="'+ data[i] +'">'+ data[i] +'</option>';
-			        	  }
-			        	  $('select[name="dept"]').empty().append(html);
-			        	  form.render('select');
-			          }
-					},
-					error: function(msg) {
-						
-					}
-				})
+				// $.ajax({
+				// 	type:'get',
+				// 	url: '/elk/getSubDeptAll',
+				// 	success:function(obj) {
+			    //       if (obj.data && obj.data.length > 0) {
+			    //     	  var data = obj.data;
+			    //     	  var html = '';
+			    //     	  for (var i = 0; i < data.length; i++) {
+			    //     		  html += '<option value="'+ data[i] +'">'+ data[i] +'</option>';
+			    //     	  }
+			    //     	  $('select[name="dept"]').empty().append(html);
+			    //     	  form.render('select');
+			    //       }
+				// 	},
+				// 	error: function(msg) {
+				//
+				// 	}
+				// })
 				
 
 				sessionStorage.ES_SEARCH = '';

+ 80 - 71
nngkxxdp/src/main/resources/static/zdjc/wj2.html

@@ -144,10 +144,12 @@
 
 				//…
 			});
+			// 定义默认搜索全部主题分类
+			var allSearch = 1;
+			var childTypeData;
 			layui.use('tree', function(){
 				var tree = layui.tree;
 				//渲染
-
 				$.get("/elk/getChildType", function (data) {//请求数据
 					var inst1 = tree.render({
 						elem: '#wjtree',  //绑定元素
@@ -159,25 +161,29 @@
 							}
 							// $('.layui-tree-entry').find('.layui-tree-txt').removeClass('ly-color');
 							$('.layui-tree-set').find('.layui-tree-txt').removeClass('ly-color');
-							// console.log($(obj.elem))
 							if ($(obj.elem).find('.layui-tree-icon').length > 0) {
 								$(obj.elem).children(":first").find('.layui-tree-txt').addClass('ly-color')
 							} else {
 								$(obj.elem).find('.layui-tree-txt').addClass('ly-color')
 							}
-							var flag = false;
-							if (obj.data.children && obj.data.children.length > 0) {
-								flag = true;
-							}
-							// console.log(data.data)
 							// console.log(obj.data); //得到当前点击的节点数据
+							var childData = obj.data.children;
+							if (childData) {
+								childTypeData = '';
+								for (let i = 0; i < childData.length; i++) {
+									childTypeData += childData[i].title + ",";
+								}
+							}else {
+								childTypeData = obj.data.title;
+							}
+							// console.log(childTypeData)
 							var articleType = $($("#articleType").find(".layui-this")[0]).attr("data-type");
 							// console.log($($("#articleType").find(".layui-this")[0]).attr("data-type"))
-							initPage(articleType, obj.data.title, 1);
+							initPage(articleType, childTypeData, allSearch);
 						},
 						accordion: true,//手风琴模式
 					});
-					initPage("","","",data.data);
+					initPage();
 				});
 			});
 			layui.use(['form', 'jquery'], function() {
@@ -212,11 +218,17 @@
 					page = 1;
 					sessionStorage.ES_SEARCH = $('#search-input').val();
 					var articleType = $($("#articleType").find(".layui-this")[0]).attr("data-type")
-					initPage(articleType, $('.ly-color').text(),2);
+					// initPage(articleType, $('.ly-color').text(),2);
+					$('.ly-color').removeClass("ly-color")
+					initPage(articleType, '',2);
 				});
 				$("#articleType li").on('click', function (){
+					// console.log($('.ly-color').text())
+					if ($('.ly-color').text()) {
+						var childType = "";
+					}
 					page = 1;
-					initPage($(this).attr("data-type"), $('.ly-color').text())
+					initPage($(this).attr("data-type"), childType)
 					// console.log($(this).attr("data-type"))
 				})
 				$('#search-input').bind('keyup', function(event) {
@@ -227,7 +239,8 @@
 			    });
 				$('.more').on('click', function() {
 					var articleType = $($("#articleType").find(".layui-this")[0]).attr("data-type")
-					initPage(articleType, $('.ly-color').text());
+					// console.log(childTypeData)
+					initPage(articleType, childTypeData, allSearch);
 				})
 				if (sessionStorage.ES_ORGNAME) {
 					$('.all').text(sessionStorage.ES_ORGNAME);
@@ -271,15 +284,11 @@
 
 			var page = 1;
 			var dataMap = {};
-			function initPage(type, childType, changeCount, treeData) {
+			function initPage(type, childType, changeCount) {
 				var index = layer.load(2);
 				if (childType && childType.indexOf("(") != -1) {
 					childType = childType.split("(")[0];
 				}
-				if (changeCount === 2){
-					childType = '';
-				}
-				console.log(treeData)
 				$.ajax({
 					type:'get',
 					url: '/elk/retrieval',
@@ -306,8 +315,9 @@
 			        	  page++;
 			        	  var data = datas.data;
 						  var groupInfo = datas.groupInfo;
-
+						  var firstCount = datas.firstCount;
 						  var total = 0;
+						  // 计算主题分类总数
 						  for(var key in groupInfo) {
 							  var value1 = groupInfo[key];
 							  if (key === '') {
@@ -316,39 +326,42 @@
 								  total += value1
 							  }
 						  }
-						  // if (treeData) {
-							//   for (let i = 0; i < treeData.length; i++) {
-							// 	  if () {
-							//
-							// 	  }
-							//   }
-						  // }
 						  $("#wjtree").find(".layui-tree-txt").each(function (){
-						  	// 判断如果是点击主题分类栏查询就不改变原有数量统计
-						  	if (changeCount === 1) {
-								$(this).text($(this).text())
-								$(".ti1").text($(".ti1").text())
-							}else {
-								// console.log("===>"+$(this).text())
-								if ($(this).text().indexOf("(") != -1) {
-									if ($(this).children)
-									console.log($(this).data)
-									// $(this).text(($(this).text()).split["("][0])
-									var aa = $(this).text()
-									var cc = aa.split("(")[0]
-									$(this).text(cc)
-								}
-								var value = groupInfo[$(this).text()]
-								if (!value) {
-									value = 0;
-								}
-								$(this).text($(this).text()+"("+value+")")
-								$(".ti1").text("主题分类("+total+")")
-							}
-						  })
+							  // 判断如果是点击主题分类栏查询就不改变原有数量统计
+							  if (changeCount === 1) {
+								  $(this).text($(this).text())
+								  $(".ti1").text($(".ti1").text())
+							  }else {
+								  var classStyle = $(this).prev().attr("class").length;
+								  if (classStyle == 36) {
+									  if ($(this).text().indexOf("(") != -1) {
+										  var aa = $(this).text()
+										  var cc = aa.split("(")[0]
+										  $(this).text(cc)
+									  }
 
-			        	  var html = '';
+									  if (firstCount[$(this).text()]) {
+										  $(this).text($(this).text() +"("+firstCount[$(this).text()]+")")
+									  }else {
+										  $(this).text($(this).text() +"(0)")
+									  }
 
+								  }else {
+									  if ($(this).text().indexOf("(") != -1) {
+										  var aa = $(this).text()
+										  var cc = aa.split("(")[0]
+										  $(this).text(cc)
+									  }
+									  var value = groupInfo[$(this).text()]
+									  if (!value) {
+										  value = 0;
+									  }
+									  $(this).text($(this).text()+"("+value+")")
+								  }
+								  $(".ti1").text("主题分类("+total+")")
+							  }
+						  })
+			        	  var html = '';
 			        	  for (var i = 0; i < data.length; i++) {
 			        	  	// console.log(data[i])
 							  var content = data[i]['_source']['content'];
@@ -379,6 +392,21 @@
 			        	  $('.wrap_text').append(html);
 			          } else {
 			        	  $('.more').addClass('layui-hide');
+						  if (changeCount === 1) {
+							  $(this).text($(this).text())
+							  $(".ti1").text($(".ti1").text())
+						  }else {
+							  // 将主题分类数量全部清零
+							  $("#wjtree").find(".layui-tree-txt").each(function (){
+								  if ($(this).text().indexOf("(") != -1) {
+									  var aa = $(this).text()
+									  var cc = aa.split("(")[0]
+									  $(this).text(cc)
+								  }
+								  $(this).text($(this).text()+"(0)")
+								  $(".ti1").text("主题分类(0)")
+							  })
+						  }
 			        	  layer.msg('没有更多了');
 						  $('.wrap_text').empty();
 			          }
@@ -389,28 +417,7 @@
 					}
 				})
 			}
-			// var groupArr;
-			// function getChildTypeCount(){
-			// 	$.ajax({
-			// 		type:'get',
-			// 		url: '/elk/getChildType',
-			// 		success:function(obj) {
-			// 			if (obj.data) {
-			// 				var data = obj.data;
-			// 				for (let i = 0; i < data.length; i++) {
-			// 					groupArr.push(data[i].title);
-			// 					if (data[i].children) {
-			// 						groupArr.push(data[i].children[i].title);
-			// 					}
-			// 				}
-			// 			}
-			// 		},
-			// 		error: function(msg) {
-			// 			console.log(msg)
-			// 		}
-			// 	})
-			// 	console.log(groupArr)
-			// }
+
 			// 初始化详情页面
 			function initDetail() {
 
@@ -443,11 +450,13 @@
 				} else {
 					sessionStorage.ES_ORGNAME = org;
 				}
+
 				$('.all').attr('title',org);
 				$('.all').text(org);
 				page = 1;
 				var articleType = $($("#articleType").find(".layui-this")[0]).attr("data-type")
-				initPage(articleType, $('.ly-color').text());
+				// $('.ly-color').text()
+				initPage(articleType, '' );
 			}
 			function openWindow(data) {
 				//console.log(dataMap[data])