diff --git a/lms/nladmin-system/nlsso-server/pom.xml b/lms/nladmin-system/nlsso-server/pom.xml
index fcebf05..c086101 100644
--- a/lms/nladmin-system/nlsso-server/pom.xml
+++ b/lms/nladmin-system/nlsso-server/pom.xml
@@ -18,13 +18,12 @@
UTF-8
1.8
1.16
- 2.9.2
1.2.70
1.1.22
2.5.0
1.3.1.Final
1.31.0
- 5.7.14
+ 5.8.22
0.11.1
5.9.0
@@ -33,12 +32,25 @@
+
+ org.dromara.dynamictp
+ dynamic-tp-spring-boot-starter-adapter-webserver
+ 1.1.6.1
+
+
com.yomahub
tlog-all-spring-boot-starter
1.5.0
+
+
+
+ org.fusesource.jansi
+ jansi
+ 1.17.1
+
com.microsoft.sqlserver
@@ -178,38 +190,6 @@
${log4jdbc.version}
-
-
- io.springfox
- springfox-swagger2
- ${swagger.version}
-
-
- io.swagger
- swagger-annotations
-
-
- io.swagger
- swagger-models
-
-
-
-
- io.springfox
- springfox-swagger-ui
- ${swagger.version}
-
-
- io.swagger
- swagger-annotations
- 1.5.21
-
-
- io.swagger
- swagger-models
- 1.5.21
-
-
mysql
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
index 5873cbe..485db79 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
@@ -3,12 +3,13 @@ package org.nl;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
import com.alicp.jetcache.anno.config.EnableMethodCache;
-import io.swagger.annotations.Api;
+
import org.mybatis.spring.annotation.MapperScan;
import org.nl.common.annotation.Limit;
import org.nl.config.SpringContextHolder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
@@ -28,8 +29,8 @@ import org.springframework.web.bind.annotation.RestController;
*/
@EnableAsync
@RestController
-@Api(hidden = true)
@SpringBootApplication(exclude = {
+ QuartzAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})
@ServletComponentScan
@@ -48,13 +49,6 @@ public class AppRun {
return new SpringContextHolder();
}
- @Bean
- public ServletWebServerFactory webServerFactory() {
- TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
- fa.addConnectorCustomizers(connector -> connector.setProperty("relaxedQueryChars", "[]{}"));
- return fa;
- }
-
/**
* 访问首页提示
*
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/DeptVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/DeptVo.java
index 0cd2ef5..a673dc3 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/DeptVo.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/DeptVo.java
@@ -15,7 +15,7 @@
*/
package org.nl.common.domain.vo;
-import io.swagger.annotations.ApiModelProperty;
+
import lombok.Getter;
import lombok.Setter;
import org.nl.common.base.BaseDTO;
@@ -41,29 +41,29 @@ public class DeptVo extends BaseDTO implements Serializable {
private String ext_id;
- @ApiModelProperty(value = "排序")
+
private Integer dept_sort;
@NotBlank
- @ApiModelProperty(value = "部门名称")
+
private String name;
- @ApiModelProperty(value = "zh部门名称")
+
private String zh_name;
- @ApiModelProperty(value = "en部门名称")
+
private String en_name;
- @ApiModelProperty(value = "id部门名称")
+
private String in_name;
@NotNull
- @ApiModelProperty(value = "是否启用")
+
private Boolean is_used;
- @ApiModelProperty(value = "上级部门")
+
private Long pid;
- @ApiModelProperty(value = "子节点数目", hidden = true)
+
private Integer sub_count = 0;
/**
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/RoleVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/RoleVo.java
index 88cb9d1..40d3bb2 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/RoleVo.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/vo/RoleVo.java
@@ -15,7 +15,7 @@
*/
package org.nl.common.domain.vo;
-import io.swagger.annotations.ApiModelProperty;
+
import lombok.Getter;
import lombok.Setter;
@@ -31,24 +31,22 @@ import java.io.Serializable;
@Setter
public class RoleVo implements Serializable {
-
- @ApiModelProperty(value = "ID", hidden = true)
private Long role_id;
@NotBlank
- @ApiModelProperty(value = "名称", hidden = true)
+
private String name;
- @ApiModelProperty(value = "级别,数值越小,级别越大")
+
private Integer level = 3;
- @ApiModelProperty(value = "描述")
+
private String remark;
- @ApiModelProperty(value = "描述")
+
private String order_seq;
- @ApiModelProperty(value = "描述")
+
private String is_used;
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/YmlConfigFileUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/YmlConfigFileUtil.java
new file mode 100644
index 0000000..1c351b5
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/YmlConfigFileUtil.java
@@ -0,0 +1,28 @@
+package org.nl.common.utils;
+
+import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+
+import java.util.Properties;
+
+/**
+ * @Author: lyd
+ * @Description: 配置文件获取方法
+ * @Date: 2023/12/6
+ */
+public class YmlConfigFileUtil {
+ public static Properties readConfig(String configFile) {
+ // 创建 Resource 对象
+ Resource resource = new ClassPathResource(configFile);
+
+ // 创建 YamlPropertiesFactoryBean
+ YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean();
+ yamlPropertiesFactoryBean.setResources(resource);
+
+ // 获取 Properties 对象
+ Properties properties = yamlPropertiesFactoryBean.getObject();
+
+ return properties;
+ }
+}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/SwaggerConfig.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/SwaggerConfig.java
deleted file mode 100644
index fa7ae74..0000000
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/SwaggerConfig.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright 2019-2020 Zheng Jie
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.nl.config;
-
-import com.fasterxml.classmate.TypeResolver;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.Ordered;
-import org.springframework.data.domain.Pageable;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.schema.AlternateTypeRule;
-import springfox.documentation.schema.AlternateTypeRuleConvention;
-import springfox.documentation.service.*;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spi.service.contexts.SecurityContext;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.google.common.collect.Lists.newArrayList;
-import static springfox.documentation.schema.AlternateTypeRules.newRule;
-
-/**
- * api页面 /doc.html
- * @author Zheng Jie
- * @date 2018-11-23
- */
-@Configuration
-@EnableSwagger2
-public class SwaggerConfig {
-
- @Value("${sa-token.token-name}")
- private String tokenHeader;
-
- @Value("${sa-token.token-prefix}")
- private String tokenStartWith;
-
- @Value("${swagger.enabled}")
- private Boolean enabled;
-
- @Bean
- @SuppressWarnings("all")
- public Docket createRestApi() {
-// ParameterBuilder ticketPar = new ParameterBuilder();
-//// List pars = new ArrayList<>();
-//// ticketPar.name(tokenHeader).description("token")
-//// .modelRef(new ModelRef("string"))
-//// .parameterType("header")
-//// .defaultValue(tokenStartWith + " ")
-//// .required(true)
-//// .build();
-// pars.add(ticketPar.build());
- return new Docket(DocumentationType.SWAGGER_2)
- .enable(enabled)
- .apiInfo(apiInfo())
- .select()
-// .paths(Predicates.not(PathSelectors.regex("/error.*")))
- .paths(PathSelectors.any())
- .build()
-// .globalOperationParameters(pars)
- //添加登陆认证
- .securitySchemes(securitySchemes())
- .securityContexts(securityContexts());
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .description("一个简单且易上手的 Spring boot 后台管理框架")
- .title("EL-ADMIN 接口文档")
- .version("2.4")
- .build();
- }
-
- private List securitySchemes() {
- //设置请求头信息
- List securitySchemes = new ArrayList<>();
- ApiKey apiKey = new ApiKey(tokenHeader, tokenHeader, "header");
- securitySchemes.add(apiKey);
- return securitySchemes;
- }
-
- private List securityContexts() {
- //设置需要登录认证的路径
- List securityContexts = new ArrayList<>();
- // ^(?!auth).*$ 表示所有包含auth的接口不需要使用securitySchemes即不需要带token
- // ^标识开始 ()里是一子表达式 ?!/auth表示匹配不是/auth的位置,匹配上则添加请求头,注意路径已/开头 .表示任意字符 *表示前面的字符匹配多次 $标识结束
- securityContexts.add(getContextByPath("^(?!/auth).*$"));
- return securityContexts;
- }
-
- private SecurityContext getContextByPath(String pathRegex) {
- return SecurityContext.builder()
- .securityReferences(defaultAuth())
- .forPaths(PathSelectors.regex(pathRegex))
- .build();
- }
-
- private List defaultAuth() {
- List securityReferences = new ArrayList<>();
- AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
- AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
- authorizationScopes[0] = authorizationScope;
- securityReferences.add(new SecurityReference(tokenHeader, authorizationScopes));
- return securityReferences;
- }
-}
-
-/**
- * 将Pageable转换展示在swagger中
- */
-@Configuration
-class SwaggerDataConfig {
-
- @Bean
- public AlternateTypeRuleConvention pageableConvention(final TypeResolver resolver) {
- return new AlternateTypeRuleConvention() {
- @Override
- public int getOrder() {
- return Ordered.HIGHEST_PRECEDENCE;
- }
-
- @Override
- public List rules() {
- return newArrayList(newRule(resolver.resolve(Pageable.class), resolver.resolve(Page.class)));
- }
- };
- }
-
- @ApiModel
- @Data
- private static class Page {
- @ApiModelProperty("页码 (0..N)")
- private Integer page;
-
- @ApiModelProperty("每页显示的数目")
- private Integer size;
-
- @ApiModelProperty("以下列格式排序标准:property[,asc | desc]。 默认排序顺序为升序。 支持多种排序条件:如:id,asc")
- private List sort;
- }
-}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java
index c2fc8e5..e720c1c 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java
@@ -6,41 +6,86 @@ package org.nl.config.lucene;
* @Date: 2023/8/25
*/
public class LogMessageConstant {
- /** */
- public final static String SORT_NAME = "time";
- /** 级别 */
+ /**
+ * 标签
+ */
+ public final static String FIELD_LABEL = "label";
+ /**
+ * 时间
+ */
+ public final static String FIELD_SORT_NAME = "time";
+ /**
+ * IP
+ */
+ public final static String FIELD_IP = "ip";
+ /**
+ * 级别
+ */
public final static String FIELD_LEVEL = "level";
- /** 时间 */
+ /**
+ * 时间
+ */
public final static String FIELD_TIMESTAMP = "timestamp";
- /** 类的限定名 */
+ /**
+ * 类的限定名
+ */
public final static String FIELD_CLASS_NAME = "logger";
- /** 线程名 */
+ /**
+ * 线程名
+ */
public final static String FIELD_THREAD = "thread";
- /** 日志内容 */
+ /**
+ * 日志内容
+ */
public final static String FIELD_MESSAGE = "message";
+ /**
+ * tlogTraceId
+ */
public final static String FIELD_TRACEID = "tlogTraceId";
// 定义颜色值
- /** 文本颜色:黑色 */
+ /**
+ * 文本颜色:黑色
+ */
public final static String COLOR_BLACK = "\u001B[30m";
- /** 文本颜色:红色 */
+ /**
+ * 文本颜色:红色
+ */
public final static String COLOR_RED = "\u001B[31m";
- /** 文本颜色:绿色 */
+ /**
+ * 文本颜色:绿色
+ */
public final static String COLOR_GREEN = "\u001B[32m";
- /** 文本颜色:黄色 */
+ /**
+ * 文本颜色:黄色
+ */
public final static String COLOR_YELLOW = "\u001B[33m";
- /** 文本颜色:蓝色 */
+ /**
+ * 文本颜色:蓝色
+ */
public final static String COLOR_BLUE = "\u001B[34m";
- /** 文本颜色:品红色 */
+ /**
+ * 文本颜色:品红色
+ */
public final static String COLOR_MAGENTA = "\u001B[35m";
- /** 文本颜色:青色 */
+ /**
+ * 文本颜色:青色
+ */
public final static String COLOR_CYAN = "\u001B[36m";
- /** 文本颜色:白色 */
+ /**
+ * 文本颜色:白色
+ */
public final static String COLOR_WHITE = "\u001B[37m";
- /** 文本颜色重置 */
+ /**
+ * 文本颜色重置
+ */
public final static String COLOR_RESET = "\u001B[0m";
- /** 背景颜色:黄色 */
+ /**
+ * 背景颜色:黄色
+ */
public final static String BACKGROUND_YELLOW = "\u001B[43m";
- /** 索引路径 */
+ /**
+ * 索引路径
+ */
public final static String INDEX_DIR = "D:\\lucene\\index";
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java
index 0909ac0..d342c3a 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java
@@ -16,11 +16,17 @@ import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
+import org.nl.common.utils.YmlConfigFileUtil;
import org.wltea.analyzer.lucene.IKAnalyzer;
import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
import java.nio.file.Paths;
import java.util.Map;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class LuceneAppender extends AppenderBase {
@@ -32,7 +38,12 @@ public class LuceneAppender extends AppenderBase {
public void start() {
super.start();
try {
- index = FSDirectory.open(Paths.get(LogMessageConstant.INDEX_DIR));
+ // 读取配置文件
+ Properties properties = YmlConfigFileUtil.readConfig("config/application.yml");
+
+ // 获取配置值
+ String luceneDir = properties.getProperty("lucene.index.path");
+ index = FSDirectory.open(Paths.get(luceneDir));
} catch (IOException e) {
e.printStackTrace();
}
@@ -54,18 +65,43 @@ public class LuceneAppender extends AppenderBase {
Map mdcPropertyMap = event.getMDCPropertyMap();
Document doc = new Document();
long timeStamp = event.getTimeStamp();
+ // 获取本机的IP地址
+ String ipAddress = "-";
+ try {
+ ipAddress = InetAddress.getLocalHost().getHostAddress();
+ } catch (UnknownHostException e) {
+ throw new RuntimeException(e);
+ }
String formattedDateTime = DateUtil.format(new java.util.Date(timeStamp), "yyyy-MM-dd HH:mm:ss.SSS");
- doc.add(new LongPoint(LogMessageConstant.SORT_NAME, timeStamp));
- doc.add(new NumericDocValuesField(LogMessageConstant.SORT_NAME, timeStamp));
+ doc.add(new LongPoint(LogMessageConstant.FIELD_SORT_NAME, timeStamp));
+ doc.add(new NumericDocValuesField(LogMessageConstant.FIELD_SORT_NAME, timeStamp));
doc.add(new StringField(LogMessageConstant.FIELD_LEVEL, event.getLevel().toString(), Field.Store.YES));
- doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, formattedDateTime,Field.Store.YES));
+ doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, formattedDateTime, Field.Store.YES));
doc.add(new StoredField(LogMessageConstant.FIELD_CLASS_NAME, event.getLoggerName()));
+ doc.add(new StoredField(LogMessageConstant.FIELD_IP, ipAddress));
doc.add(new StoredField(LogMessageConstant.FIELD_THREAD, event.getThreadName()));
if (ObjectUtil.isNotEmpty(mdcPropertyMap) && ObjectUtil.isNotEmpty(mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID))) {
String traceId = mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID);
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, traceId, Field.Store.YES));
+ doc.add(new StringField(LogMessageConstant.FIELD_LABEL, ObjectUtil.isNotEmpty(mdcPropertyMap.get("tag_name"))
+ ? mdcPropertyMap.get("tag_name") : "-", Field.Store.YES));
} else {
- doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, "无生成链路ID", Field.Store.YES));
+ // 定义正则表达式,匹配17位数字
+ String regex = "\\d{17}";
+ // 创建 Pattern 对象
+ Pattern pattern = Pattern.compile(regex);
+ // 创建 Matcher 对象
+ Matcher matcher = pattern.matcher(message);
+ String matchedNumber = null;
+ // 查找匹配的数字
+ while (matcher.find()) {
+ matchedNumber = matcher.group();
+ }
+ if (ObjectUtil.isNotEmpty(matchedNumber)) {
+ doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, matchedNumber, Field.Store.YES));
+ } else {
+ doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, "无生成链路ID", Field.Store.YES));
+ }
}
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, message, Field.Store.YES));
try {
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java
index ea0bb97..2e51775 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java
@@ -7,8 +7,9 @@ import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.LongPoint;
-import org.apache.lucene.index.*;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Term;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.*;
import org.apache.lucene.store.Directory;
@@ -26,12 +27,7 @@ import java.time.temporal.ChronoUnit;
import java.util.*;
/**
- *
* lucene查询器
- *
- *
- * @author generator
- * @since 2023-11-16
*/
@Slf4j
public class Searcher {
@@ -45,9 +41,7 @@ public class Searcher {
//标准分词器,会自动去掉空格啊,is a the等单词
Analyzer analyzer = new IKAnalyzer(true);
- /*
- * 记录索引开始时间
- */
+ // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数:
// 每页条数
int pageSize = Integer.parseInt(whereJson.get("size").toString());
// 当前页码
@@ -57,59 +51,65 @@ public class Searcher {
// 当前页的结束条数(不能包含)
int end = start + pageSize;
// 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序
- Sort sort = new Sort(new SortField(LogMessageConstant.SORT_NAME, SortField.Type.LONG,true));
+ Sort sort = new Sort(new SortField(LogMessageConstant.FIELD_SORT_NAME, SortField.Type.LONG, true));
TopDocs docs = null;
BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
//时间范围查询
String startDate = whereJson.getString("begin_time");
String endDate = whereJson.getString("end_time");
- Calendar calendar=Calendar.getInstance();
+ Calendar calendar = Calendar.getInstance();
calendar.set(1970, 0, 1);
- if (startDate == null){
- startDate = DateUtil.format(calendar.getTime(),"yyyy-MM-dd HH:mm:ss.SSS");
- }else{
+ if (startDate == null) {
+ startDate = DateUtil.format(calendar.getTime(), "yyyy-MM-dd HH:mm:ss.SSS");
+ } else {
startDate = LuceneIndexWriter.getDate(startDate);
}
- if (endDate == null){
- endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS");
+ if (endDate == null) {
+ endDate = DateUtil.format(new DateTime(), "yyyy-MM-dd HH:mm:ss.SSS");
} else {
endDate = LuceneIndexWriter.getDate(endDate);
}
// 字段之间的与或非关系,MUST表示and,MUST_NOT表示not,SHOULD表示or,有几个fields就必须有几个clauses
TermRangeQuery termRangeQuery = new TermRangeQuery("timestamp", new BytesRef(startDate),
new BytesRef(endDate), true, true);
- booleanQueryBuilder.add(termRangeQuery,BooleanClause.Occur.MUST);
- if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_MESSAGE))){
+ booleanQueryBuilder.add(termRangeQuery, BooleanClause.Occur.MUST);
+ if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_MESSAGE))) {
//查询解析器
QueryParser queryParser = new QueryParser("message", analyzer);
- Query query = queryParser.parse(whereJson.getString("message"));
+ Query query = queryParser.parse("message:" + whereJson.getString("message") + "~");
booleanQueryBuilder.add(query, BooleanClause.Occur.MUST);
}
- if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_TRACEID))){
+ if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_TRACEID))) {
//查询解析器
TermQuery termQuery = new TermQuery(new Term(LogMessageConstant.FIELD_TRACEID,
whereJson.getString(LogMessageConstant.FIELD_TRACEID).trim()));
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
}
- if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_LEVEL))){
+ if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_LABEL))) {
+ //查询解析器
+ TermQuery termQuery = new TermQuery(new Term(LogMessageConstant.FIELD_LABEL,
+ whereJson.getString(LogMessageConstant.FIELD_LABEL).trim()));
+ booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
+ }
+ if (ObjectUtil.isNotEmpty(whereJson.get(LogMessageConstant.FIELD_LEVEL))) {
//查询解析器
TermQuery termQuery = new TermQuery(new Term(LogMessageConstant.FIELD_LEVEL,
whereJson.get(LogMessageConstant.FIELD_LEVEL).toString()));
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
}
- docs = searcher.search(booleanQueryBuilder.build(), end,sort);
- //记录索引时间
List list = new ArrayList<>();
+ TopFieldCollector collector = TopFieldCollector.create(sort, 20000, 0);
+ searcher.search(booleanQueryBuilder.build(), collector);
+ docs = collector.topDocs(pageNum*pageSize, pageSize);
ScoreDoc[] scoreDocs = docs.scoreDocs;
- if (end > docs.totalHits.value) end = (int) docs.totalHits.value;
+ int totalSize = collector.getTotalHits();
- for (int i = start; i < end; i++) {
- ScoreDoc scoreDoc = scoreDocs[i];
+ for (ScoreDoc scoreDoc : scoreDocs) {
Document doc = reader.document(scoreDoc.doc);
- String logInfo = LogMessageConstant.COLOR_YELLOW + doc.get(LogMessageConstant.FIELD_TRACEID) +
+ String logInfo = LogMessageConstant.COLOR_RED + doc.get(LogMessageConstant.FIELD_TIMESTAMP) +
LogMessageConstant.COLOR_RESET + " - " +
- LogMessageConstant.COLOR_RED + doc.get(LogMessageConstant.FIELD_TIMESTAMP) +
+ LogMessageConstant.COLOR_BLUE + doc.get(LogMessageConstant.FIELD_IP) +
LogMessageConstant.COLOR_RESET + " - " +
LogMessageConstant.COLOR_GREEN + "[" + doc.get(LogMessageConstant.FIELD_THREAD) + "]" +
LogMessageConstant.COLOR_RESET + " - " +
@@ -123,7 +123,7 @@ public class Searcher {
reader.close();
JSONObject jo = new JSONObject();
jo.put("content", list);
- jo.put("totalElements", docs.totalHits.value);
+ jo.put("totalElements", totalSize);
return jo;
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java
index bdfe2db..3728f69 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java
@@ -2,8 +2,8 @@ package org.nl.system.controller.coderule;
import cn.dev33.satoken.annotation.SaCheckPermission;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+
+
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
@@ -28,13 +28,12 @@ import java.util.Set;
* @since 2022-12-19
*/
@RestController
-@Api(tags = "系统:编码生成")
@RequestMapping("/api/genCode")
public class SysCodeRuleController {
@Autowired
private ISysCodeRuleService codeRuleService;
- @ApiOperation("查询编码")
+
@GetMapping
@SaCheckPermission("genCode:list")
public ResponseEntity