diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java index 1908f1bdf..89004f32f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/rest/AddressController.java @@ -31,6 +31,12 @@ public class AddressController { return new ResponseEntity<>(addressService.queryAll(whereJson, page), HttpStatus.OK); } + @GetMapping("/queryAddressCodeList") + @Log("查询接口方法地址编码") + public ResponseEntity queryAddressCodeList() { + return new ResponseEntity<>(addressService.queryAddressCodeList(), HttpStatus.OK); + } + @PostMapping @Log("新增接口方法地址") public ResponseEntity create(@Validated @RequestBody AddressDto dto) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/AddressService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/AddressService.java index d5cd4064c..d82ebea6d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/AddressService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/AddressService.java @@ -1,5 +1,6 @@ package org.nl.acs.address.service; +import com.alibaba.fastjson.JSONObject; import org.nl.acs.common.base.PageInfo; import org.nl.acs.common.base.CommonService; import org.nl.acs.address.domain.Address; @@ -146,4 +147,6 @@ public interface AddressService extends CommonService
{ * @throws IOException / */ void download(List dtos, HttpServletResponse response) throws IOException; + + JSONObject queryAddressCodeList(); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java index 49bfbe939..548a77539 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/address/service/impl/AddressServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.acs.address.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -198,4 +199,21 @@ public class AddressServiceImpl extends CommonServiceImpl list = new ArrayList<>(); + List addressDtoList = this.queryAll(new HashMap()); + if (CollectionUtil.isNotEmpty(addressDtoList)){ + for (AddressDto addressDto : addressDtoList) { + JSONObject jo = new JSONObject(); + jo.put("label",addressDto.getMethods_name()); + jo.put("value",addressDto.getMethods_code()); + list.add(jo); + } + } + JSONObject ja1 = new JSONObject(); + ja1.put("content",list); + return ja1; + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java index fbf7b0086..9beeff580 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/rest/LuceneController.java @@ -30,9 +30,16 @@ public class LuceneController { @GetMapping("/getAll") @Log("日志检索") - + //@PreAuthorize("@el.check('task:list')") public ResponseEntity get(@RequestParam Map whereJson, Pageable page) { return new ResponseEntity<>(luceneService.getAll(whereJson, page), HttpStatus.OK); } + + @GetMapping("/getAddressLog") + @Log("接口日志检索") + //@PreAuthorize("@el.check('task:list')") + public ResponseEntity getAddressLog(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(luceneService.getAddressLog(whereJson, page), HttpStatus.OK); + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java index 1eae1d589..759fd5cb9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/LuceneService.java @@ -15,4 +15,6 @@ public interface LuceneService { * @return Map */ Map getAll(Map whereJson, Pageable page); + + Map getAddressLog(Map whereJson, Pageable page); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java index 396718ac5..4dc43c273 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/service/impl/LuceneServiceImpl.java @@ -126,6 +126,100 @@ public class LuceneServiceImpl implements LuceneService { } } + @Override + public Map getAddressLog(Map whereJson, Pageable page) { + //获取要查询的路径,也就是索引所在的位置 + try { + Resource resource = new ClassPathResource("config/application.yml"); + YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); + yamlPropertiesFactoryBean.setResources(resource); + Properties properties = yamlPropertiesFactoryBean.getObject(); + // 获取配置值 + String luceneDir = properties.getProperty("lucene.index.path"); + FSDirectory directory = FSDirectory.open(Paths.get(luceneDir)); + DirectoryReader open = DirectoryReader.open(directory); + IndexSearcher searcher = new IndexSearcher(open); + // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数: + int pageSize = Integer.parseInt(whereJson.get("size").toString());// 每页条数 + int pageNum = Integer.parseInt(whereJson.get("page").toString());// 当前页码 + + BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder(); + //时间范围查询 + String startDate = (String) whereJson.get("begin_time"); + String endDate = (String) whereJson.get("end_time"); + + if (startDate == null){ + Calendar calendar=Calendar.getInstance(); + calendar.set(1970, 0, 1); + startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + }else{ + startDate = getDate(startDate); + } + if (endDate == null){ + endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS"); + } else { + endDate = getDate(endDate); + } + TermRangeQuery termRangeQuery = new TermRangeQuery("logTime", new BytesRef(startDate), new BytesRef(endDate), true, true); + booleanQueryBuilder.add(termRangeQuery, BooleanClause.Occur.MUST); + if (whereJson.get("device_code") != null){ + Query termQuery = new TermQuery(new Term("device_code", (String) whereJson.get("device_code"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("method") != null){ + Query termQuery = new TermQuery(new Term("method", (String) whereJson.get("method"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("status_code") != null){ + Query termQuery = new TermQuery(new Term("status_code", (String) whereJson.get("status_code"))); + booleanQueryBuilder.add(termQuery,BooleanClause.Occur.MUST); + } + if (whereJson.get("requestparam") != null){ + WildcardQuery query = new WildcardQuery(new Term("requestparam", "*"+(String) whereJson.get("requestparam")+"*")); + booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + } + if (whereJson.get("responseparam") != null){ + WildcardQuery query = new WildcardQuery(new Term("responseparam", "*"+(String) whereJson.get("responseparam")+"*")); + booleanQueryBuilder.add(query,BooleanClause.Occur.MUST); + } + if (whereJson.get("blurry") != null) { + WildcardQuery query = new WildcardQuery(new Term("fieldContent", "*"+(String) whereJson.get("blurry")+"*")); + booleanQueryBuilder.add(query, BooleanClause.Occur.MUST); + } + + TopFieldCollector collector = TopFieldCollector.create(new Sort(new SortField("logTime", SortField.Type.LONG,true)), 20000, 0); + searcher.search(booleanQueryBuilder.build(), collector); + TopDocs topDocs = collector.topDocs(pageNum*pageSize, pageSize); + int totalSize = collector.getTotalHits(); + ScoreDoc[] scoreDocs = topDocs.scoreDocs; + + List list = new ArrayList<>(); + for (ScoreDoc scoreDoc : scoreDocs) { + Document doc = open.document(scoreDoc.doc); + JSONObject object = new JSONObject(); + object.put("content",doc.get("fieldContent")); + object.put("device_code",doc.get("device_code")); + object.put("logTime",doc.get("logTime")); + object.put("method",doc.get("method")); + object.put("status_code",doc.get("status_code")); + object.put("requestparam",doc.get("requestparam")); + object.put("responseparam",doc.get("responseparam")); + if(doc.get("fieldContent") != null) { + list.add(object); + } + } + open.close(); + directory.close(); + JSONObject jo = new JSONObject(); + jo.put("content", list); + jo.put("totalElements", totalSize); + return jo; + } catch (Exception e) { + log.error("索引查询为空", e); + throw new NullPointerException("索引查询为空"); + } + } + public static String getDate(String timeString) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");//时间格式 Date date = sdf.parse(timeString); diff --git a/acs2/nladmin-ui/src/api/acs/Address.js b/acs2/nladmin-ui/src/api/acs/Address.js index 381c96c7c..a51f3b07c 100644 --- a/acs2/nladmin-ui/src/api/acs/Address.js +++ b/acs2/nladmin-ui/src/api/acs/Address.js @@ -8,6 +8,13 @@ export function add(data) { }) } +export function queryAddressCodeList() { + return request({ + url: 'api/Address/queryAddressCodeList', + method: 'get' + }) +} + export function del(ids) { return request({ url: 'api/Address/', @@ -24,4 +31,4 @@ export function edit(data) { }) } -export default { add, edit, del } +export default { add, edit, del, queryAddressCodeList } diff --git a/acs2/nladmin-ui/src/views/monitor/logQuery/index.vue b/acs2/nladmin-ui/src/views/monitor/logQuery/index.vue new file mode 100644 index 000000000..fbd64af79 --- /dev/null +++ b/acs2/nladmin-ui/src/views/monitor/logQuery/index.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/monitor/logQuery/search.vue b/acs2/nladmin-ui/src/views/monitor/logQuery/search.vue new file mode 100644 index 000000000..d41f85f6f --- /dev/null +++ b/acs2/nladmin-ui/src/views/monitor/logQuery/search.vue @@ -0,0 +1,125 @@ + + + + + + diff --git a/acs2/nladmin-ui/src/views/monitor/lucene/index.vue b/acs2/nladmin-ui/src/views/monitor/lucene/index.vue index 5ee041b35..a83b8cbdd 100644 --- a/acs2/nladmin-ui/src/views/monitor/lucene/index.vue +++ b/acs2/nladmin-ui/src/views/monitor/lucene/index.vue @@ -59,7 +59,7 @@ export default { page: 0 }, query: { - createTime: [new Date(new Date().setTime(new Date().getTime() - 3600 * 1000)), new Date(new Date().setTime(new Date().getTime() + 3600 * 1000))] + createTime: [new Date(new Date().setTime(new Date().getTime() - 3600 * 1000)), new Date(new Date().setTime(new Date().getTime() + 3600 * 1000))], } }) },