keys = new HashSet<>();
- for (Long id : ids) {
+ /* for (String id : ids) {
keys.addAll(redisTemplate.keys(new StringBuffer(prefix).append(id).toString()));
- }
+ }*/
long count = redisTemplate.delete(keys);
// 此处提示可自行删除
log.debug("--------------------------------------------");
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/RequestHolder.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/RequestHolder.java
new file mode 100644
index 0000000..27352b9
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/RequestHolder.java
@@ -0,0 +1,34 @@
+/*
+ * 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.common.utils;
+
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Objects;
+
+/**
+ * 获取 HttpServletRequest
+ * @author Zheng Jie
+ * @date 2018-11-24
+ */
+public class RequestHolder {
+
+ public static HttpServletRequest getHttpServletRequest() {
+ return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SecurityUtils.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SecurityUtils.java
index ba78697..b434369 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SecurityUtils.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SecurityUtils.java
@@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
-import org.nl.system.service.user.dto.CurrentUser;
+import org.nl.common.utils.dto.CurrentUser;
import java.util.List;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/InetAddUtil.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java
old mode 100755
new mode 100644
similarity index 75%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/InetAddUtil.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java
index 0e81a45..f3f5e42
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/InetAddUtil.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/StringUtils.java
@@ -1,15 +1,30 @@
+/*
+ * 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.common.utils;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
+import lombok.extern.slf4j.Slf4j;
import net.dreamlu.mica.ip2region.core.Ip2regionSearcher;
import net.dreamlu.mica.ip2region.core.IpInfo;
import nl.basjes.parse.useragent.UserAgent;
import nl.basjes.parse.useragent.UserAgentAnalyzer;
-import org.nl.config.other.ElAdminProperties;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.nl.config.ElAdminProperties;
+import org.nl.config.SpringContextHolder;
import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
@@ -20,75 +35,20 @@ import java.util.Date;
import java.util.Enumeration;
/**
- *
- * @author hengyunabc 2020-10-27
- *
+ * @author Zheng Jie
+ * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类
*/
-public class InetAddUtil {
-
- static {
- System.out.println("InetAddressUtil loading");
- }
-
- /**
- * 用于IP定位转换
- */
- public static final String REGION = "内网IP|内网IP";
- /**
- * win 系统
- */
- public static final String WIN = "win";
-
- /**
- * mac 系统
- */
- public static final String MAC = "mac";
-
- /**
- * 常用接口
- */
- public static class Url {
- // IP归属地查询
- public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp?ip=%s&json=true";
- }
+@Slf4j
+public class StringUtils {
private static final char SEPARATOR = '_';
private static final String UNKNOWN = "unknown";
- private final static Logger logger = LoggerFactory.getLogger(InetAddUtil.class);
/**
- * 获得本机IP。
- *
- * 在超过一块网卡时会有问题,因为这里每次都只是取了第一块网卡绑定的IP地址
+ * 注入bean
*/
- public static String getInetAddress() {
- try {
- Enumeration interfaces = NetworkInterface.getNetworkInterfaces();
- InetAddress address = null;
- while (interfaces.hasMoreElements()) {
- NetworkInterface ni = interfaces.nextElement();
- Enumeration addresses = ni.getInetAddresses();
- while (addresses.hasMoreElements()) {
- address = addresses.nextElement();
- if (isValidAddress(address)) {
- return address.getHostAddress();
- }
- }
- }
- logger.warn("Can not get the server IP address");
- return null;
- } catch (Throwable t) {
- logger.error("Can not get the server IP address", t);
- return null;
- }
- }
+ private final static Ip2regionSearcher IP_SEARCHER = SpringContextHolder.getBean(Ip2regionSearcher.class);
- public static boolean isValidAddress(InetAddress address) {
- return address != null && !address.isLoopbackAddress() // filter 127.x.x.x
- && !address.isAnyLocalAddress() // filter 0.0.0.0
- && !address.isLinkLocalAddress() // filter 169.254.0.0/16
- && !address.getHostAddress().contains(":");// filter IPv6
- }
private static final UserAgentAnalyzer USER_AGENT_ANALYZER = UserAgentAnalyzer
.newBuilder()
@@ -211,7 +171,7 @@ public class InetAddUtil {
try {
ip = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
- e.printStackTrace();
+ log.error(e.getMessage(), e);
}
}
return ip;
@@ -222,11 +182,11 @@ public class InetAddUtil {
*/
public static String getCityInfo(String ip) {
if (ElAdminProperties.ipLocal) {
- // return getLocalCityInfo(ip);
+ // return getLocalCityInfo(ip);
return "局域网";
} else {
return "局域网";
- // return getHttpCityInfo(ip);
+ // return getHttpCityInfo(ip);
}
}
@@ -234,7 +194,7 @@ public class InetAddUtil {
* 根据ip获取详细地址
*/
public static String getHttpCityInfo(String ip) {
- String api = String.format(InetAddUtil.Url.IP_URL, ip);
+ String api = String.format(ElAdminConstant.Url.IP_URL, ip);
JSONObject object = JSONUtil.parseObj(HttpUtil.get(api));
return object.get("addr", String.class);
}
@@ -243,7 +203,7 @@ public class InetAddUtil {
* 根据ip获取详细地址
*/
public static String getLocalCityInfo(String ip) {
- IpInfo ipInfo = SpringContextHolder.getBean(Ip2regionSearcher.class).memorySearch(ip);
+ IpInfo ipInfo = IP_SEARCHER.memorySearch(ip);
if(ipInfo != null){
return ipInfo.getAddress();
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/TranslatorUtil.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/TranslatorUtil.java
new file mode 100644
index 0000000..7947e5b
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/TranslatorUtil.java
@@ -0,0 +1,67 @@
+/*
+ * 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.common.utils;
+
+import cn.hutool.json.JSONArray;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+
+/**
+ * @author Zheng Jie
+ * 翻译工具类
+ */
+public class TranslatorUtil {
+
+ public static String translate(String word){
+ try {
+ String url = "https://translate.googleapis.com/translate_a/single?" +
+ "client=gtx&" +
+ "sl=en" +
+ "&tl=zh-CN" +
+ "&dt=t&q=" + URLEncoder.encode(word, "UTF-8");
+
+ URL obj = new URL(url);
+ HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+ con.setRequestProperty("User-Agent", "Mozilla/5.0");
+
+ BufferedReader in = new BufferedReader(
+ new InputStreamReader(con.getInputStream()));
+ String inputLine;
+ StringBuilder response = new StringBuilder();
+
+ while ((inputLine = in.readLine()) != null) {
+ response.append(inputLine);
+ }
+ in.close();
+ return parseResult(response.toString());
+ }catch (Exception e){
+ return word;
+ }
+ }
+
+ private static String parseResult(String inputJson){
+ JSONArray jsonArray2 = (JSONArray) new JSONArray(inputJson).get(0);
+ StringBuilder result = new StringBuilder();
+ for (Object o : jsonArray2) {
+ result.append(((JSONArray) o).get(0).toString());
+ }
+ return result.toString();
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/ValidationUtil.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/ValidationUtil.java
new file mode 100644
index 0000000..7b9d80a
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/ValidationUtil.java
@@ -0,0 +1,45 @@
+/*
+ * 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.common.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator;
+import org.nl.common.exception.BadRequestException;
+
+/**
+ * 验证工具
+ * @author Zheng Jie
+ * @date 2018-11-23
+ */
+public class ValidationUtil{
+
+ /**
+ * 验证空
+ */
+ public static void isNull(Object obj, String entity, String parameter , Object value){
+ if(ObjectUtil.isNull(obj)){
+ String msg = entity + " 不存在: "+ parameter +" is "+ value;
+ throw new BadRequestException(msg);
+ }
+ }
+
+ /**
+ * 验证是否为邮箱
+ */
+ public static boolean isEmail(String email) {
+ return new EmailValidator().isValid(email, null);
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dto/CurrentUser.java b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/dto/CurrentUser.java
similarity index 90%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dto/CurrentUser.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/dto/CurrentUser.java
index 02d6e5f..440752f 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/user/dto/CurrentUser.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/dto/CurrentUser.java
@@ -1,4 +1,4 @@
-package org.nl.system.service.user.dto;
+package org.nl.common.utils.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@@ -28,6 +28,4 @@ public class CurrentUser implements Serializable {
private SysUser user;
private List permissions = new ArrayList<>();
-
- private String domain;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/AuditorConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/AuditorConfig.java
similarity index 97%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/AuditorConfig.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/AuditorConfig.java
index 09450f3..7ce0e4a 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/AuditorConfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/AuditorConfig.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import org.springframework.data.domain.AuditorAware;
import org.springframework.stereotype.Component;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/CallBack.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/CallBack.java
similarity index 95%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/CallBack.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/CallBack.java
index 3e14271..c50349f 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/domain/CallBack.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/CallBack.java
@@ -1,4 +1,4 @@
-/*
+package org.nl.config;/*
* Copyright 2019-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,12 +14,11 @@
* limitations under the License.
*/
-package org.nl.common.domain;
-
/**
* @author: liaojinlong
* @date: 2020/6/9 17:02
* @since: 1.0
+ * @see {@link SpringContextHolder}
* 针对某些初始化方法,在SpringContextHolder 初始化前时,
* 可提交一个 提交回调任务。
* 在SpringContextHolder 初始化后,进行回调使用
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/DruidFilter.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/DruidFilter.java
deleted file mode 100644
index 9e483c8..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/DruidFilter.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package org.nl.config;
-
-import com.alibaba.druid.filter.FilterChain;
-import com.alibaba.druid.filter.FilterEventAdapter;
-import com.alibaba.druid.proxy.jdbc.JdbcParameter;
-import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy;
-import com.alibaba.druid.proxy.jdbc.ResultSetProxy;
-import com.alibaba.druid.proxy.jdbc.StatementProxy;
-import com.alibaba.druid.sql.SQLUtils;
-import com.alibaba.druid.util.JdbcUtils;
-import com.mysql.cj.jdbc.result.ResultSetImpl;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.MDC;
-
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/*
- * @author ZZQ
- * @Date 2023/2/10 11:27 上午
- */
-@Slf4j
-public class DruidFilter extends FilterEventAdapter {
-
- @Override
- public int preparedStatement_executeUpdate(FilterChain chain, PreparedStatementProxy statement) throws SQLException {
-
- return super.preparedStatement_executeUpdate(chain, statement);
- }
-
- @Override
- public int statement_executeUpdate(FilterChain chain, StatementProxy statement, String sql) throws SQLException {
-
- return super.statement_executeUpdate(chain, statement, sql);
- }
-
- @Override
- protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
- String traceId = MDC.get("traceId");
- int size = statement.getParametersSize();
- String executeSql = sql;
- int count = 0;
- try {
- count=statement.getUpdateCount();
- }catch (Exception ex){ }
- if (StringUtils.isNotEmpty(traceId) && count>0) {
- if (size > 0) {
- Collection values = statement.getParameters().values();
- List params = new ArrayList<>();
- for (JdbcParameter value : values) {
- params.add(value.getValue());
- }
- executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params);
- }
- log.info("[----SQL----][update][ SQL: {} ]", executeSql);
- }
- super.statementExecuteAfter(statement, sql, result);
- }
- @Override
- public ResultSetProxy statement_getResultSet(FilterChain chain, StatementProxy statement) throws SQLException {
- ResultSetProxy rs = super.statement_getResultSet(chain, statement);
- String executeSql = statement.getLastExecuteSql();
- String traceId = MDC.get("traceId");
- if (StringUtils.isNotEmpty(traceId)){
- int result = 0;
- if (rs != null) {
- ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
- result = rss.getRows().size();
- }
- try {
- int size = statement.getParametersSize();
- if (size>0){
- Collection values = statement.getParameters().values();
- List params = new ArrayList<>();
- for (JdbcParameter value : values) {
- params.add(value.getValue());
- }
- executeSql = SQLUtils.format(executeSql, JdbcUtils.MYSQL, params);
- }
- }catch (Exception ex){
- log.warn("[-SQL解析异常-][{}]",ex.getMessage());
- }
- log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql);
- }
- return rs;
- }
-
-
-
-
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/DtpConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/DtpConfig.java
deleted file mode 100644
index d1597e7..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/DtpConfig.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.nl.config;
-
-import com.dtp.core.support.ThreadPoolBuilder;
-import com.dtp.core.support.ThreadPoolCreator;
-import com.dtp.core.thread.DtpExecutor;
-import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author ldjun
- * @version 1.0
- * @date 2023年01月13日 14:30
- * @desc desc
- */
-@Configuration
-public class DtpConfig {
-
- /**
- * 通过{@link ThreadPoolCreator} 快速创建一些简单配置的动态线程池
- * tips: 建议直接在配置中心配置就行,不用@Bean声明
- *
- * @return 线程池实例
- */
- @Bean
- public DtpExecutor dtpExecutor1() {
-
- return ThreadPoolBuilder.newBuilder()
- .threadPoolName("dtpExecutor1")
- .corePoolSize(1)
- .maximumPoolSize(1)
- .queueCapacity(1)
- .ioIntensive(true)
- .buildDynamic();
- }
- @Bean
- public Object tomcatServletWebServerFactory(ServletWebServerFactory webServerFactory) {
- return new Object();
- }
-
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/ElAdminProperties.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/ElAdminProperties.java
similarity index 97%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/ElAdminProperties.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/ElAdminProperties.java
index 86db8a6..b407c24 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/ElAdminProperties.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/ElAdminProperties.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/ElPermissionConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/ElPermissionConfig.java
similarity index 97%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/ElPermissionConfig.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/ElPermissionConfig.java
index 121c389..4abc37f 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/ElPermissionConfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/ElPermissionConfig.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import org.springframework.stereotype.Service;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/FileProperties.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/FileProperties.java
similarity index 87%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/FileProperties.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/FileProperties.java
index 5e783a7..0d85a82 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/FileProperties.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/FileProperties.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import lombok.Data;
-import org.nl.common.utils.InetAddUtil;
+import org.nl.common.utils.ElAdminConstant;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@@ -42,9 +42,9 @@ public class FileProperties {
public ElPath getPath(){
String os = System.getProperty("os.name");
- if(os.toLowerCase().startsWith(InetAddUtil.WIN)) {
+ if(os.toLowerCase().startsWith(ElAdminConstant.WIN)) {
return windows;
- } else if(os.toLowerCase().startsWith(InetAddUtil.MAC)){
+ } else if(os.toLowerCase().startsWith(ElAdminConstant.MAC)){
return mac;
}
return linux;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/IdUtil.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/IdUtil.java
similarity index 89%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/IdUtil.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/IdUtil.java
index 41f47c0..5980d3a 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/IdUtil.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/IdUtil.java
@@ -1,4 +1,4 @@
-package org.nl.common.utils;
+package org.nl.config;
public class IdUtil {
public static Long getLongId() {
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/MapOf.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/MapOf.java
similarity index 71%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/MapOf.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/MapOf.java
index fc8dc01..7ecd4bf 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/MapOf.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/MapOf.java
@@ -1,8 +1,12 @@
-package org.nl.common.utils;
+package org.nl.config;
+import org.checkerframework.checker.units.qual.K;
+import org.springframework.util.CollectionUtils;
+
import java.io.Serializable;
import java.util.HashMap;
+import java.util.Iterator;
/*
* @author ZZQ
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/MultipartConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/MultipartConfig.java
index 086a5a6..1afed12 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/MultipartConfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/MultipartConfig.java
@@ -16,7 +16,7 @@ import java.io.File;
public class MultipartConfig {
/**
- * 文件上传临时路 径
+ * 文件上传临时路径
*/
@Bean
MultipartConfigElement multipartConfigElement() {
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/RedisConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/RedisConfig.java
similarity index 99%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/RedisConfig.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/RedisConfig.java
index f2b6fad..e0785bb 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/RedisConfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/RedisConfig.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/RsaProperties.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/RsaProperties.java
similarity index 97%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/RsaProperties.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/RsaProperties.java
index 68c1fbc..399a47a 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/RsaProperties.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/RsaProperties.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SpringContextHolder.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/SpringContextHolder.java
similarity index 98%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SpringContextHolder.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/SpringContextHolder.java
index d449662..3a2ae32 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/SpringContextHolder.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/SpringContextHolder.java
@@ -1,4 +1,4 @@
-/*
+package org.nl.config;/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,16 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.common.utils;
import lombok.extern.slf4j.Slf4j;
-import org.nl.common.domain.CallBack;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.env.Environment;
-
import java.util.ArrayList;
import java.util.List;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/SwaggerConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/SwaggerConfig.java
similarity index 99%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/other/SwaggerConfig.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/SwaggerConfig.java
index f2a83e9..fa7ae74 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/other/SwaggerConfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/SwaggerConfig.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.nl.config.other;
+package org.nl.config;
import com.fasterxml.classmate.TypeResolver;
import io.swagger.annotations.ApiModel;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/WebSocketConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/WebSocketConfig.java
index ec08886..28a447c 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/WebSocketConfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/WebSocketConfig.java
@@ -23,7 +23,7 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
* @author ZhangHouYing
* @date 2019-08-24 15:44
*/
-//@Configuration
+@Configuration
public class WebSocketConfig {
@Bean
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/ArthasConstants.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/ArthasConstants.java
deleted file mode 100755
index 33dd978..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/ArthasConstants.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.nl.config.arthas;
-
-/**
- * 常量
- */
-public class ArthasConstants {
- /**
- * local address in VM communication
- *
- * @see io.netty.channel.local.LocalAddress
- * @see io.netty.channel.local.LocalChannel
- */
- public static final String NETTY_LOCAL_ADDRESS = "arthas-netty-LocalAddress";
-
- public static final int MAX_HTTP_CONTENT_LENGTH = 1024 * 1024 * 8;
-
- public static final String ARTHAS_OUTPUT = "arthas-output";
-
- public static final String APP_NAME = "app-name";
-
- public static final String PROJECT_NAME = "project.name";
- public static final String SPRING_APPLICATION_NAME = "spring.application.name";
-
- public static final int TELNET_PORT = 3658;
-
- public static final String DEFAULT_WEBSOCKET_PATH = "/ws";
- public static final int WEBSOCKET_IDLE_SECONDS = 60;
-
- /**
- * HTTP cookie id
- */
- public static final String ASESSION_KEY = "asession";
-
- public static final String DEFAULT_USERNAME = "arthas";
- public static final String SUBJECT_KEY = "subject";
- public static final String AUTH = "auth";
- public static final String USERNAME_KEY = "username";
- public static final String PASSWORD_KEY = "password";
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/TunnelClusterStoreConfiguration.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/TunnelClusterStoreConfiguration.java
deleted file mode 100755
index dd26933..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/TunnelClusterStoreConfiguration.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.nl.config.arthas;
-
-import org.nl.monitor.server.arthas.cluster.InMemoryClusterStore;
-import org.nl.monitor.server.arthas.cluster.RedisTunnelClusterStore;
-import org.nl.monitor.server.arthas.cluster.TunnelClusterStore;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
-import org.springframework.cache.Cache;
-import org.springframework.cache.CacheManager;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-import org.springframework.data.redis.core.StringRedisTemplate;
-
-/**
- *
- * @author hengyunabc 2020-10-29
- *
- */
-@Configuration
-@AutoConfigureAfter(value = { RedisAutoConfiguration.class, CacheAutoConfiguration.class })
-@Import(TunnelClusterStoreConfiguration.RedisTunnelClusterStoreConfiguration.class)
-public class TunnelClusterStoreConfiguration {
-
- @Bean
- @ConditionalOnMissingBean
- @ConditionalOnProperty(name = "spring.cache.type", havingValue = "caffeine")
- public TunnelClusterStore tunnelClusterStore(@Autowired CacheManager cacheManager) {
- Cache inMemoryClusterCache = cacheManager.getCache("inMemoryClusterCache");
- InMemoryClusterStore inMemoryClusterStore = new InMemoryClusterStore();
- inMemoryClusterStore.setCache(inMemoryClusterCache);
- return inMemoryClusterStore;
- }
- static class RedisTunnelClusterStoreConfiguration {
- @Bean
- // @ConditionalOnBean(StringRedisTemplate.class)
- @ConditionalOnClass(StringRedisTemplate.class)
- @ConditionalOnProperty("spring.redis.host")
- @ConditionalOnMissingBean
- public TunnelClusterStore tunnelClusterStore(@Autowired StringRedisTemplate redisTemplate) {
- RedisTunnelClusterStore redisTunnelClusterStore = new RedisTunnelClusterStore();
- redisTunnelClusterStore.setRedisTemplate(redisTemplate);
- return redisTunnelClusterStore;
- }
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/TunnelServerConfiguration.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/TunnelServerConfiguration.java
deleted file mode 100755
index b77e7c3..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/TunnelServerConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.nl.config.arthas;
-
-import com.alibaba.arthas.spring.ArthasProperties;
-import org.nl.common.utils.InetAddUtil;
-import org.nl.monitor.server.arthas.TunnelServer;
-import org.nl.monitor.server.arthas.cluster.TunnelClusterStore;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- *
- * @author hengyunabc 2020-10-27
- *
- */
-@Configuration
-@AutoConfigureAfter(RedisAutoConfiguration.class)
-public class TunnelServerConfiguration {
-
- @Autowired
- ArthasProperties arthasProperties;
-
- @Bean(initMethod = "start", destroyMethod = "stop")
- @ConditionalOnMissingBean
- public TunnelServer tunnelServer(@Autowired(required = false) TunnelClusterStore tunnelClusterStore) {
- TunnelServer tunnelServer = new TunnelServer();
-
- tunnelServer.setHost(arthasProperties.getIp());
- tunnelServer.setPort(arthasProperties.getHttpPort());
- tunnelServer.setSsl(false);
- tunnelServer.setPath(ArthasConstants.DEFAULT_WEBSOCKET_PATH);
- tunnelServer.setClientConnectHost(InetAddUtil.getInetAddress());
- if (tunnelClusterStore != null) {
- tunnelServer.setTunnelClusterStore(tunnelClusterStore);
- }
- return tunnelServer;
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/endpoint/ArthasEndPointAutoconfiguration.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/endpoint/ArthasEndPointAutoconfiguration.java
deleted file mode 100755
index 5185cb3..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/endpoint/ArthasEndPointAutoconfiguration.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.nl.config.arthas.endpoint;
-
-import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-
-//@EnableConfigurationProperties(TunnelProperties.class)
-//@Configuration
-public class ArthasEndPointAutoconfiguration {
-
- @ConditionalOnMissingBean
- @Bean
- @ConditionalOnAvailableEndpoint
- public ArthasEndpoint arthasEndPoint() {
- return new ArthasEndpoint();
- }
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/endpoint/ArthasEndpoint.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/endpoint/ArthasEndpoint.java
deleted file mode 100755
index 62d695b..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/endpoint/ArthasEndpoint.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.nl.config.arthas.endpoint;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.alibaba.arthas.spring.ArthasProperties;
-import org.nl.monitor.server.arthas.TunnelServer;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
-
-
-//@Endpoint(id = "arthas")
-public class ArthasEndpoint {
-
- @Autowired
- ArthasProperties arthasProperties;
- @Autowired
- TunnelServer tunnelServer;
-
- @ReadOperation
- public Map invoke() {
- Map result = new HashMap();
-
- result.put("version", this.getClass().getPackage().getImplementationVersion());
- result.put("properties", arthasProperties);
-
- result.put("agents", tunnelServer.getAgentInfoMap());
- result.put("clientConnections", tunnelServer.getClientConnectionInfoMap());
-
- return result;
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/RelayHandler.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/RelayHandler.java
deleted file mode 100755
index 29dbcc4..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/RelayHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.nl.config.arthas.netty;
-
-import io.netty.buffer.Unpooled;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFutureListener;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.ChannelInboundHandlerAdapter;
-import io.netty.util.ReferenceCountUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class RelayHandler extends ChannelInboundHandlerAdapter {
-
- private final static Logger logger = LoggerFactory.getLogger(RelayHandler.class);
-
- private final Channel relayChannel;
-
- public RelayHandler(Channel relayChannel) {
- this.relayChannel = relayChannel;
- }
-
- @Override
- public void channelActive(ChannelHandlerContext ctx) {
- ctx.writeAndFlush(Unpooled.EMPTY_BUFFER);
- }
-
- @Override
- public void channelRead(ChannelHandlerContext ctx, Object msg) {
- if (relayChannel.isActive()) {
- relayChannel.writeAndFlush(msg);
- } else {
- ReferenceCountUtil.release(msg);
- }
- }
-
- @Override
- public void channelInactive(ChannelHandlerContext ctx) {
- if (relayChannel.isActive()) {
- if (relayChannel.isActive()) {
- relayChannel.writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
- }
- }
- }
-
- @Override
- public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
- logger.error("", cause);
- ctx.close();
- }
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/TunnelSocketFrameHandler.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/TunnelSocketFrameHandler.java
deleted file mode 100755
index 6de8bf3..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/TunnelSocketFrameHandler.java
+++ /dev/null
@@ -1,294 +0,0 @@
-
-package org.nl.config.arthas.netty;
-
-import io.netty.buffer.Unpooled;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelFutureListener;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.channel.SimpleChannelInboundHandler;
-import io.netty.handler.codec.http.HttpHeaders;
-import io.netty.handler.codec.http.QueryStringDecoder;
-import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame;
-import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
-import io.netty.handler.codec.http.websocketx.WebSocketFrame;
-import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler.HandshakeComplete;
-import io.netty.util.concurrent.*;
-import org.apache.commons.lang3.RandomStringUtils;
-import org.apache.tomcat.util.codec.binary.Base64;
-import org.nl.common.arthas.MethodConstants;
-import org.nl.common.arthas.SimpleHttpResponse;
-import org.nl.common.arthas.URIConstans;
-import org.nl.common.utils.HttpUtils;
-import org.nl.monitor.server.arthas.TunnelServer;
-import org.nl.monitor.server.arthas.dto.AgentInfo;
-import org.nl.monitor.server.arthas.dto.ClientConnectionInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.util.UriComponentsBuilder;
-
-import java.net.*;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.TimeUnit;
-
-/**
- *
- * @author hengyunabc 2019-08-27
- *
- */
-public class TunnelSocketFrameHandler extends SimpleChannelInboundHandler {
-
- private final static Logger logger = LoggerFactory.getLogger(TunnelSocketFrameHandler.class);
-
- private TunnelServer tunnelServer;
-
- public TunnelSocketFrameHandler(TunnelServer tunnelServer) {
- this.tunnelServer = tunnelServer;
- }
-
- @Override
- public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
- if (evt instanceof HandshakeComplete) {
- HandshakeComplete handshake = (HandshakeComplete) evt;
- // http request uri
- String uri = handshake.requestUri();
- logger.info("websocket handshake complete, uri: {}", uri);
-
- MultiValueMap parameters = UriComponentsBuilder.fromUriString(uri).build().getQueryParams();
- String method = parameters.getFirst(URIConstans.METHOD);
-
- if (MethodConstants.CONNECT_ARTHAS.equals(method)) { // form browser
- connectArthas(ctx, parameters);
- } else if (MethodConstants.AGENT_REGISTER.equals(method)) { // form arthas agent, register
- agentRegister(ctx, handshake, uri);
- }
- if (MethodConstants.OPEN_TUNNEL.equals(method)) { // from arthas agent open tunnel
- String clientConnectionId = parameters.getFirst(URIConstans.CLIENT_CONNECTION_ID);
- openTunnel(ctx, clientConnectionId);
- }
- } else {
- ctx.fireUserEventTriggered(evt);
- }
- }
-
- @Override
- protected void channelRead0(ChannelHandlerContext ctx, WebSocketFrame frame) throws Exception {
- System.out.println("接收netty消息"+frame.toString());
- // 只有 arthas agent register建立的 channel 才可能有数据到这里
- if (frame instanceof TextWebSocketFrame) {
- TextWebSocketFrame textFrame = (TextWebSocketFrame) frame;
- String text = textFrame.text();
-
- MultiValueMap parameters = UriComponentsBuilder.fromUriString(text).build()
- .getQueryParams();
-
- String method = parameters.getFirst(URIConstans.METHOD);
-
- /**
- *
- * 1. 之前http proxy请求已发送到 tunnel cleint,这里接收到 tunnel client的结果,并解析出SimpleHttpResponse
- * 2. 需要据 URIConstans.PROXY_REQUEST_ID 取出当时的 Promise,再设置SimpleHttpResponse进去
- *
- */
- if (MethodConstants.HTTP_PROXY.equals(method)) {
- String requestId = URLDecoder.decode(parameters.getFirst(URIConstans.PROXY_REQUEST_ID), "utf-8");
-
- if (requestId == null) {
- logger.error("error, need {}, text: {}", URIConstans.PROXY_REQUEST_ID, text);
- return;
- }
- logger.info("received http proxy response, requestId: {}", requestId);
-
- Promise promise = tunnelServer.findProxyRequestPromise(requestId);
- String data = URLDecoder.decode(parameters.getFirst(URIConstans.PROXY_RESPONSE_DATA), "utf-8");
- byte[] bytes = Base64.decodeBase64(data);
- SimpleHttpResponse simpleHttpResponse = SimpleHttpResponse.fromBytes(bytes);
- promise.setSuccess(simpleHttpResponse);
- }
- }
- }
-
- private void connectArthas(ChannelHandlerContext tunnelSocketCtx, MultiValueMap parameters)
- throws URISyntaxException {
-
- List agentId = parameters.getOrDefault("id", Collections.emptyList());
-
- if (agentId.isEmpty()) {
- logger.error("arthas agent id can not be null, parameters: {}", parameters);
- throw new IllegalArgumentException("arthas agent id can not be null");
- }
-
- logger.info("try to connect to arthas agent, id: " + agentId.get(0));
-
- Optional findAgent = tunnelServer.findAgent(agentId.get(0));
-
- if (findAgent.isPresent()) {
- ChannelHandlerContext agentCtx = findAgent.get().getChannelHandlerContext();
-
- String clientConnectionId = RandomStringUtils.random(20, true, true).toUpperCase();
-
- logger.info("random clientConnectionId: " + clientConnectionId);
- // URI uri = new URI("response", null, "/",
- // "method=" + MethodConstants.START_TUNNEL + "&id=" + agentId.get(0) + "&clientConnectionId=" + clientConnectionId, null);
- URI uri = UriComponentsBuilder.newInstance().scheme(URIConstans.RESPONSE).path("/")
- .queryParam(URIConstans.METHOD, MethodConstants.START_TUNNEL).queryParam(URIConstans.ID, agentId)
- .queryParam(URIConstans.CLIENT_CONNECTION_ID, clientConnectionId).build().toUri();
-
- logger.info("startTunnel response: " + uri);
-
- ClientConnectionInfo clientConnectionInfo = new ClientConnectionInfo();
- SocketAddress remoteAddress = tunnelSocketCtx.channel().remoteAddress();
- if (remoteAddress instanceof InetSocketAddress) {
- InetSocketAddress inetSocketAddress = (InetSocketAddress) remoteAddress;
- clientConnectionInfo.setHost(inetSocketAddress.getHostString());
- clientConnectionInfo.setPort(inetSocketAddress.getPort());
- }
- clientConnectionInfo.setChannelHandlerContext(tunnelSocketCtx);
-
- // when the agent open tunnel success, will set result into the promise
- Promise promise = GlobalEventExecutor.INSTANCE.newPromise();
- promise.addListener(new FutureListener() {
- @Override
- public void operationComplete(final Future future) throws Exception {
- final Channel outboundChannel = future.getNow();
- if (future.isSuccess()) {
- tunnelSocketCtx.pipeline().remove(TunnelSocketFrameHandler.this);
-
- // outboundChannel is form arthas agent
- outboundChannel.pipeline().removeLast();
-
- outboundChannel.pipeline().addLast(new RelayHandler(tunnelSocketCtx.channel()));
- tunnelSocketCtx.pipeline().addLast(new RelayHandler(outboundChannel));
- } else {
- logger.error("wait for agent connect error. agentId: {}, clientConnectionId: {}", agentId,
- clientConnectionId);
- if (agentCtx.channel().isActive()) {
- agentCtx.channel().writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
- }
- }
- }
- });
-
- clientConnectionInfo.setPromise(promise);
- this.tunnelServer.addClientConnectionInfo(clientConnectionId, clientConnectionInfo);
- tunnelSocketCtx.channel().closeFuture().addListener(new GenericFutureListener>() {
- @Override
- public void operationComplete(Future super Void> future) throws Exception {
- tunnelServer.removeClientConnectionInfo(clientConnectionId);
- }
- });
-
- agentCtx.channel().writeAndFlush(new TextWebSocketFrame(uri.toString()));
-
- logger.info("browser connect waitting for arthas agent open tunnel");
- boolean watiResult = promise.awaitUninterruptibly(20, TimeUnit.SECONDS);
- if (watiResult) {
- logger.info(
- "browser connect wait for arthas agent open tunnel success, agentId: {}, clientConnectionId: {}",
- agentId, clientConnectionId);
- } else {
- logger.error(
- "browser connect wait for arthas agent open tunnel timeout, agentId: {}, clientConnectionId: {}",
- agentId, clientConnectionId);
- tunnelSocketCtx.close();
- }
- } else {
- tunnelSocketCtx.channel().writeAndFlush(new CloseWebSocketFrame(2000, "Can not find arthas agent by id: "+ agentId));
- logger.error("Can not find arthas agent by id: {}", agentId);
- throw new IllegalArgumentException("Can not find arthas agent by id: " + agentId);
- }
- }
-
- private void agentRegister(ChannelHandlerContext ctx, HandshakeComplete handshake, String requestUri) throws URISyntaxException {
- QueryStringDecoder queryDecoder = new QueryStringDecoder(requestUri);
- Map> parameters = queryDecoder.parameters();
-
- String appName = null;
- List appNameList = parameters.get(URIConstans.APP_NAME);
- if (appNameList != null && !appNameList.isEmpty()) {
- appName = appNameList.get(0);
- }
-
- // generate a random agent id
- String id = null;
- if (appName != null) {
- // 如果有传 app name,则生成带 app name前缀的id,方便管理
- id = appName + "_" + RandomStringUtils.random(20, true, true).toUpperCase();
- } else {
- id = RandomStringUtils.random(20, true, true).toUpperCase();
- }
- // agent传过来,则优先用 agent的
- List idList = parameters.get(URIConstans.ID);
- if (idList != null && !idList.isEmpty()) {
- id = idList.get(0);
- }
-
- String arthasVersion = null;
- List arthasVersionList = parameters.get(URIConstans.ARTHAS_VERSION);
- if (arthasVersionList != null && !arthasVersionList.isEmpty()) {
- arthasVersion = arthasVersionList.get(0);
- }
-
- final String finalId = id;
-
- // URI responseUri = new URI("response", null, "/", "method=" + MethodConstants.AGENT_REGISTER + "&id=" + id, null);
- URI responseUri = UriComponentsBuilder.newInstance().scheme(URIConstans.RESPONSE).path("/")
- .queryParam(URIConstans.METHOD, MethodConstants.AGENT_REGISTER).queryParam(URIConstans.ID, id).build()
- .encode().toUri();
-
- AgentInfo info = new AgentInfo();
-
- // 前面可能有nginx代理
- HttpHeaders headers = handshake.requestHeaders();
- String host = HttpUtils.findClientIP(headers);
-
- if (host == null) {
- SocketAddress remoteAddress = ctx.channel().remoteAddress();
- if (remoteAddress instanceof InetSocketAddress) {
- InetSocketAddress inetSocketAddress = (InetSocketAddress) remoteAddress;
- info.setHost(inetSocketAddress.getHostString());
- info.setPort(inetSocketAddress.getPort());
- }
- } else {
- info.setHost(host);
- Integer port = HttpUtils.findClientPort(headers);
- if (port != null) {
- info.setPort(port);
- }
- }
-
- info.setChannelHandlerContext(ctx);
- if (arthasVersion != null) {
- info.setArthasVersion(arthasVersion);
- }
-
- tunnelServer.addAgent(id, info);
- ctx.channel().closeFuture().addListener(new GenericFutureListener>() {
- @Override
- public void operationComplete(Future super Void> future) throws Exception {
- tunnelServer.removeAgent(finalId);
- }
-
- });
-
- ctx.channel().writeAndFlush(new TextWebSocketFrame(responseUri.toString()));
- }
-
- private void openTunnel(ChannelHandlerContext ctx, String clientConnectionId) {
- Optional infoOptional = this.tunnelServer.findClientConnection(clientConnectionId);
-
- if (infoOptional.isPresent()) {
- ClientConnectionInfo info = infoOptional.get();
- logger.info("openTunnel clientConnectionId:" + clientConnectionId);
-
- Promise promise = info.getPromise();
- promise.setSuccess(ctx.channel());
- } else {
- logger.error("Can not find client connection by id: {}", clientConnectionId);
- }
-
- }
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/TunnelSocketServerInitializer.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/TunnelSocketServerInitializer.java
deleted file mode 100755
index c6628d1..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/arthas/netty/TunnelSocketServerInitializer.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.nl.config.arthas.netty;
-
-import io.netty.channel.ChannelInitializer;
-import io.netty.channel.ChannelPipeline;
-import io.netty.channel.socket.SocketChannel;
-import io.netty.handler.codec.http.HttpObjectAggregator;
-import io.netty.handler.codec.http.HttpServerCodec;
-import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;
-import io.netty.handler.codec.http.websocketx.extensions.compression.WebSocketServerCompressionHandler;
-import io.netty.handler.ssl.SslContext;
-import org.nl.config.arthas.ArthasConstants;
-import org.nl.monitor.server.arthas.TunnelServer;
-
-
-/**
- *
- * @author hengyunabc 2019-08-27
- *
- */
-public class TunnelSocketServerInitializer extends ChannelInitializer {
-
- private final SslContext sslCtx;
-
- private TunnelServer tunnelServer;
-
- public TunnelSocketServerInitializer(TunnelServer tunnelServer, SslContext sslCtx) {
- this.sslCtx = sslCtx;
- this.tunnelServer = tunnelServer;
- }
-
- @Override
- public void initChannel(SocketChannel ch) throws Exception {
- ChannelPipeline pipeline = ch.pipeline();
- if (sslCtx != null) {
- pipeline.addLast(sslCtx.newHandler(ch.alloc()));
- }
- pipeline.addLast(new HttpServerCodec());
- pipeline.addLast(new HttpObjectAggregator(ArthasConstants.MAX_HTTP_CONTENT_LENGTH));
- pipeline.addLast(new WebSocketServerCompressionHandler());
- pipeline.addLast(new WebSocketServerProtocolHandler(tunnelServer.getPath(), null, true, ArthasConstants.MAX_HTTP_CONTENT_LENGTH, false, true, 10000L));
-
- pipeline.addLast(new TunnelSocketFrameHandler(tunnelServer));
- }
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java
new file mode 100644
index 0000000..000ca5e
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogAppender.java
@@ -0,0 +1,49 @@
+package org.nl.config.lucene;
+
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
+import ch.qos.logback.core.rolling.RollingFileAppender;
+import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.nio.charset.Charset;
+
+public class DynamicLogAppender {
+ /**
+ * 通过传入的动态名字,动态设置appender
+ * @param dynamicName
+ * @return
+ */
+ public RollingFileAppender getAppender(String oldLogPath,String dynamicName) {
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ RollingFileAppender appender = new RollingFileAppender();
+ //appender的name属性
+ appender.setName(dynamicName);
+ appender.setContext(context);
+
+ //设置文件名
+ appender.setFile(new File(oldLogPath, dynamicName + "\\" + DateUtil.format(new DateTime(),"yyyy-MM-dd")+".log").getAbsolutePath());
+ //设置日志文件输出格式
+ PatternLayoutEncoder encoder = new PatternLayoutEncoder();
+ encoder.setContext(context);
+ encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n");
+ encoder.setCharset(Charset.forName("UTF-8"));
+ encoder.start();
+
+ //设置日志记录器的滚动策略
+ TimeBasedRollingPolicy policy = new TimeBasedRollingPolicy();
+ policy.setFileNamePattern(oldLogPath+dynamicName+".%d{yyyy-MM-dd}.log");
+ policy.setParent(appender); //设置父节点是appender
+ policy.setContext(context);
+ policy.start();
+
+ //加入下面两个节点
+ appender.setRollingPolicy(policy);
+ appender.setEncoder(encoder);
+ appender.start();
+ return appender;
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java
new file mode 100644
index 0000000..566a899
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/DynamicLogger.java
@@ -0,0 +1,35 @@
+package org.nl.config.lucene;
+
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.core.rolling.RollingFileAppender;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DynamicLogger {
+ String logPath;//日志存储路径
+ public DynamicLogger(String logPath) {
+ this.logPath = logPath;
+ }
+ //对外暴露日志对象:每次拿的对象从内存里拿,没有再构建
+ private static Map container = new HashMap<>();
+ public Logger getLogger(String dynamicName) {
+ Logger logger = container.get(dynamicName);
+ if(logger != null) {
+ return logger;
+ }
+ logger = build(dynamicName);
+ container.put(dynamicName,logger);
+ return logger;
+ }
+ //构建Logger对象,给Logger指定appender
+ private Logger build(String dynamicName) {
+ RollingFileAppender runTaskAppender =new DynamicLogAppender().getAppender(this.logPath,dynamicName);
+ LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+ Logger logger = context.getLogger(dynamicName);
+ logger.addAppender(runTaskAppender);
+ return logger;
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java
new file mode 100644
index 0000000..fa22002
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Indexer.java
@@ -0,0 +1,184 @@
+package org.nl.config.lucene;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.io.FileUtils;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.TextField;
+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.springframework.beans.factory.annotation.Value;
+import org.wltea.analyzer.lucene.IKAnalyzer;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.file.Paths;
+import java.util.Set;
+
+/**
+ * lucene索引器
+ */
+public class Indexer {
+ /**
+ * 写索引实例
+ */
+ private IndexWriter writer;
+
+ public IndexWriter getWriter() {
+ return writer;
+ }
+
+ /**
+ * 构造方法,实例化IndexWriter
+ *
+ * @param indexDir
+ * @throws Exception
+ */
+ public Indexer(String indexDir) throws Exception {
+ Directory dir = FSDirectory.open(Paths.get(indexDir));
+ //标准分词器,会自动去掉空格啊,is a the等单词
+// Analyzer analyzer = new StandardAnalyzer();
+ Analyzer analyzer = new IKAnalyzer();
+ //将标准分词器配到写索引的配置中
+ IndexWriterConfig config = new IndexWriterConfig(analyzer);
+ //实例化写索引对象
+ writer = new IndexWriter(dir, config);
+ }
+
+ /**
+ * 索引指定目录下的所有文件
+ *
+ * @param dataDir
+ * @return
+ * @throws Exception
+ */
+ public int indexAll(String dataDir) throws Exception {
+ // 获取该路径下的所有文件
+ File[] files = new File(dataDir).listFiles();
+ if (null != files) {
+ for (File file : files) {
+ //调用下面的indexFile方法,对每个文件进行索引
+ indexFile(file);
+ }
+ }
+ //返回索引的文件数
+// return writer.numDocs();
+ return writer.numRamDocs();
+ }
+
+ /**
+ * 索引指定的文件
+ *
+ * @param file
+ * @throws Exception
+ */
+ private void indexFile(File file) throws Exception {
+ System.out.println("索引文件的路径:" + file.getCanonicalPath());
+ //调用下面的getDocument方法,获取该文件的document
+ Document doc = getDocument(file);
+ //添加索引文档
+ //Document doc = json2Doc(jsonDoc);
+// Document doc = new Document();
+// doc.add(new TextField("content", jsonDoc, Field.Store.YES));
+ Field fieldContent = new TextField("fieldContent", FileUtils.readFileToString(null, "UTF-8"), Field.Store.YES);
+
+ //将doc添加到索引中
+ writer.addDocument(doc);
+ }
+
+ /**
+ * 获取文档,文档里再设置每个字段,就类似于数据库中的一行记录
+ *
+ * @param file
+ * @return
+ * @throws Exception
+ */
+ private Document getDocument(File file) throws Exception {
+ Document doc = new Document();
+ //开始添加字段
+ //添加内容
+ doc.add(new TextField("contents", new FileReader(file)));
+ //添加文件名,并把这个字段存到索引文件里
+ doc.add(new TextField("fileName", file.getName(), Field.Store.YES));
+ //添加文件路径
+ doc.add(new TextField("fullPath", file.getCanonicalPath(), Field.Store.YES));
+ return doc;
+ }
+
+ public Document json2Doc(String strDoc) {
+ Document doc = new Document();
+ JSONObject jsonDoc = JSONObject.parseObject(strDoc);
+ Set keys = jsonDoc.keySet();
+ for (String key : keys) {
+ doc.add(new TextField(key, jsonDoc.getString(key), Field.Store.YES));
+ }
+ return doc;
+ }
+
+ public void addLogIndex(String msg) throws IOException {
+ //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存
+ Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath());
+ //步骤二:创建一个IndexWriter对象,用于写索引
+// Analyzer analyzer = new StandardAnalyzer();
+ IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(new IKAnalyzer(false)));
+// indexWriter.deleteAll();//清理所有索引库
+// IndexWriter indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer()));
+ //记录索引开始时间
+ long startTime = System.currentTimeMillis();
+ //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象
+ Document document = new Document();
+// document.add(new TextField("fieldContent", device_id, Field.Store.YES));
+ document.add(new TextField("fieldContent", msg, Field.Store.YES));
+ indexWriter.addDocument(document);
+ //记录索引结束时间
+ long endTime = System.currentTimeMillis();
+ System.out.println("建立索引" + "共耗时" + (endTime - startTime) + "毫秒");
+ indexWriter.commit();
+ //步骤八:关闭资源
+ indexWriter.close();
+ System.out.println("建立索引成功-----关闭资源");
+ }
+
+ //系统的日志文件路径
+ @Value("${logging.file.path}")
+ private String logUrl;
+
+ public static void main(String[] args) throws IOException {
+ //步骤一:创建Directory对象,用于指定索引库的位置 RAMDirectory内存
+ Directory directory = FSDirectory.open(new File("D:\\lucene\\index").toPath());
+ //步骤二:创建一个IndexWriter对象,用于写索引
+// Analyzer analyzer = new StandardAnalyzer();
+ IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(new IKAnalyzer(false)));
+
+ indexWriter.deleteAll();//清理所有索引库
+// indexWriter=new IndexWriter(directory,new IndexWriterConfig(new StandardAnalyzer()));
+ //记录索引开始时间
+ long startTime = System.currentTimeMillis();
+ //步骤三:读取磁盘中文件,对应每一个文件创建一个文档对象
+ File file = new File("D:\\testlog");
+ //步骤四:获取文件列表
+ File[] files = file.listFiles();
+ for (File item : files) {
+ BufferedReader bufferedReader = new BufferedReader(new FileReader(item));
+ String strLine = null;
+ while (null != (strLine = bufferedReader.readLine())) {
+ Document document = new Document();
+// document.add(new Field());
+ document.add(new TextField("fieldContent", strLine, Field.Store.YES));
+ indexWriter.addDocument(document);
+ }
+ }
+ //记录索引结束时间
+ long endTime = System.currentTimeMillis();
+ System.out.println("建立索引" + "共耗时" + (endTime - startTime) + "毫秒");
+ indexWriter.commit();
+ //步骤八:关闭资源
+ indexWriter.close();
+ System.out.println("建立索引成功-----关闭资源");
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java
new file mode 100644
index 0000000..fb739ce
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneIndexWriter.java
@@ -0,0 +1,60 @@
+package org.nl.config.lucene;
+
+import cn.hutool.core.date.DateUtil;
+import org.apache.lucene.index.CorruptIndexException;
+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.wltea.analyzer.lucene.IKAnalyzer;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class LuceneIndexWriter {
+ private static IndexWriter indexWriter;
+
+ static {
+ try {
+ Directory directory = FSDirectory.open(new File(UrlConfig.luceneUrl).toPath());
+ IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
+ indexWriter = new IndexWriter(directory, config);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ /**当当前线程结束时,自动关闭IndexWriter,使用Runtime对象*/
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ try {
+ closeIndexWriter();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }));
+ }
+ /**在线程结束时,自动关闭IndexWriter*/
+ public static IndexWriter getIndexWriter() {
+ return indexWriter;
+ }
+ /**关闭IndexWriter
+ * @throws IOException
+ * @throws CorruptIndexException */
+ public static void closeIndexWriter() throws Exception {
+ if(indexWriter != null) {
+ indexWriter.close();
+ }
+ }
+
+ public static void main(String[] args) throws IOException {
+ indexWriter.deleteAll();
+ }
+
+ 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);
+ timeString = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss.SSS");//格式化后的时间
+ return timeString;
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java
new file mode 100644
index 0000000..75284ee
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java
@@ -0,0 +1,140 @@
+package org.nl.config.lucene;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.*;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
+import org.apache.lucene.util.BytesRef;
+
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * lucene查询器
+ */
+@Slf4j
+public class Searcher {
+
+ public static Map search(String indexDir, String ext,Map whereJson) throws Exception {
+ //获取要查询的路径,也就是索引所在的位置
+ Directory dir = FSDirectory.open(Paths.get(indexDir));
+ IndexReader reader = DirectoryReader.open(dir);
+ //构建IndexSearcher
+ IndexSearcher searcher = new IndexSearcher(reader);
+ //标准分词器,会自动去掉空格啊,is a the等单词
+// Analyzer analyzer = new StandardAnalyzer();
+// Analyzer analyzer = new IKAnalyzer(false);
+ //查询解析器
+// QueryParser queryParser = new QueryParser("fieldContent", analyzer);
+
+ //记录索引开始时间
+ long startTime = System.currentTimeMillis();
+ // 实际上Lucene本身不支持分页。因此我们需要自己进行逻辑分页。我们要准备分页参数:
+ int pageSize = Integer.parseInt(whereJson.get("size").toString());// 每页条数
+ int pageNum = Integer.parseInt(whereJson.get("page").toString());// 当前页码
+ int start = pageNum * pageSize;// 当前页的起始条数
+ int end = start + pageSize;// 当前页的结束条数(不能包含)
+ // 创建排序对象,需要排序字段SortField,参数:字段的名称、字段的类型、是否反转如果是false,升序。true降序
+ Sort sort = new Sort(new SortField("logTime", SortField.Type.DOC,true));
+
+ TopDocs docs = null;
+ BooleanQuery.Builder booleanQueryBuilder = new BooleanQuery.Builder();
+ //时间范围查询
+ String startDate = (String) whereJson.get("begin_time");
+ String endDate = (String) whereJson.get("end_time");
+ 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{
+ startDate = LuceneIndexWriter.getDate(startDate);
+ }
+ if (endDate == null){
+ endDate = DateUtil.format(new DateTime(),"yyyy-MM-dd HH:mm:ss.SSS");
+ } else {
+ endDate = LuceneIndexWriter.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);
+ }
+ docs = searcher.search(booleanQueryBuilder.build(), end,sort);
+ //记录索引时间
+ long endTime = System.currentTimeMillis();
+ log.info("匹配{}共耗时{}毫秒",booleanQueryBuilder.build(),(endTime-startTime));
+ log.info("查询到{}条日志文件", docs.totalHits.value);
+ List list = new ArrayList<>();
+ ScoreDoc[] scoreDocs = docs.scoreDocs;
+ if (end > docs.totalHits.value) end = (int) docs.totalHits.value;
+ JSONArray array = new JSONArray();
+
+ for (int i = start; i < end; i++) {
+ ScoreDoc scoreDoc = scoreDocs[i];
+ Document doc = reader.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) {
+ array.add(object);
+ }
+ }
+ for(Object logDto:array){
+ log.info(logDto.toString());
+ }
+ reader.close();
+ JSONObject jo = new JSONObject();
+ jo.put("content", array);
+ jo.put("totalElements", docs.totalHits.value);
+ return jo;
+ }
+
+ public static void main(String[] args) {
+ String indexDir = "D:\\lucene\\index";
+ //查询这个字符串
+ String q = "07.832";
+ Map whereJson = null;
+ try {
+ search(indexDir, q,whereJson);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java
new file mode 100644
index 0000000..c7958bb
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/StaticConfig.java
@@ -0,0 +1,21 @@
+package org.nl.config.lucene;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @deprecated 设置静态参数初始化
+ */
+@Configuration
+public class StaticConfig {
+ //日志索引目录
+ @Value("${lucene.index.path}")
+ private String luceneDir;
+
+ @Bean
+ public int initStatic() {
+ UrlConfig.setLuceneUrl(luceneDir);
+ return 0;
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java
new file mode 100644
index 0000000..dd7ce01
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/UrlConfig.java
@@ -0,0 +1,13 @@
+package org.nl.config.lucene;
+
+public class UrlConfig {
+ public static String luceneUrl;
+
+ public static String getLuceneUrl() {
+ return luceneUrl;
+ }
+
+ public static void setLuceneUrl(String luceneUrl) {
+ UrlConfig.luceneUrl = luceneUrl;
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CodeGenerator.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CodeGenerator.java
index eb1ace8..2e59dc3 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CodeGenerator.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CodeGenerator.java
@@ -55,10 +55,10 @@ public class CodeGenerator {
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
- dsc.setUrl("jdbc:mysql://192.168.81.252:3306/nl-sso-server?setUnicode=true&characterEncoding=utf8");
+ dsc.setUrl("jdbc:mysql://127.0.0.1:3306/stand_lms?setUnicode=true&characterEncoding=utf8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
- dsc.setPassword("Root.123456");
+ dsc.setPassword("12356");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CustomIdGenerator.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CustomIdGenerator.java
new file mode 100644
index 0000000..bb53c71
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/mybatis/CustomIdGenerator.java
@@ -0,0 +1,18 @@
+package org.nl.config.mybatis;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: lyd
+ * @Description: ID自动生成策略
+ * @Date: 2023/5/4
+ */
+@Component
+public class CustomIdGenerator implements IdentifierGenerator {
+ @Override
+ public Number nextId(Object entity) {
+ return IdUtil.getSnowflake(1,1).nextId();
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/redis/RedisConvert.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/redis/RedisConvert.java
new file mode 100644
index 0000000..caea9b9
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/redis/RedisConvert.java
@@ -0,0 +1,34 @@
+package org.nl.config.redis;
+
+import cn.hutool.core.util.StrUtil;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+import org.nl.system.service.redis.vo.RedisMonitorRespVO;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+/**
+ * @Author: lyd
+ * @Description: redis---Spring Boot 对象转换 MapStruct
+ * @Date: 2022-08-04
+ */
+@Mapper
+public interface RedisConvert {
+
+ RedisConvert INSTANCE = Mappers.getMapper(RedisConvert.class);
+
+ default RedisMonitorRespVO build(Properties info, Long dbSize, Properties commandStats) {
+ RedisMonitorRespVO respVO = RedisMonitorRespVO.builder().info(info).dbSize(dbSize)
+ .commandStats(new ArrayList<>(commandStats.size())).build();
+ commandStats.forEach((key, value) -> {
+ respVO.getCommandStats().add(RedisMonitorRespVO.CommandStat.builder()
+ .command(StrUtil.subAfter((String) key, "cmdstat_", false))
+ .calls(Integer.valueOf(StrUtil.subBetween((String) value, "calls=", ",")))
+ .usec(Long.valueOf(StrUtil.subBetween((String) value, "usec=", ",")))
+ .build());
+ });
+ return respVO;
+ }
+
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/CorsFilter.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/CorsFilter.java
similarity index 98%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/CorsFilter.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/CorsFilter.java
index 6ce3cfa..cc2e734 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/CorsFilter.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/CorsFilter.java
@@ -1,4 +1,4 @@
-package org.nl.config.satoken;
+package org.nl.config.saconfig;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/LoginUserHandler.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/LoginUserHandler.java
similarity index 94%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/LoginUserHandler.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/LoginUserHandler.java
index 03d3216..2d259a7 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/LoginUserHandler.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/LoginUserHandler.java
@@ -1,4 +1,4 @@
-package org.nl.config.satoken;
+package org.nl.config.saconfig;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaResult;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/SaInitCOnfig.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java
similarity index 92%
rename from nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/SaInitCOnfig.java
rename to nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java
index 09a3aaa..6a967a9 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/satoken/SaInitCOnfig.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/saconfig/SaInitCOnfig.java
@@ -1,8 +1,9 @@
-package org.nl.config.satoken;
+package org.nl.config.saconfig;
import cn.dev33.satoken.config.SaSsoConfig;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
+import org.apache.http.client.HttpClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ModelAndView;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java b/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java
index 3cb507a..00c1bfe 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/ThreadPoolExecutorUtil.java
@@ -16,7 +16,7 @@
package org.nl.config.thread;
-import org.nl.common.utils.SpringContextHolder;
+import org.nl.config.SpringContextHolder;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/controller/log/LogController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/controller/log/LogController.java
deleted file mode 100644
index f8fc6b4..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/controller/log/LogController.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.nl.monitor.controller.log;
-
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.monitor.server.LogService;
-import org.nl.monitor.server.log.dto.LogQuery;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author ldjun
- * @version 1.0
- * @date 2023年01月29日 18:55
- * @desc desc
- */
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/esLog")
-public class LogController {
- private final LogService esLogService;
-
-
- @GetMapping("/labels/{type}")
- @ApiOperation("获取标签")
- public ResponseEntity labelsValues(@PathVariable String type) {
- return new ResponseEntity<>(esLogService.getLabelsValues(type), HttpStatus.OK);
- }
-
- @PostMapping("/query")
- @ApiOperation("日志查询")
- public ResponseEntity queryAll(@RequestBody LogQuery query) {
- return new ResponseEntity<>(esLogService.query(query), HttpStatus.OK);
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/LogService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/LogService.java
deleted file mode 100644
index 5147a08..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/LogService.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.nl.monitor.server;
-
-import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.nl.monitor.server.log.dto.LogQuery;
-
-/**
- * @author ldjun
- * @version 1.0
- * @date 2023年02月07日 14:34
- * @desc desc
- */
-public interface LogService {
- /**
- * 获取labels和values树
- * @return
- */
- JSONArray getLabelsValues(String type);
-
- /**
- * 日志查询
- * @param logQuery
- * @return
- */
- Page query(LogQuery logQuery);
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/TunnelServer.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/TunnelServer.java
deleted file mode 100755
index 6120f2c..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/TunnelServer.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.nl.monitor.server.arthas;
-
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.channel.Channel;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
-import io.netty.handler.logging.LogLevel;
-import io.netty.handler.logging.LoggingHandler;
-import io.netty.handler.ssl.SslContext;
-import io.netty.handler.ssl.SslContextBuilder;
-import io.netty.handler.ssl.util.SelfSignedCertificate;
-import io.netty.util.concurrent.DefaultThreadFactory;
-import io.netty.util.concurrent.Promise;
-import lombok.Data;
-import org.apache.commons.lang3.StringUtils;
-import org.nl.common.arthas.SimpleHttpResponse;
-import org.nl.config.arthas.ArthasConstants;
-import org.nl.config.arthas.netty.TunnelSocketServerInitializer;
-import org.nl.monitor.server.arthas.cluster.TunnelClusterStore;
-import org.nl.monitor.server.arthas.dto.AgentClusterInfo;
-import org.nl.monitor.server.arthas.dto.AgentInfo;
-import org.nl.monitor.server.arthas.dto.ClientConnectionInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 控制台与arthas service通过netty连接
- * arthas启动时会启动ChannelFuture channelFuture = tunnelClient.start();
- * queryEncoder.addParam(URIConstans.METHOD, MethodConstants.AGENT_REGISTER);
- */
-@Data
-public class TunnelServer {
- private final static Logger logger = LoggerFactory.getLogger(TunnelServer.class);
-
- private boolean ssl;
- private String host;
- private int port;
- private String path = ArthasConstants.DEFAULT_WEBSOCKET_PATH;
-
- private Map agentInfoMap = new ConcurrentHashMap();
-
- private Map clientConnectionInfoMap = new ConcurrentHashMap();
-
- /**
- * 记录 proxy request
- */
- private Map> proxyRequestPromiseMap = new ConcurrentHashMap>();
-
- private EventLoopGroup bossGroup = new NioEventLoopGroup(1, new DefaultThreadFactory("arthas-TunnelServer-boss", true));
- private EventLoopGroup workerGroup = new NioEventLoopGroup(new DefaultThreadFactory("arthas-TunnelServer-worker", true));
-
- private Channel channel;
-
- /**
- * 在集群部署时,保存agentId和host关系
- */
- private TunnelClusterStore tunnelClusterStore;
-
- /**
- * 集群部署时外部连接的host
- */
- private String clientConnectHost;
-
- /**
- * 核心方法
- * @throws Exception
- */
- public void start() throws Exception {
- {
- System.out.println("Tunnel server 启动.....");
- }
- // Configure SSL.
- final SslContext sslCtx;
- if (ssl) {
- SelfSignedCertificate ssc = new SelfSignedCertificate();
- sslCtx = SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey()).build();
- } else {
- sslCtx = null;
- }
- ServerBootstrap b = new ServerBootstrap();
- //指定解析器
- b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).handler(new LoggingHandler(LogLevel.INFO))
- .childHandler(new TunnelSocketServerInitializer(this, sslCtx));
-
- if (StringUtils.isBlank(host)) {
- channel = b.bind(port).sync().channel();
- } else {
- channel = b.bind(host, port).sync().channel();
- }
- logger.info("Tunnel server listen at {}:{}", host, port);
- workerGroup.scheduleWithFixedDelay(() -> {
- agentInfoMap.entrySet().removeIf(e -> !e.getValue().getChannelHandlerContext().channel().isActive());
- clientConnectionInfoMap.entrySet()
- .removeIf(e -> !e.getValue().getChannelHandlerContext().channel().isActive());
-
- // 更新集群key信息
- if (tunnelClusterStore != null && clientConnectHost != null) {
- try {
- for (Entry entry : agentInfoMap.entrySet()) {
- tunnelClusterStore.addAgent(entry.getKey(), new AgentClusterInfo(entry.getValue(), clientConnectHost), 60 * 60, TimeUnit.SECONDS);
- }
- } catch (Throwable t) {
- logger.error("update tunnel info error", t);
- }
- }
- }, 60, 60, TimeUnit.SECONDS);
- }
-
- public void stop() {
- if (channel != null) {
- channel.close();
- }
- bossGroup.shutdownGracefully();
- workerGroup.shutdownGracefully();
- }
-
- public Optional findAgent(String id) {
- return Optional.ofNullable(this.agentInfoMap.get(id));
- }
-
- public void addAgent(String id, AgentInfo agentInfo) {
- agentInfoMap.put(id, agentInfo);
- if (this.tunnelClusterStore != null) {
- this.tunnelClusterStore.addAgent(id, new AgentClusterInfo(agentInfo, clientConnectHost), 60 * 60, TimeUnit.SECONDS);
- }
- }
-
- public AgentInfo removeAgent(String id) {
- AgentInfo agentInfo = agentInfoMap.remove(id);
- if (this.tunnelClusterStore != null) {
- this.tunnelClusterStore.removeAgent(id);
- }
- return agentInfo;
- }
- public Optional findClientConnection(String id) {
- return Optional.ofNullable(this.clientConnectionInfoMap.get(id));
- }
- public void addClientConnectionInfo(String id, ClientConnectionInfo clientConnectionInfo) {
- clientConnectionInfoMap.put(id, clientConnectionInfo);
- }
-
- public ClientConnectionInfo removeClientConnectionInfo(String id) {
- return this.clientConnectionInfoMap.remove(id);
- }
-
- public void addProxyRequestPromise(String requestId, Promise promise) {
- this.proxyRequestPromiseMap.put(requestId, promise);
- // 把过期的proxy 请求删掉
- workerGroup.schedule(new Runnable() {
-
- @Override
- public void run() {
- removeProxyRequestPromise(requestId);
- }
-
- }, 60, TimeUnit.SECONDS);
- }
-
- public void removeProxyRequestPromise(String requestId) {
- this.proxyRequestPromiseMap.remove(requestId);
- }
-
- public Promise findProxyRequestPromise(String requestId) {
- return this.proxyRequestPromiseMap.get(requestId);
- }
-
-
- public void setPath(String path) {
- path = path.trim();
- if (!path.startsWith("/")) {
- logger.warn("tunnel server path should start with / ! path: {}, try to auto add / .", path);
- path = "/" + path;
- }
- this.path = path;
- }
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/InMemoryClusterStore.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/InMemoryClusterStore.java
deleted file mode 100755
index 10e90e3..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/InMemoryClusterStore.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.nl.monitor.server.arthas.cluster;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.TimeUnit;
-
-import org.nl.monitor.server.arthas.dto.AgentClusterInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.cache.Cache;
-import org.springframework.cache.Cache.ValueWrapper;
-import org.springframework.cache.caffeine.CaffeineCache;
-
-
-/**
- *
- * @author hengyunabc 2020-12-02
- *
- */
-public class InMemoryClusterStore implements TunnelClusterStore {
- private final static Logger logger = LoggerFactory.getLogger(InMemoryClusterStore.class);
-
- private Cache cache;
-
- @Override
- public AgentClusterInfo findAgent(String agentId) {
-
- ValueWrapper valueWrapper = cache.get(agentId);
- if (valueWrapper == null) {
- return null;
- }
-
- AgentClusterInfo info = (AgentClusterInfo) valueWrapper.get();
- return info;
- }
-
- @Override
- public void removeAgent(String agentId) {
- cache.evict(agentId);
- }
-
- @Override
- public void addAgent(String agentId, AgentClusterInfo info, long timeout, TimeUnit timeUnit) {
- cache.put(agentId, info);
- }
-
- @Override
- public Collection allAgentIds() {
- CaffeineCache caffeineCache = (CaffeineCache) cache;
- com.github.benmanes.caffeine.cache.Cache nativeCache = caffeineCache.getNativeCache();
- return (Collection) (Collection>) nativeCache.asMap().keySet();
- }
-
- @Override
- public Map agentInfo(String appName) {
- CaffeineCache caffeineCache = (CaffeineCache) cache;
- com.github.benmanes.caffeine.cache.Cache nativeCache = caffeineCache.getNativeCache();
-
- ConcurrentMap map = (ConcurrentMap) (ConcurrentMap, ?>) nativeCache
- .asMap();
-
- Map result = new HashMap();
-
- String prefix = appName + "_";
- for (Entry entry : map.entrySet()) {
- String agentId = entry.getKey();
- if (agentId.startsWith(prefix)) {
- result.put(agentId, entry.getValue());
- }
- }
-
- return result;
-
- }
-
- public Cache getCache() {
- return cache;
- }
-
- public void setCache(Cache cache) {
- this.cache = cache;
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/RedisTunnelClusterStore.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/RedisTunnelClusterStore.java
deleted file mode 100755
index 1484ec1..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/RedisTunnelClusterStore.java
+++ /dev/null
@@ -1,122 +0,0 @@
-package org.nl.monitor.server.arthas.cluster;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import org.nl.monitor.server.arthas.dto.AgentClusterInfo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.data.redis.core.ValueOperations;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- *
- * @author hengyunabc 2020-10-27
- *
- */
-public class RedisTunnelClusterStore implements TunnelClusterStore {
- private final static Logger logger = LoggerFactory.getLogger(RedisTunnelClusterStore.class);
- // 定义jackson对象
- private static final ObjectMapper MAPPER = new ObjectMapper();
-
- private String prefix = "arthas-tunnel-agent-";
-
- private StringRedisTemplate redisTemplate;
-
- @Override
- public AgentClusterInfo findAgent(String agentId) {
- try {
- ValueOperations opsForValue = redisTemplate.opsForValue();
- String infoStr = opsForValue.get(prefix + agentId);
- AgentClusterInfo info = MAPPER.readValue(infoStr, AgentClusterInfo.class);
- return info;
- } catch (Throwable e) {
- logger.error("try to read agentInfo error. agentId:{}", agentId, e);
- throw new RuntimeException(e);
- }
- }
-
- @Override
- public void removeAgent(String agentId) {
- ValueOperations opsForValue = redisTemplate.opsForValue();
- opsForValue.getOperations().delete(prefix + agentId);
- }
-
- @Override
- public void addAgent(String agentId, AgentClusterInfo info, long timeout, TimeUnit timeUnit) {
- try {
- ValueOperations opsForValue = redisTemplate.opsForValue();
- String infoStr = MAPPER.writeValueAsString(info);
- opsForValue.set(prefix + agentId, infoStr, timeout, timeUnit);
- } catch (Throwable e) {
- logger.error("try to add agentInfo error. agentId:{}", agentId, e);
- throw new RuntimeException(e);
- }
- }
-
- public StringRedisTemplate getRedisTemplate() {
- return redisTemplate;
- }
-
- public void setRedisTemplate(StringRedisTemplate redisTemplate) {
- this.redisTemplate = redisTemplate;
- }
-
- @Override
- public Collection allAgentIds() {
- ValueOperations opsForValue = redisTemplate.opsForValue();
-
- Set result = new HashSet();
-
- int length = prefix.length();
- for (String value : opsForValue.getOperations().keys(prefix + "*")) {
- result.add(value.substring(length));
-
- }
- return result;
- }
-
- @Override
- public Map agentInfo(String appName) {
- try {
-
- ValueOperations opsForValue = redisTemplate.opsForValue();
-
- Set keys = new HashSet();
-
- String prefixWithAppName = prefix + appName + "_";
-
- for (String value : opsForValue.getOperations().keys(prefixWithAppName + "*")) {
- keys.add(value);
-
- }
-
- List values = opsForValue.getOperations().opsForValue().multiGet(keys);
-
- Map result = new HashMap<>();
-
- Iterator iterator = values.iterator();
-
- for (String key : keys) {
- String infoStr = iterator.next();
- AgentClusterInfo info = MAPPER.readValue(infoStr, AgentClusterInfo.class);
- String agentId = key.substring(prefix.length());
- result.put(agentId, info);
- }
-
- return result;
- } catch (Throwable e) {
- logger.error("try to query agentInfo error. appName:{}", appName, e);
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/TunnelClusterStore.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/TunnelClusterStore.java
deleted file mode 100755
index 3f3003c..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/cluster/TunnelClusterStore.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.nl.monitor.server.arthas.cluster;
-
-import org.nl.monitor.server.arthas.dto.AgentClusterInfo;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-
-/**
- * 保存agentId连接到哪个具体的 tunnel server,集群部署时使用
- *
- * @author hengyunabc 2020-10-27
- *
- */
-public interface TunnelClusterStore {
- public void addAgent(String agentId, AgentClusterInfo info, long expire, TimeUnit timeUnit);
-
- public AgentClusterInfo findAgent(String agentId);
-
- public void removeAgent(String agentId);
-
- public Collection allAgentIds();
-
- public Map agentInfo(String appName);
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/AgentClusterInfo.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/AgentClusterInfo.java
deleted file mode 100755
index c644541..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/AgentClusterInfo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.nl.monitor.server.arthas.dto;
-
-/**
- * @author hengyunabc 2020-10-30
- *
- */
-public class AgentClusterInfo {
- /**
- * agent本身以哪个ip连接到 tunnel server
- */
- private String host;
- private int port;
- private String arthasVersion;
-
- /**
- * agent 连接到的 tunnel server 的ip
- */
- private String clientConnectHost;
-
- public AgentClusterInfo() {
-
- }
-
- public AgentClusterInfo(AgentInfo agentInfo, String clientConnectHost) {
- this.host = agentInfo.getHost();
- this.port = agentInfo.getPort();
- this.arthasVersion = agentInfo.getArthasVersion();
- this.clientConnectHost = clientConnectHost;
- }
-
- public String getHost() {
- return host;
- }
-
- public void setHost(String host) {
- this.host = host;
- }
-
- public int getPort() {
- return port;
- }
-
- public void setPort(int port) {
- this.port = port;
- }
-
- public String getArthasVersion() {
- return arthasVersion;
- }
-
- public void setArthasVersion(String arthasVersion) {
- this.arthasVersion = arthasVersion;
- }
-
- public String getClientConnectHost() {
- return clientConnectHost;
- }
-
- public void setClientConnectHost(String clientConnectHost) {
- this.clientConnectHost = clientConnectHost;
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/AgentInfo.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/AgentInfo.java
deleted file mode 100755
index 7fe143a..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/AgentInfo.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.nl.monitor.server.arthas.dto;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.netty.channel.ChannelHandlerContext;
-import lombok.Data;
-
-/**
- *监听对象相关信息:redis会存储一份
- */
-@Data
-public class AgentInfo {
-
- @JsonIgnore
- private ChannelHandlerContext channelHandlerContext;
- /**
- * ip
- */
- private String host;
- /**
- * 端口号
- */
- private int port;
- /**
- * 版本号
- */
- private String arthasVersion;
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/ClientConnectionInfo.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/ClientConnectionInfo.java
deleted file mode 100755
index 7ff32c7..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/arthas/dto/ClientConnectionInfo.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.nl.monitor.server.arthas.dto;
-
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelHandlerContext;
-import io.netty.util.concurrent.Promise;
-import lombok.Data;
-
-/**
- *arthas主启动启动时Client创建socket信息
- */
-@Data
-public class ClientConnectionInfo {
-
- @JsonIgnore
- private ChannelHandlerContext channelHandlerContext;
- private String host;
- private int port;
-
- /**
- * wait for agent connect
- */
- @JsonIgnore
- private Promise promise;
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/dto/LogQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/dto/LogQuery.java
deleted file mode 100644
index 96b479e..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/dto/LogQuery.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.nl.monitor.server.log.dto;
-
-import lombok.Data;
-
-import java.util.Date;
-
-/*
- * @author ZZQ
- * @Date 2023/2/8 5:18 下午
- */
-@Data
-public class LogQuery {
- /**
- * 创建时间范围查询
- */
- private Date startTime;
- private Date endTime;
- /**
- * 追踪id
- */
- private String traceId;
- /**
- * 日志内容模糊匹配
- */
- private String message;
- /**
- * 日志级别
- */
- private String logLevel;
- /**
- * 系统标签
- */
- private String system;
- /**
- * 是否只查询Http相关请求
- */
- private Boolean isRequest = Boolean.TRUE;
- /**
- * 是否过滤wql日志
- */
- private Boolean filterSql = Boolean.TRUE;
-
- private Integer size = 20;
-
- private Integer page = 1;
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/dto/LogRepositoryDTO.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/dto/LogRepositoryDTO.java
deleted file mode 100644
index 6f56781..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/dto/LogRepositoryDTO.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package org.nl.monitor.server.log.dto;
-
-import lombok.Data;
-import org.springframework.data.annotation.Id;
-import org.springframework.data.elasticsearch.annotations.Document;
-
-/*
- * @author ZZQ
- * @Date 2023/2/8 4:06 下午
- */
-@Document(indexName = "lms_log", type = "lms_log")
-@Data
-public class LogRepositoryDTO {
-
- private String message;
- private String host;
- private String logLevel;
- private String logger;
- private String requestTime;
- private String requestIp;
- @Id
- private String id;
- private String traceId;
- private String requestMethod;
- private String thread;
- private String system;
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/impl/LogServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/impl/LogServiceImpl.java
deleted file mode 100644
index a6b5eb8..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/impl/LogServiceImpl.java
+++ /dev/null
@@ -1,115 +0,0 @@
-package org.nl.monitor.server.log.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.formula.functions.T;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.index.query.BoolQueryBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.script.Script;
-import org.elasticsearch.search.aggregations.AggregationBuilders;
-import org.elasticsearch.search.aggregations.Aggregations;
-import org.elasticsearch.search.aggregations.bucket.terms.Terms;
-import org.nl.monitor.server.LogService;
-import org.nl.monitor.server.log.dto.LogQuery;
-import org.nl.monitor.server.log.dto.LogRepositoryDTO;
-import org.nl.monitor.server.log.repository.LogRepository;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
-import org.springframework.data.elasticsearch.core.aggregation.impl.AggregatedPageImpl;
-import org.springframework.data.elasticsearch.core.query.FetchSourceFilter;
-import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.util.List;
-
-/**
- * @author ldjun
- * @version 1.0
- * @date 2023年02月07日 14:35
- * @desc desc
- */
-@Service
-@RequiredArgsConstructor
-public class LogServiceImpl implements LogService {
-
- private final LogRepository esLogRepository;
-
- private final ElasticsearchRestTemplate elasticsearchRestTemplate;
-
- @Override
- public Page query(LogQuery logQuery){
- Page page = new Page<>();
- if (logQuery != null){
- BoolQueryBuilder query = QueryBuilders.boolQuery(); //requestMethod
- extractedParam(logQuery, query);
- Iterable all = esLogRepository.search(query, PageRequest.of(logQuery.getPage()-1,logQuery.getSize(), Sort.by("@timestamp").descending()));
- page.setRecords(((AggregatedPageImpl) all).getContent());
- page.setTotal(((AggregatedPageImpl) all).getTotalElements());
- page.setPages(logQuery.getPage());
- page.setSize(logQuery.getSize());
- }
- return page;
- }
-
-
- private void extractedParam(LogQuery logQuery, BoolQueryBuilder query) {
- if (StringUtils.isNotEmpty(logQuery.getLogLevel())){
- query.must().add(QueryBuilders.matchQuery("logLevel", logQuery.getLogLevel()));
- }
- if (StringUtils.isNotEmpty(logQuery.getSystem())){
- query.must().add(QueryBuilders.matchQuery("system", logQuery.getSystem()));
- }
- if (logQuery.getIsRequest()){
- query.must().add(QueryBuilders.existsQuery("requestMethod"));
- }
- if (logQuery.getFilterSql()){
- query.mustNot().add(QueryBuilders.wildcardQuery("logger","org.nl.modules.wql.core.engine.*"));
- }
- query.mustNot().add(QueryBuilders.matchPhraseQuery("logger","org.elasticsearch.client.RestClient"));
- if (StringUtils.isNotEmpty(logQuery.getTraceId())){
- query.must().add(QueryBuilders.matchQuery("traceId", logQuery.getTraceId()));
- }
- if (StringUtils.isNotEmpty(logQuery.getMessage())){
- query.must().add(QueryBuilders.matchQuery("message", logQuery.getMessage()).minimumShouldMatch("80%"));
- }
- if (logQuery.getEndTime()!=null ){
- String script = "doc['@timestamp'].value.millis < " + logQuery.getEndTime().getTime() + "L";
- query.must().add(QueryBuilders.scriptQuery(new Script(script)));
- }
- if (logQuery.getStartTime()!=null){
- String script = "doc['@timestamp'].value.millis > " + logQuery.getStartTime().getTime() + "L";
- query.must().add(QueryBuilders.scriptQuery(new Script(script)));
- }
- }
-
-
-
- @Override
- public JSONArray getLabelsValues(String type) {
- JSONArray result = new JSONArray();
- FetchSourceFilter fetchSourceFilter = new FetchSourceFilter(new String[]{type}, null);
- NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
- queryBuilder.withCollapseField(type+".keyword");
- queryBuilder.withSourceFilter(fetchSourceFilter);
- queryBuilder.addAggregation(AggregationBuilders.terms(type).field(type+".keyword").size(100));
- Aggregations agg = elasticsearchRestTemplate.query(queryBuilder.build(), SearchResponse::getAggregations);
- Terms terms = agg.get(type);
- List extends Terms.Bucket> buckets = terms.getBuckets();
- if (!CollectionUtils.isEmpty(buckets)){
- buckets.stream().map(Terms.Bucket::getKeyAsString).forEach(v-> {
- JSONObject item = new JSONObject();
- item.put("label", v);
- item.put("value", v);
- result.add(item);
- });
- }
- return result;
- }
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/repository/LogRepository.java b/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/repository/LogRepository.java
deleted file mode 100644
index dbed650..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/monitor/server/log/repository/LogRepository.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.nl.monitor.server.log.repository;
-
-import org.nl.monitor.server.log.dto.LogRepositoryDTO;
-import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
-import org.springframework.stereotype.Repository;
-
-/*
- * @author ZZQ
- * @Date 2023/2/8 4:11 下午
- */
-@Repository
-public interface LogRepository extends ElasticsearchRepository {
-
-}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java
index e145871..bdfe2db 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleController.java
@@ -4,13 +4,12 @@ package org.nl.system.controller.coderule;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.coderule.ISysCodeRuleService;
import org.nl.system.service.coderule.dao.SysCodeRule;
-import org.nl.system.service.coderule.dto.CodeRuleQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -30,15 +29,15 @@ import java.util.Set;
*/
@RestController
@Api(tags = "系统:编码生成")
-@RequiredArgsConstructor
@RequestMapping("/api/genCode")
public class SysCodeRuleController {
- private final ISysCodeRuleService codeRuleService;
+ @Autowired
+ private ISysCodeRuleService codeRuleService;
@ApiOperation("查询编码")
@GetMapping
@SaCheckPermission("genCode:list")
- public ResponseEntity queryAll(CodeRuleQuery form, PageQuery pageable) {
+ public ResponseEntity queryAll(@RequestParam Map form, PageQuery pageable) {
return new ResponseEntity<>(TableDataInfo.build(codeRuleService.queryAll(form, pageable)), HttpStatus.OK);
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java
index 2009590..c0268dc 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/coderule/SysCodeRuleDetailController.java
@@ -4,14 +4,13 @@ package org.nl.system.controller.coderule;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.coderule.ISysCodeRuleDetailService;
import org.nl.system.service.coderule.dao.SysCodeRuleDetail;
import org.nl.system.service.coderule.dto.CodeRuleDetailQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -26,10 +25,11 @@ import org.springframework.web.bind.annotation.*;
*/
@Api(tags = "系统:编码详情管理")
@RestController
-@RequiredArgsConstructor
@RequestMapping("/api/codeDetail")
public class SysCodeRuleDetailController {
- private final ISysCodeRuleDetailService codeDetailService;
+
+ @Autowired
+ private ISysCodeRuleDetailService codeDetailService;
@ApiOperation("查询编码明细")
@GetMapping
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/DeptController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/DeptController.java
index 9b95351..a576223 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/DeptController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/DeptController.java
@@ -20,17 +20,15 @@ import cn.dev33.satoken.annotation.SaMode;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.aspect.exception.BadRequestException;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
-
+import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.PageUtil;
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.dept.ISysDeptService;
import org.nl.system.service.dept.dao.SysDept;
import org.nl.system.service.dept.dto.DeptQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.CollectionUtils;
@@ -45,12 +43,12 @@ import java.util.Set;
* @date 2019-03-25
*/
@RestController
-@RequiredArgsConstructor
@Api(tags = "系统:部门管理")
@RequestMapping("/api/dept")
public class DeptController {
- private final ISysDeptService deptService;
+ @Autowired
+ private ISysDeptService deptService;
@ApiOperation("查询部门")
@GetMapping
@@ -82,7 +80,7 @@ public class DeptController {
}
return new ResponseEntity<>(deptService.getSuperior(ids),HttpStatus.OK);
}
-//
+
@Log("新增部门")
@ApiOperation("新增部门")
@PostMapping
@@ -91,19 +89,19 @@ public class DeptController {
deptService.createDept(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}
-//
+
@Log("修改部门")
@ApiOperation("修改部门")
@PutMapping
// @SaCheckPermission("dept:edit")
public ResponseEntity update(@Validated @RequestBody SysDept dept){
- if (dept.getPid() != null && dept.getDeptId().equals(dept.getPid())) {
+ if (dept.getPid() != null && dept.getDept_id().equals(dept.getPid())) {
throw new BadRequestException("上级不能为自己");
}
deptService.updateDept(dept);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
-//
+
@Log("删除部门")
@ApiOperation("删除部门")
@DeleteMapping
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/SysUserDeptController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/SysUserDeptController.java
deleted file mode 100644
index 626ab54..0000000
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dept/SysUserDeptController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.nl.system.controller.dept;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- *
- * 部门表 前端控制器
- *
- *
- * @author generator
- * @since 2022-12-15
- */
-@RestController
-@RequestMapping("/sysUserDept")
-public class SysUserDeptController {
-
-}
-
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java
index e3efc82..66b7adb 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/dict/SysDictController.java
@@ -1,16 +1,14 @@
package org.nl.system.controller.dict;
-
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.dict.ISysDictService;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.dict.dto.DictQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -30,11 +28,11 @@ import java.util.Set;
* @since 2022-12-14
*/
@RestController
-@RequiredArgsConstructor
@RequestMapping("/api/dict")
public class SysDictController {
- private final ISysDictService dictService;
+ @Autowired
+ private ISysDictService dictService;
@Log("查询字典")
@GetMapping
@@ -44,6 +42,13 @@ public class SysDictController {
return new ResponseEntity<>(TableDataInfo.build(dictService.queryAll(whereJson,pageable)), HttpStatus.OK);
}
+ @ApiOperation("查询所有字典信息")
+ @GetMapping(value = "/all")
+// @SaCheckPermission("dict:list")
+ public ResponseEntity queryAll(){
+ return new ResponseEntity<>(dictService.queryAll(),HttpStatus.OK);
+ }
+
@Log("新增字典")
@PostMapping
@ApiOperation("新增字典")
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java
new file mode 100644
index 0000000..81d06da
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/generator/CodeGenConfigController.java
@@ -0,0 +1,45 @@
+package org.nl.system.controller.generator;
+
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.nl.system.service.generator.ICodeGenConfigService;
+import org.nl.system.service.generator.dao.CodeGenConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *
+ * 代码生成配置表 前端控制器
+ *
+ *
+ * @author lyd
+ * @since 2023-05-03
+ */
+@SaIgnore
+@RestController
+@Api(tags = "系统:代码生成管理")
+@RequestMapping("api/genConfig")
+public class CodeGenConfigController {
+
+ @Autowired
+ private ICodeGenConfigService genConfigService;
+
+ @ApiOperation("查询表数据")
+ @GetMapping(value = "/{tableName}")
+ public ResponseEntity query(@PathVariable String tableName){
+ return new ResponseEntity<>(genConfigService.findByTableName(tableName), HttpStatus.OK);
+ }
+
+ @ApiOperation("修改")
+ @PutMapping
+ public ResponseEntity update(@Validated @RequestBody CodeGenConfig genConfig){
+ return new ResponseEntity<>(genConfigService.update(genConfig.getTable_name(), genConfig),HttpStatus.OK);
+ }
+}
+
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/generator/CodeGeneratorController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/generator/CodeGeneratorController.java
new file mode 100644
index 0000000..cc48b9d
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/generator/CodeGeneratorController.java
@@ -0,0 +1,91 @@
+package org.nl.system.controller.generator;
+
+import cn.dev33.satoken.annotation.SaIgnore;
+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.exception.BadRequestException;
+import org.nl.system.service.generator.ICodeGenConfigService;
+import org.nl.system.service.generator.ICodeGeneratorService;
+import org.nl.system.service.generator.dao.CodeColumnConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ *
+ * 列的数据信息表 前端控制器
+ *
+ *
+ * @author lyd
+ * @since 2023-05-03
+ */
+@SaIgnore
+@RestController
+@RequestMapping("/api/generator")
+@Api(tags = "系统:代码生成管理")
+public class CodeGeneratorController {
+ @Autowired
+ private ICodeGeneratorService generatorService;
+ @Autowired
+ private ICodeGenConfigService genConfigService;
+
+ @Value("${generator.enabled}")
+ private Boolean generatorEnabled;
+
+ @ApiOperation("查询数据库数据")
+ @GetMapping(value = "/tables")
+ public ResponseEntity queryTables(@RequestParam(defaultValue = "") String name, PageQuery pageable){
+ return new ResponseEntity<>(TableDataInfo.build(generatorService.getTables(name, pageable)), HttpStatus.OK);
+ }
+
+ @ApiOperation("查询字段数据")
+ @GetMapping(value = "/columns")
+ public ResponseEntity queryColumns(@RequestParam String tableName){
+ return new ResponseEntity<>(TableDataInfo.build(generatorService.getColumns(tableName)), HttpStatus.OK);
+ }
+
+ @ApiOperation("批量修改字段数据")
+ @PutMapping
+ public ResponseEntity save(@RequestBody List columnInfos){
+ generatorService.updateBatchById(columnInfos);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @ApiOperation("同步字段数据")
+ @PostMapping(value = "sync")
+ public ResponseEntity sync(@RequestBody List tables){
+ for (String table : tables) {
+ generatorService.sync(generatorService.getColumns(table), generatorService.query(table));
+ }
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @ApiOperation("生成代码")
+ @PostMapping(value = "/{tableName}/{type}")
+ public ResponseEntity generator(@PathVariable String tableName, @PathVariable Integer type, HttpServletRequest request, HttpServletResponse response){
+ if(!generatorEnabled && type == 0){
+ throw new BadRequestException("此环境不允许生成代码,请选择预览或者下载查看!");
+ }
+ switch (type){
+ // 生成代码
+ case 0: generatorService.generator(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName));
+ break;
+ // 预览
+ case 1: return generatorService.preview(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName));
+ // 打包
+ case 2: generatorService.download(genConfigService.findByTableName(tableName), generatorService.getColumns(tableName), request, response);
+ break;
+ default: throw new BadRequestException("没有这个选项");
+ }
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
+
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logging/SysLogController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logging/SysLogController.java
new file mode 100644
index 0000000..5323312
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logging/SysLogController.java
@@ -0,0 +1,81 @@
+package org.nl.system.controller.logging;
+
+
+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;
+import org.nl.common.utils.SecurityUtils;
+import org.nl.system.service.logging.ISysLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ *
+ * 系统日志 前端控制器
+ *
+ *
+ * @author generator
+ * @since 2023-05-08
+ */
+@RestController
+@RequestMapping("/api/logs")
+@Api(tags = "系统:日志管理")
+public class SysLogController {
+ @Autowired
+ private ISysLogService logService;
+ @GetMapping
+ @ApiOperation("日志查询")
+ //@SaCheckPermission("@el.check()")
+ public ResponseEntity query(@RequestParam Map criteria, PageQuery pageable){
+ criteria.put("log_type","INFO");
+ return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria,pageable)), HttpStatus.OK);
+ }
+
+ @GetMapping(value = "/user")
+ // @ApiOperation("用户日志查询")
+ public ResponseEntity queryUserLog(@RequestParam Map criteria, PageQuery pageable){
+ criteria.put("log_type","INFO");
+ criteria.put("username", SecurityUtils.getCurrentUsername());
+ return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria,pageable)), HttpStatus.OK);
+ }
+
+ @GetMapping(value = "/error")
+ @ApiOperation("错误日志查询")
+ // @SaCheckPermission("@el.check()")
+ public ResponseEntity queryErrorLog(@RequestParam Map criteria, PageQuery pageable){
+ criteria.put("log_type","ERROR");
+ return new ResponseEntity<>(TableDataInfo.build(logService.queryAll(criteria,pageable)), HttpStatus.OK);
+ }
+
+ @GetMapping(value = "/error/{id}")
+ @ApiOperation("日志异常详情查询")
+ // @SaCheckPermission("@el.check()")
+ public ResponseEntity queryErrorLogs(@PathVariable String id){
+ return new ResponseEntity<>(logService.findByErrDetail(id), HttpStatus.OK);
+ }
+
+ @DeleteMapping(value = "/del/error")
+ @Log("删除所有ERROR日志")
+ @ApiOperation("删除所有ERROR日志")
+ // @SaCheckPermission("@el.check()")
+ public ResponseEntity delAllErrorLog(){
+ logService.delAllByError();
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @DeleteMapping(value = "/del/info")
+ @Log("删除所有INFO日志")
+ @ApiOperation("删除所有INFO日志")
+ // @SaCheckPermission("@el.check()")
+ public ResponseEntity delAllInfoLog(){
+ logService.delAllByInfo();
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+}
+
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logicflow/StageController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logicflow/StageController.java
new file mode 100644
index 0000000..65e23de
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logicflow/StageController.java
@@ -0,0 +1,99 @@
+package org.nl.system.controller.logicflow;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.base.TableDataInfo;
+import org.nl.common.domain.query.PageQuery;
+import org.nl.common.logging.annotation.Log;
+import org.nl.system.service.logicflow.IStageService;
+import org.nl.system.service.logicflow.dao.Stage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ *
+ * 舞台主表 前端控制器
+ *
+ *
+ * @author generator
+ * @since 2023-05-08
+ */
+@Slf4j
+@RestController
+@Api(tags = "舞台管理")
+@RequestMapping("/api/stage")
+public class StageController {
+
+ @Autowired
+ private IStageService stageService;
+
+ @GetMapping
+ @Log("查询舞台")
+ @ApiOperation("查询舞台")
+ //@SaCheckPermission("stage:list")
+ public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) {
+ return new ResponseEntity<>(TableDataInfo.build(stageService.queryAll(whereJson, page)), HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增舞台")
+ @ApiOperation("新增舞台")
+ //@SaCheckPermission("stage:add")
+ public ResponseEntity create(@Validated @RequestBody Stage dto) {
+ stageService.create(dto);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改舞台")
+ @ApiOperation("修改舞台")
+ //@SaCheckPermission("stage:edit")
+ public ResponseEntity update(@Validated @RequestBody Stage dto) {
+ stageService.update(dto);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @Log("删除舞台")
+ @ApiOperation("删除舞台")
+ //@SaCheckPermission("stage:del")
+ @DeleteMapping
+ public ResponseEntity delete(@RequestBody Set ids) {
+ stageService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @GetMapping("/selectList")
+ @Log("下拉选舞台")
+ @ApiOperation("下拉选舞台")
+ //@SaCheckPermission("routePlan:list")
+ public ResponseEntity selectList() {
+ return new ResponseEntity<>(stageService.selectList(), HttpStatus.OK);
+ }
+
+ @PostMapping("/addNewStage")
+ @Log("保存舞台数据")
+ @ApiOperation("保存舞台数据")
+ public ResponseEntity addNewStage(@Validated @RequestBody Stage dto) {
+ log.info("dto{}",dto);
+ stageService.addNewStage(dto);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PostMapping("/getNewStageDataByCode")
+ @Log("根据stage_code获取舞台数据")
+ @ApiOperation("根据stage_code获取舞台数据")
+ public ResponseEntity getNewStageDataByCode(@RequestBody String code) {
+ Stage one = stageService.getOne(new LambdaQueryWrapper().eq(Stage::getStage_code, code));
+ return new ResponseEntity<>(one, HttpStatus.CREATED);
+ }
+
+}
+
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logicflow/StageImageController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logicflow/StageImageController.java
new file mode 100644
index 0000000..c8e5f2d
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/logicflow/StageImageController.java
@@ -0,0 +1,80 @@
+package org.nl.system.controller.logicflow;
+
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.base.TableDataInfo;
+import org.nl.common.domain.query.PageQuery;
+import org.nl.common.logging.annotation.Log;
+import org.nl.system.service.logicflow.IStageImageService;
+import org.nl.system.service.logicflow.dao.StageImage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.Set;
+
+
+/**
+ * @Author: lyd
+ * @Description: 舞台图标控制层
+ * @Date: 2022-07-29
+ */
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "舞台管理")
+@RequestMapping("/api/stageImage")
+@Slf4j
+public class StageImageController {
+
+ @Autowired
+ private IStageImageService stageImageService;
+ @GetMapping
+ @Log("查询舞台")
+ @ApiOperation("查询舞台")
+ //@SaCheckPermission("stageImage:list")
+ public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) {
+ return new ResponseEntity<>(TableDataInfo.build(stageImageService.queryAll(whereJson, page)), HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增舞台图片")
+ @ApiOperation("新增舞台图片")
+ //@SaCheckPermission("stageImage:add")
+ public ResponseEntity create(@Validated @RequestBody StageImage entity) {
+ stageImageService.create(entity);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改舞台")
+ @ApiOperation("修改舞台")
+ //@SaCheckPermission("stageImage:edit")
+ public ResponseEntity update(@Validated @RequestBody StageImage entity) {
+ stageImageService.update(entity);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @Log("删除舞台")
+ @ApiOperation("删除舞台")
+ //@SaCheckPermission("stageImage:del")
+ @DeleteMapping
+ public ResponseEntity delete(@RequestBody Set ids) {
+ stageImageService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @GetMapping("/selectList")
+ @Log("下拉选设备图标")
+ @ApiOperation("下拉选设备图标")
+ //@SaCheckPermission("routePlan:list")
+ public ResponseEntity selectList() {
+ return new ResponseEntity<>(stageImageService.selectList(), HttpStatus.OK);
+ }
+}
+
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java
new file mode 100644
index 0000000..1ee76d9
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/lucence/LuceneController.java
@@ -0,0 +1,35 @@
+package org.nl.system.controller.lucence;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.logging.annotation.Log;
+import org.nl.system.service.lucene.LuceneService;
+import org.springframework.data.domain.Pageable;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "日志检索")
+@RequestMapping("/api/lucene")
+@Slf4j
+public class LuceneController {
+
+ private final LuceneService luceneService;
+
+ @GetMapping("/getAll")
+ @Log("日志检索")
+ @ApiOperation("日志检索")
+ //@PreAuthorize("@el.check('task:list')")
+ public ResponseEntity get(@RequestParam Map whereJson, Pageable page) {
+ return new ResponseEntity<>(luceneService.getAll(whereJson, page), HttpStatus.OK);
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/menu/SysMenuController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/menu/SysMenuController.java
index c6c8def..71e5679 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/menu/SysMenuController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/menu/SysMenuController.java
@@ -5,16 +5,16 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
-import org.nl.common.domain.query.PageQuery;
+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;
import org.nl.system.service.menu.ISysMenuService;
import org.nl.system.service.menu.dao.SysMenu;
import org.nl.system.service.menu.dto.MenuDto;
import org.nl.system.service.menu.dto.MenuQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -33,9 +33,9 @@ import java.util.stream.Collectors;
*/
@RestController
@RequestMapping("api/sysMenu")
-@RequiredArgsConstructor
public class SysMenuController {
- private final ISysMenuService iSysMenuService;
+ @Autowired
+ private ISysMenuService iSysMenuService;
@GetMapping(value = "/build")
@ApiOperation("根据用户获取菜单")
@@ -68,7 +68,7 @@ public class SysMenuController {
List menuList = iSysMenuService.getMenus(id);
menuSet.add(iSysMenuService.findById(id));
menuSet = iSysMenuService.getChildMenus(menuList, menuSet);
- Set ids = menuSet.stream().map(SysMenu::getMenuId).collect(Collectors.toSet());
+ Set ids = menuSet.stream().map(SysMenu::getMenu_id).collect(Collectors.toSet());
return new ResponseEntity<>(ids, HttpStatus.OK);
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/monitor/MonitorController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/monitor/MonitorController.java
new file mode 100644
index 0000000..092e749
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/monitor/MonitorController.java
@@ -0,0 +1,47 @@
+/*
+ * 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.system.controller.monitor;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.nl.system.service.monitor.MonitorService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Zheng Jie
+ * @date 2020-05-02
+ */
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "系统-服务监控管理")
+@RequestMapping("/api/monitor")
+public class MonitorController {
+
+ private final MonitorService serverService;
+
+ @GetMapping
+ @ApiOperation("查询服务监控")
+ @SaCheckPermission("monitor:list")
+ public ResponseEntity query() {
+ return new ResponseEntity<>(serverService.getServers(),HttpStatus.OK);
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/notice/SysNoticeController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/notice/SysNoticeController.java
new file mode 100644
index 0000000..5d63042
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/notice/SysNoticeController.java
@@ -0,0 +1,107 @@
+package org.nl.system.controller.notice;
+
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.base.TableDataInfo;
+import org.nl.common.domain.query.PageQuery;
+import org.nl.common.logging.annotation.Log;
+import org.nl.system.service.notice.ISysNoticeService;
+import org.nl.system.service.notice.dao.SysNotice;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.Set;
+/**
+* @author lyd
+* @date 2023-05-09
+**/
+@Slf4j
+@RestController
+@Api(tags = "消息通知管理")
+@RequestMapping("/api/notice")
+public class SysNoticeController {
+
+ @Autowired
+ private ISysNoticeService noticeService;
+
+ @GetMapping
+ @Log("查询消息通知")
+ @ApiOperation("查询消息通知")
+ //@SaCheckPermission("@el.check('sysNotice:list')")
+ public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){
+ return new ResponseEntity<>(TableDataInfo.build(noticeService.queryAll(whereJson,page)),HttpStatus.OK);
+ }
+
+ @PostMapping
+ @Log("新增消息通知")
+ @ApiOperation("新增消息通知")
+ //@SaCheckPermission("@el.check('sysNotice:add')")
+ public ResponseEntity create(@Validated @RequestBody SysNotice entity){
+ noticeService.create(entity);
+ return new ResponseEntity<>(HttpStatus.CREATED);
+ }
+
+ @PutMapping
+ @Log("修改消息通知")
+ @ApiOperation("修改消息通知")
+ //@SaCheckPermission("@el.check('sysNotice:edit')")
+ public ResponseEntity update(@Validated @RequestBody SysNotice entity){
+ noticeService.update(entity);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @Log("删除消息通知")
+ @ApiOperation("删除消息通知")
+ //@SaCheckPermission("@el.check('sysNotice:del')")
+ @DeleteMapping
+ public ResponseEntity delete(@RequestBody Set ids) {
+ noticeService.deleteAll(ids);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ @Log("获取未读的接收消息条数")
+ @GetMapping("/countByReceiveNotRead")
+ public ResponseEntity countByReceiveNotRead(){
+ return new ResponseEntity<>(noticeService.countByReceiveNotRead(), HttpStatus.OK);
+ }
+
+ @Log("接收消息分页")
+ @GetMapping("/pageByReceive")
+ public ResponseEntity pageByReceive(){
+ return new ResponseEntity<>(noticeService.pageByReceive(), HttpStatus.OK);
+ }
+
+ @Log("标为已读")
+ @PostMapping("/read")
+ public ResponseEntity read(@RequestBody String id){
+ noticeService.read(id);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @Log("消息详情")
+ @PostMapping("/findById")
+ public ResponseEntity findById(@RequestBody String id){
+ return new ResponseEntity<>(noticeService.getById(id), HttpStatus.OK);
+ }
+
+ @Log("修改已处理")
+ @PostMapping("/deal")
+ public ResponseEntity deal(@RequestBody String id){
+ noticeService.deal(id);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+ @Log("批量已读")
+ @PostMapping("/changeRead")
+ @ApiOperation("批量已读")
+ public ResponseEntity changeRead(@RequestBody JSONObject jsonObject) {
+ noticeService.changeRead(jsonObject);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java
index c6902ac..b78ffb0 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java
@@ -3,14 +3,13 @@ package org.nl.system.controller.param;
import cn.dev33.satoken.annotation.SaIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.param.ISysParamService;
import org.nl.system.service.param.dao.Param;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -32,10 +31,10 @@ import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/api/param")
-@RequiredArgsConstructor
class SysParamController {
- private final ISysParamService paramService;
+ @Autowired
+ private ISysParamService paramService;
@GetMapping
@Log("查询系统参数")
@ApiOperation("查询系统参数")
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java
index 73135bb..4a94366 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/permission/SysDataPermissionController.java
@@ -4,15 +4,14 @@ package org.nl.system.controller.permission;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.permission.ISysDataPermissionService;
import org.nl.system.service.permission.dao.SysDataPermission;
import org.nl.system.service.permission.dto.SysDataPermissionQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -30,12 +29,12 @@ import java.util.Set;
*/
@Slf4j
@RestController
-@RequiredArgsConstructor
@Api(tags = "数据管理")
@RequestMapping("/api/dataPermission")
public class SysDataPermissionController {
- private final ISysDataPermissionService dataPermissionService;
+ @Autowired
+ private ISysDataPermissionService dataPermissionService;
@GetMapping
@Log("查询数据权限")
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java
index ccf957f..1b6bdf2 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/quartz/SysQuartzJobController.java
@@ -4,16 +4,15 @@ package org.nl.system.controller.quartz;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.nl.common.annotation.Log;
-import org.nl.common.aspect.exception.BadRequestException;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.exception.BadRequestException;
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.quartz.ISysQuartzJobService;
import org.nl.system.service.quartz.dao.SysQuartzJob;
import org.nl.system.service.quartz.dto.JobQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -31,13 +30,13 @@ import java.util.Set;
*/
@Slf4j
@RestController
-@RequiredArgsConstructor
@RequestMapping("/api/jobs")
@Api(tags = "系统:定时任务管理")
public class SysQuartzJobController {
private static final String ENTITY_NAME = "quartzJob";
- private final ISysQuartzJobService quartzJobService;
+ @Autowired
+ private ISysQuartzJobService quartzJobService;
@ApiOperation("查询定时任务")
@GetMapping
@@ -58,7 +57,7 @@ public class SysQuartzJobController {
@PostMapping
@SaCheckPermission("timing:add")
public ResponseEntity create(@Validated @RequestBody SysQuartzJob resources) {
- if (resources.getJobId() != null) {
+ if (resources.getJob_id() != null) {
throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID");
}
quartzJobService.createJob(resources);
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/redis/RedisController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/redis/RedisController.java
new file mode 100644
index 0000000..ec89c86
--- /dev/null
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/redis/RedisController.java
@@ -0,0 +1,57 @@
+package org.nl.system.controller.redis;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.nl.common.logging.annotation.Log;
+import org.nl.system.service.redis.RedisService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author: lyd
+ * @Description: Redis监控管理
+ * @Date: 2022-08-04
+ */
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "系统表格管理")
+@RequestMapping("/api/redis")
+@Slf4j
+public class RedisController {
+
+ private final RedisService redisService;
+
+ @GetMapping("/get-monitor-info")
+ @Log("查询redis的信息")
+ @ApiOperation("查询redis的信息")
+ public ResponseEntity getRedisMonitorInfo() {
+ return new ResponseEntity<>(redisService.getRedisMonitorInfo(),HttpStatus.OK);
+ }
+
+ @GetMapping("/get-key-define-list")
+ @Log("获得 Redis Key 模板列表")
+ @ApiOperation("获得 Redis Key 模板列表")
+ public ResponseEntity getKeyDefineList() {
+ return new ResponseEntity<>(redisService.getKeyDefineList(),HttpStatus.OK);
+ }
+
+ @GetMapping("/get-key-value-list")
+ @Log("获得 Redis Key Value列表")
+ @ApiOperation("获得 Redis Key Value列表")
+ public ResponseEntity getKeyValueList() {
+ return new ResponseEntity<>( redisService.getKeyValueList(),HttpStatus.OK);
+ }
+
+ @Log("根据key删除Redis数据")
+ @ApiOperation("根据key删除Redis数据")
+ @DeleteMapping
+ public ResponseEntity deleteByKey(@RequestBody String[] ids) {
+ redisService.deleteByKey(ids);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+
+
+}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/role/SysRoleController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/role/SysRoleController.java
index 29b9311..2eacfa3 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/role/SysRoleController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/role/SysRoleController.java
@@ -3,12 +3,11 @@ package org.nl.system.controller.role;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.role.ISysRoleService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@@ -26,10 +25,10 @@ import java.util.Set;
*/
@RestController
@RequestMapping("/api/sysRole")
-@RequiredArgsConstructor
public class SysRoleController {
- private final ISysRoleService roleService;
+ @Autowired
+ private ISysRoleService roleService;
@ApiOperation("分页查询角色")
@GetMapping
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java
index eddafce..321bfa3 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/secutiry/AuthorizationController.java
@@ -1,18 +1,4 @@
-/*
- * 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.system.controller.secutiry;
@@ -23,24 +9,22 @@ import com.alibaba.fastjson.JSONObject;
import com.wf.captcha.base.Captcha;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.utils.RedisUtils;
import org.nl.common.utils.SecurityUtils;
-import org.nl.system.service.dept.ISysDeptService;
-import org.nl.system.service.dept.dao.SysDept;
-import org.nl.system.service.secutiry.dto.LoginCodeEnum;
-import org.nl.system.service.secutiry.dto.LoginProperties;
+import org.nl.common.utils.dto.CurrentUser;
+import org.nl.common.security.config.bean.LoginCodeEnum;
+import org.nl.common.security.config.bean.LoginProperties;
import org.nl.system.service.secutiry.impl.OnlineUserService;
-import org.nl.system.service.user.dto.CurrentUser;
+import org.nl.system.service.user.ISysUserService;
+import org.nl.system.service.user.dao.SysUser;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -52,21 +36,22 @@ import java.util.concurrent.TimeUnit;
@Slf4j
@RestController
@RequestMapping("/auth")
-@RequiredArgsConstructor
@Api(tags = "系统:系统授权接口")
public class AuthorizationController {
- private final RedisUtils redisUtils;
- private final OnlineUserService onlineUserService;
- private final ISysDeptService deptService;
-
- @Resource
+ @Autowired
+ private RedisUtils redisUtils;
+ @Autowired
+ private OnlineUserService onlineUserService;
+ @Autowired
+ private ISysUserService userService;
+ @Autowired
private LoginProperties loginProperties;
@ApiOperation("登录授权")
@PostMapping(value = "/login")
public ResponseEntity login(@RequestBody Map authMap) throws Exception {
if (ObjectUtil.isEmpty(authMap)){
- return ResponseEntity.noContent().build();
+ return ResponseEntity.noContent().build();
}
return ResponseEntity.ok(onlineUserService.login(authMap));
}
@@ -79,10 +64,6 @@ public class AuthorizationController {
JSONObject jsonObject = new JSONObject();
jsonObject.put("roles", SecurityUtils.getCurrentUserPermissions());
jsonObject.put("user", currentUser.getUser());
- //TODO:添加部门
- List depts = deptService.getUserDeptRelation(currentUser.getId());
- jsonObject.put("depts",depts);
-
return ResponseEntity.ok(jsonObject);
}
@@ -90,9 +71,8 @@ public class AuthorizationController {
@GetMapping(value = "/userInfo")
public ResponseEntity getUserInfo(Long loginId) {
if (loginId != null){
-// WQLObject userTab = WQLObject.getWQLObject("sys_user");
-// JSONObject user = userTab.query("user_id = '" + loginId + "'").uniqueResult(0);
- return ResponseEntity.ok(null);
+ SysUser user = userService.getById(loginId);
+ return ResponseEntity.ok(user);
}
return ResponseEntity.noContent().build();
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java
index 8f9bf37..e042e03 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/tools/ToolLocalStorageController.java
@@ -5,16 +5,15 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.aspect.exception.BadRequestException;
-import org.nl.common.domain.TableDataInfo;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
-
+import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.FileUtil;
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.tools.IToolLocalStorageService;
import org.nl.system.service.tools.dao.ToolLocalStorage;
import org.nl.system.service.tools.dto.ToolLocalStorageQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
@@ -32,11 +31,11 @@ import java.util.Set;
* @since 2022-12-20
*/
@RestController
-@RequiredArgsConstructor
@Api(tags = "工具:本地存储管理")
@RequestMapping("/api/localStorage")
public class ToolLocalStorageController {
- private final IToolLocalStorageService localStorageService;
+ @Autowired
+ private IToolLocalStorageService localStorageService;
@ApiOperation("查询文件")
@GetMapping
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/OnlineController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/OnlineController.java
index e043d2c..567898e 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/OnlineController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/OnlineController.java
@@ -17,9 +17,9 @@ package org.nl.system.controller.user;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
import org.nl.common.utils.EncryptUtils;
import org.nl.system.service.secutiry.impl.OnlineUserService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -33,12 +33,12 @@ import java.util.Set;
* @author Zheng Jie
*/
@RestController
-@RequiredArgsConstructor
@RequestMapping("/auth/online")
@Api(tags = "系统:在线用户管理")
public class OnlineController {
- private final OnlineUserService onlineUserService;
+ @Autowired
+ private OnlineUserService onlineUserService;
@ApiOperation("查询在线用户")
@GetMapping
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/UserController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/UserController.java
index 1398405..c9204a5 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/UserController.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/UserController.java
@@ -18,18 +18,19 @@ package org.nl.system.controller.user;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.dev33.satoken.stp.StpUtil;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
-import org.nl.common.annotation.Log;
-import org.nl.common.aspect.exception.BadRequestException;
+import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
+import org.nl.config.RsaProperties;
+import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.RsaUtils;
import org.nl.common.utils.SecurityUtils;
-
-import org.nl.config.other.RsaProperties;
+import org.nl.common.logging.annotation.Log;
import org.nl.system.service.user.ISysUserService;
import org.nl.system.service.user.dao.SysUser;
import org.nl.system.service.user.dto.UserQuery;
@@ -53,13 +54,13 @@ import java.util.Set;
public class UserController {
@Autowired
- ISysUserService userService;
+ private ISysUserService userService;
@ApiOperation("查询用户")
@GetMapping
public ResponseEntity query(UserQuery query, PageQuery page){
- return new ResponseEntity(userService.getUserDetail(query, page),HttpStatus.OK);
+ return new ResponseEntity(TableDataInfo.build(userService.getUserDetail(query, page)),HttpStatus.OK);
}
@Log("新增用户")
@@ -84,7 +85,7 @@ public class UserController {
@ApiOperation("修改用户:个人中心")
// @PutMapping(value = "center")
public ResponseEntity center(@RequestBody SysUser resources){
- if(!resources.getUserId().equals(StpUtil.getLoginIdAsLong())){
+ if(!resources.getUser_id().equals(StpUtil.getLoginIdAsLong())){
throw new BadRequestException("不能修改他人资料");
}
userService.saveOrUpdate(resources);
@@ -103,7 +104,18 @@ public class UserController {
@ApiOperation("修改密码")
@PostMapping(value = "/updatePass")
public ResponseEntity updatePass(@RequestBody JSONObject passVo) throws Exception {
- userService.updatePass(passVo);
+ // 解密,得到字符密码
+ String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getString("oldPass"));
+ String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getString("newPass"));
+ SysUser user = userService.getOne(new LambdaQueryWrapper().eq(SysUser::getUsername, SecurityUtils.getCurrentUsername()));
+ if (!SaSecureUtil.md5BySalt(user.getPassword(), "salt").equals(SaSecureUtil.md5BySalt(oldPass, "salt"))) {
+ throw new BadRequestException("修改失败,旧密码错误");
+ }
+ if (!SaSecureUtil.md5BySalt(user.getPassword(), "salt").equals(SaSecureUtil.md5BySalt(newPass, "salt"))) {
+ throw new BadRequestException("新密码不能与旧密码相同");
+ }
+ user.setPassword(SaSecureUtil.md5BySalt(newPass, "salt"));
+ userService.updateById(user);
return new ResponseEntity<>(HttpStatus.OK);
}
@@ -118,7 +130,7 @@ public class UserController {
@PostMapping(value = "/updateEmail/{code}")
public ResponseEntity updateEmail(@PathVariable String code,@RequestBody SysUser user) throws Exception {
String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,user.getPassword());
- SysUser userInfo = userService.getOne(new QueryWrapper().eq("username", SecurityUtils.getCurrentUsername()));
+ SysUser userInfo = userService.getOne(new QueryWrapper().eq("username",SecurityUtils.getCurrentUsername()));
if(!SaSecureUtil.md5BySalt(userInfo.getPassword(), "salt").equals(SaSecureUtil.md5BySalt(password, "salt"))){
throw new BadRequestException("密码错误");
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java
index 4f227a2..49d63fb 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/ISysCodeRuleService.java
@@ -25,7 +25,7 @@ public interface ISysCodeRuleService extends IService {
* @param pageable
* @return
*/
- IPage queryAll(CodeRuleQuery form, PageQuery pageable);
+ IPage queryAll(Map form, PageQuery pageable);
/**
* 创建编码
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java
index 809302f..8563b74 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRule.java
@@ -41,7 +41,7 @@ public class SysCodeRule implements Serializable {
/**
* 当前值
*/
- private String currentValue;
+ private String current_value;
/**
* 备注
@@ -51,42 +51,42 @@ public class SysCodeRule implements Serializable {
/**
* 是否启用
*/
- private String isActive;
+ private String is_active;
/**
* 是否删除
*/
- private String isDelete;
+ private String is_delete;
/**
* 创建id
*/
- private String createId;
+ private String create_id;
/**
* 创建者
*/
- private String createName;
+ private String create_name;
/**
* 创建时间
*/
- private String createTime;
+ private String create_time;
/**
* 修改id
*/
- private String updateId;
+ private String update_id;
/**
* 修改者
*/
- private String updateName;
+ private String update_name;
/**
* 修改时间
*/
- private String updateTime;
+ private String update_time;
@TableField(exist = false)
private String demo;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java
index 7016de0..b85d88a 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/dao/SysCodeRuleDetail.java
@@ -38,17 +38,17 @@ public class SysCodeRuleDetail implements Serializable {
/**
* 初始值
*/
- private String initValue;
+ private String init_value;
/**
* 当前值
*/
- private String currentValue;
+ private String current_value;
/**
* 允许最大值
*/
- private String maxValue;
+ private String max_value;
/**
* 步长
@@ -73,7 +73,7 @@ public class SysCodeRuleDetail implements Serializable {
/**
* 排序号
*/
- private BigDecimal sortNum;
+ private BigDecimal sort_num;
/**
* 备注
@@ -83,50 +83,50 @@ public class SysCodeRuleDetail implements Serializable {
/**
* 编码规则标识
*/
- private String codeRuleId;
+ private String code_rule_id;
/**
* 是否启用
*/
- private String isActive;
+ private String is_active;
/**
* 是否删除
*/
- private String isDelete;
+ private String is_delete;
/**
* 创建id
*/
- private String createId;
+ private String create_id;
/**
* 创建者
*/
- private String createName;
+ private String create_name;
/**
* 创建时间
*/
- private String createTime;
+ private String create_time;
/**
* 修改id
*/
- private String updateId;
+ private String update_id;
/**
* 修改者
*/
- private String updateName;
+ private String update_name;
/**
* 修改时间
*/
- private String updateTime;
+ private String update_time;
@TableField(exist = false)
- private String dictName;
+ private String dict_name;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java
index 18c6d02..778f3f4 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/coderule/impl/SysCodeRuleDetailServiceImpl.java
@@ -5,21 +5,19 @@ import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils;
+import org.nl.system.service.coderule.ISysCodeRuleDetailService;
import org.nl.system.service.coderule.dao.SysCodeRuleDetail;
import org.nl.system.service.coderule.dao.mapper.SysCodeRuleDetailMapper;
-import org.nl.system.service.coderule.ISysCodeRuleDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.system.service.coderule.dto.CodeRuleDetailQuery;
import org.nl.system.service.coderule.utils.CodeRuleTypeEnum;
-import org.springframework.data.domain.Pageable;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
-import java.util.Map;
/**
*
@@ -30,15 +28,14 @@ import java.util.Map;
* @since 2022-12-20
*/
@Service
-@RequiredArgsConstructor
public class SysCodeRuleDetailServiceImpl extends ServiceImpl implements ISysCodeRuleDetailService {
-
- private final SysCodeRuleDetailMapper codeRuleDetailMapper;
+ @Autowired
+ private SysCodeRuleDetailMapper codeRuleDetailMapper;
@Override
public IPage queryAll(CodeRuleDetailQuery form, PageQuery page) {
LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
- lam.eq(SysCodeRuleDetail::getCodeRuleId, form.getId())
- .orderByAsc(SysCodeRuleDetail::getSortNum);
+ lam.eq(SysCodeRuleDetail::getCode_rule_id, form.getId())
+ .orderByAsc(SysCodeRuleDetail::getSort_num);
IPage pages = new Page<>(page.getPage() + 1, page.getSize());
codeRuleDetailMapper.selectPage(pages, lam);
return pages;
@@ -51,19 +48,19 @@ public class SysCodeRuleDetailServiceImpl extends ServiceImpl
@@ -38,15 +36,21 @@ import java.util.function.Consumer;
* @since 2022-12-19
*/
@Service
-@RequiredArgsConstructor
public class SysCodeRuleServiceImpl extends ServiceImpl implements ISysCodeRuleService {
-
- private final SysCodeRuleMapper codeRuleMapper;
- private final SysCodeRuleDetailMapper codeRuleDetailMapper;
+ @Autowired
+ private SysCodeRuleMapper codeRuleMapper;
+ @Autowired
+ private SysCodeRuleDetailMapper codeRuleDetailMapper;
@Override
- public IPage queryAll(CodeRuleQuery form, PageQuery pageable) {
- IPage page = this.page(pageable.build(SysCodeRule.class), form.build());
+ public IPage queryAll(Map form, PageQuery pageable) {
+ String blurry = ObjectUtil.isNotEmpty(form.get("blurry"))?form.get("blurry").toString():null;
+ LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
+ lam.like(ObjectUtil.isNotEmpty(blurry), SysCodeRule::getCode, blurry)
+ .or(ObjectUtil.isNotEmpty(blurry))
+ .like(ObjectUtil.isNotEmpty(blurry), SysCodeRule::getName, blurry);
+ IPage page = new Page<>(pageable.getPage() + 1, pageable.getSize());
+ codeRuleMapper.selectPage(page, lam);
page.getRecords().forEach(sysCodeRule -> sysCodeRule.setDemo(codeDemo(MapOf.of("flag", "0", "code", sysCodeRule.getCode()))));
return page;
}
@@ -57,7 +61,7 @@ public class SysCodeRuleServiceImpl extends ServiceImpl().eq(SysCodeRule::getCode, code)).getId();
// 如果flag = 1就执行更新数据库的操作
String flag = (String) form.get("flag");
- List ruleDetails = codeRuleDetailMapper.selectList(new LambdaQueryWrapper().eq(SysCodeRuleDetail::getCodeRuleId, id));
+ List ruleDetails = codeRuleDetailMapper.selectList(new LambdaQueryWrapper().eq(SysCodeRuleDetail::getCode_rule_id, id));
String demo = "";
boolean isSame = true;
for(SysCodeRuleDetail detail : ruleDetails) {
@@ -65,11 +69,11 @@ public class SysCodeRuleServiceImpl extends ServiceImpl maxValue) {
- numValue = detail.getInitValue();
+ Long maxValue = Long.valueOf(detail.getMax_value());
+ if (!isSame && (Long.valueOf(detail.getCurrent_value()) + step) > maxValue) {
+ numValue = detail.getInit_value();
} else {
- numValue = Integer.parseInt(detail.getCurrentValue()) + step + "";
+ numValue = Integer.parseInt(detail.getCurrent_value()) + step + "";
}
int size = numValue.length();
int length = detail.getLength();
@@ -101,18 +105,18 @@ public class SysCodeRuleServiceImpl extends ServiceImpl= maxValue) {
- numCurr = Integer.parseInt(detail.getInitValue());
- detail.setCurrentValue(String.valueOf(numCurr));
+ numCurr = Integer.parseInt(detail.getInit_value());
+ detail.setCurrent_value(String.valueOf(numCurr));
}else{
- detail.setCurrentValue(String.valueOf(numCurr + step));
+ detail.setCurrent_value(String.valueOf(numCurr + step));
}
}
}
@@ -134,12 +138,12 @@ public class SysCodeRuleServiceImpl extends ServiceImpl sysCodeRules = codeRuleMapper.selectList(new LambdaQueryWrapper().eq(SysCodeRule::getCode, codeRule.getCode()));
if (ObjectUtil.isNotEmpty(sysCodeRules)) throw new BadRequestException("编号[" + sysCodeRules.get(0).getCode() + "]已存在");
codeRule.setId(IdUtil.getSnowflake(1,1).nextIdStr());
- codeRule.setCreateId(currentUserId);
- codeRule.setCreateName(currentUsername);
- codeRule.setCreateTime(now);
- codeRule.setUpdateId(currentUserId);
- codeRule.setUpdateName(currentUsername);
- codeRule.setUpdateTime(now);
+ codeRule.setCreate_id(currentUserId);
+ codeRule.setCreate_name(currentUsername);
+ codeRule.setCreate_time(now);
+ codeRule.setUpdate_id(currentUserId);
+ codeRule.setUpdate_name(currentUsername);
+ codeRule.setUpdate_time(now);
codeRuleMapper.insert(codeRule);
}
@@ -148,7 +152,7 @@ public class SysCodeRuleServiceImpl extends ServiceImpl ids) {
ids.forEach(id -> {
codeRuleMapper.deleteById(id);
- codeRuleDetailMapper.delete(new LambdaQueryWrapper().eq(SysCodeRuleDetail::getCodeRuleId, id));
+ codeRuleDetailMapper.delete(new LambdaQueryWrapper().eq(SysCodeRuleDetail::getCode_rule_id, id));
});
}
@@ -161,9 +165,9 @@ public class SysCodeRuleServiceImpl extends ServiceImpl {
* @param deptIds
*/
void saveUserDeptRelation(String UserId, Collection deptIds);
-
- List getUserDeptRelation(String UserId);
-
void delUserDeptRelation(String user);
/**
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java
index e3c4b02..b865cf3 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysDept.java
@@ -29,7 +29,7 @@ public class SysDept implements Serializable {
* ID
*/
@TableId(value = "dept_id", type = IdType.NONE)
- private String deptId;
+ private String dept_id;
/**
* 上级部门
@@ -39,7 +39,7 @@ public class SysDept implements Serializable {
/**
* 子部门数目
*/
- private Integer subCount;
+ private Integer sub_count;
/**
* 名称
@@ -49,45 +49,45 @@ public class SysDept implements Serializable {
/**
* 排序
*/
- private Integer deptSort;
+ private Integer dept_sort;
/**
* 状态
*/
- private Boolean isUsed;
+ private Boolean is_used;
- private String createId;
+ private String create_id;
/**
* 创建者
*/
- private String createName;
+ private String create_name;
- private String updateId;
+ private String update_id;
/**
* 更新者
*/
- private String updateName;
+ private String update_name;
/**
* 创建日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private Date createTime;
+ private Date create_time;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private Date updateTime;
+ private Date update_time;
/**
* 部门编号
*/
private String code;
- private String extId;
+ private String ext_id;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java
index 48b97d8..fb29ffa 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/SysUserDept.java
@@ -1,7 +1,5 @@
package org.nl.system.service.dept.dao;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -26,13 +24,12 @@ public class SysUserDept implements Serializable {
/**
* 用户标识
*/
- @TableId(value = "user_id", type = IdType.NONE)
- private Long userId;
+ private Long user_id;
/**
* 部门标识
*/
- private Long deptId;
+ private Long dept_id;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java
index bfdc607..97d0e9b 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dao/mapper/SysDeptMapper.java
@@ -2,7 +2,6 @@ package org.nl.system.service.dept.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
import org.nl.system.service.dept.dao.SysDept;
import java.util.Collection;
@@ -29,10 +28,6 @@ public interface SysDeptMapper extends BaseMapper {
List getDeptRelation(@Param("deptIds") Collection deptIds);
-
- @Select("select sys_dept.* from sys_dept inner join sys_user_dept on sys_dept.dept_id = sys_user_dept.dept_id where sys_user_dept.user_id = #{user}")
- List getDeptRelationByUser(@Param("user") String user);
-
/**
* 跟新sub_count字段
* @param deptId
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java
index 6861e2f..51854f0 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptQuery.java
@@ -23,11 +23,11 @@ public class DeptQuery extends BaseQuery {
private Long pid;
- private Boolean pidIsNull;
+ private Boolean pid_is_null;
@Override
public void paramMapping() {
- super.doP.put("pidIsNull", QParam.builder().k(new String[]{"pid"}).type(QueryTEnum.NO).build());
- super.doP.put("deptIds", QParam.builder().k(new String[]{"deptId"}).type(QueryTEnum.IN).build());
+ super.doP.put("pid_is_null", QParam.builder().k(new String[]{"pid"}).type(QueryTEnum.NO).build());
+ super.doP.put("deptIds", QParam.builder().k(new String[]{"dept_id"}).type(QueryTEnum.IN).build());
}
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptTree.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptTree.java
index 61c0323..0aaf8b8 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptTree.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/dto/DeptTree.java
@@ -30,7 +30,7 @@ import java.util.List;
@Setter
public class DeptTree implements Serializable {
- private String deptId;
+ private String dept_id;
private String pid;
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java
index 5101e5e..93ea266 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysDeptServiceImpl.java
@@ -5,18 +5,18 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
-import org.nl.common.aspect.exception.BadRequestException;
import org.nl.common.domain.query.PageQuery;
-import org.nl.common.utils.CopyUtil;
-import org.nl.common.utils.IdUtil;
+import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
+import org.nl.common.utils.dto.CurrentUser;
+import org.nl.common.domain.vo.DeptVo;
+import org.nl.system.service.dept.dto.DeptTree;
+import org.nl.common.utils.CopyUtil;
+import org.nl.config.IdUtil;
import org.nl.system.service.dept.ISysDeptService;
import org.nl.system.service.dept.dao.SysDept;
import org.nl.system.service.dept.dao.mapper.SysDeptMapper;
import org.nl.system.service.dept.dto.DeptQuery;
-import org.nl.system.service.dept.dto.DeptTree;
-import org.nl.system.service.dept.dto.DeptVo;
-import org.nl.system.service.user.dto.CurrentUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -34,7 +34,6 @@ import java.util.stream.Collectors;
* @since 2022-12-15
*/
@Service
-@Transactional
public class SysDeptServiceImpl extends ServiceImpl implements ISysDeptService {
@Autowired
@@ -63,7 +62,7 @@ public class SysDeptServiceImpl extends ServiceImpl impl
trees.add(deptDTO);
}
for (DeptTree it : deptDtos) {
- if (it.getPid() != null && deptDTO.getDeptId().equals(it.getPid())) {
+ if (it.getPid() != null && deptDTO.getDept_id().equals(it.getPid())) {
isChild = true;
if (deptDTO.getChildren() == null) {
deptDTO.setChildren(new ArrayList<>());
@@ -85,18 +84,18 @@ public class SysDeptServiceImpl extends ServiceImpl impl
@Override
public Page queryVo(DeptQuery query, PageQuery pageQuery) {
- if (query.getPidIsNull() == null){
+ if (query.getPid_is_null() == null){
if (query.getPid() == null){
- query.setPidIsNull(true);
+ query.setPid_is_null(true);
}
- if (StringUtils.isNotEmpty(query.getName()) || query.getIsUsed()!=null){
- query.setPidIsNull(null);
+ if (StringUtils.isNotEmpty(query.getName()) || query.getIs_used()!=null){
+ query.setPid_is_null(null);
}
}
Page page = this.page(pageQuery.build(SysDept.class), query.build());
page.setRecords(CopyUtil.copyList(page.getRecords(), DeptVo.class));
- if (StringUtils.isNotEmpty(query.getName()) || query.getIsUsed()!=null){
- page.getRecords().forEach(a->((DeptVo)a).setHasChildren(false) );
+ if (StringUtils.isNotEmpty(query.getName()) || query.getIs_used()!=null){
+ page.getRecords().forEach(a->((DeptVo)a).setHas_children(false) );
}
return page;
}
@@ -110,11 +109,6 @@ public class SysDeptServiceImpl extends ServiceImpl impl
sysDeptMapper.saveDeptRelation(userId,deptIds);
}
- @Override
- public List getUserDeptRelation(String user) {
- return sysDeptMapper.getDeptRelationByUser(user);
- }
-
@Override
public void delUserDeptRelation(String user) {
sysDeptMapper.delDeptRelation(user);
@@ -123,12 +117,12 @@ public class SysDeptServiceImpl extends ServiceImpl impl
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDept(SysDept dept) {
- if (dept == null ||StringUtils.isEmpty(dept.getDeptId())){
+ if (dept == null ||StringUtils.isEmpty(dept.getDept_id())){
return;
}
this.updateById(dept);
//删除节点信息
- sysDeptMapper.updateSubCount(dept.getDeptId());
+ sysDeptMapper.updateSubCount(dept.getDept_id());
if (StringUtils.isNotEmpty(dept.getPid())){
sysDeptMapper.updateSubCount(dept.getPid());
}
@@ -171,12 +165,11 @@ public class SysDeptServiceImpl extends ServiceImpl impl
@Override
@Transactional(rollbackFor = Exception.class)
public void createDept(SysDept dept) {
- dept.setDeptId(IdUtil.getStringId());
+ dept.setDept_id(IdUtil.getStringId());
CurrentUser user = SecurityUtils.getCurrentUser();
- dept.setCreateId(user.getId());
- dept.setCreateName(user.getPresonName());
- dept.setCreateTime(new Date());
- dept.setCode(UUID.randomUUID().toString());
+ dept.setCreate_id(user.getId());
+ dept.setCreate_name(user.getPresonName());
+ dept.setCreate_time(new Date());
this.save(dept);
// 清理缓存
if (StringUtils.isNotEmpty(dept.getPid())){
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java
index ac45fc9..e9a9774 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dept/impl/SysUserDeptServiceImpl.java
@@ -5,7 +5,6 @@ import org.nl.system.service.dept.ISysUserDeptService;
import org.nl.system.service.dept.dao.SysUserDept;
import org.nl.system.service.dept.dao.mapper.SysUserDeptMapper;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
/**
*
@@ -16,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
* @since 2022-12-15
*/
@Service
-@Transactional
public class SysUserDeptServiceImpl extends ServiceImpl implements ISysUserDeptService {
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java
index 00afc03..f56a0ba 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/ISysDictService.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.dict.dto.DictQuery;
+import org.springframework.data.domain.Pageable;
import java.util.List;
import java.util.Map;
@@ -78,4 +79,10 @@ public interface ISysDictService extends IService {
* @param id
*/
void deleteDetail(String id);
+
+ /**
+ * 查询所有字典信息
+ * @return
+ */
+ List queryAll();
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/Dict.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/Dict.java
index 518b5bc..2010f30 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/Dict.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/Dict.java
@@ -1,13 +1,13 @@
package org.nl.system.service.dict.dao;
+import java.math.BigDecimal;
+
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import java.io.Serializable;
-import java.math.BigDecimal;
-
/**
*
* 字典表
@@ -27,7 +27,7 @@ public class Dict implements Serializable {
* 字典标识
*/
@TableId(value = "dict_id")
- private String dictId;
+ private String dict_id;
/**
* 编码
@@ -52,12 +52,12 @@ public class Dict implements Serializable {
/**
* 排序号
*/
- private BigDecimal dictSort;
+ private BigDecimal dict_sort;
/**
* 字典类型
*/
- private String dictType;
+ private String dict_type;
/**
* 参数1
@@ -77,31 +77,31 @@ public class Dict implements Serializable {
/**
* 创建人
*/
- private String createId;
+ private String create_id;
/**
* 创建人
*/
- private String createName;
+ private String create_name;
/**
* 创建时间
*/
- private String createTime;
+ private String create_time;
/**
* 修改人
*/
- private String updateId;
+ private String update_id;
/**
* 修改人
*/
- private String updateName;
+ private String update_name;
/**
* 修改时间
*/
- private String updateTime;
+ private String update_time;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java
index 5bffec6..d83ff61 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dao/mapper/SysDictMapper.java
@@ -1,7 +1,7 @@
package org.nl.system.service.dict.dao.mapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.system.service.dict.dao.Dict;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
*
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dto/DictQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dto/DictQuery.java
index 3802779..c446f91 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dto/DictQuery.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/dto/DictQuery.java
@@ -13,6 +13,6 @@ import org.nl.system.service.dict.dao.Dict;
public class DictQuery extends BaseQuery {
private String code;
- private String dictName;
- private String dictId;
+ private String dict_name;
+ private String dict_id;
}
diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java
index b89f027..ae50dfb 100644
--- a/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java
+++ b/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/dict/impl/SysDictServiceImpl.java
@@ -8,14 +8,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.RequiredArgsConstructor;
-import org.nl.common.aspect.exception.BadRequestException;
import org.nl.common.domain.query.PageQuery;
+import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
- import org.nl.system.service.dict.ISysDictService;
+import org.nl.system.service.dict.ISysDictService;
import org.nl.system.service.dict.dao.Dict;
import org.nl.system.service.dict.dao.mapper.SysDictMapper;
import org.nl.system.service.dict.dto.DictQuery;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,26 +32,22 @@ import java.util.Set;
* @since 2022-12-14
*/
@Service
-@RequiredArgsConstructor
-@Transactional
public class SysDictServiceImpl extends ServiceImpl implements ISysDictService {
-
- private final SysDictMapper sysDictMapper;
+ @Autowired
+ private SysDictMapper sysDictMapper;
@Override
public IPage queryAll(Map whereJson, PageQuery page) {
String blurry = null;
if (ObjectUtil.isNotEmpty(whereJson.get("blurry"))) blurry = whereJson.get("blurry").toString();
- IPage pages = new Page<>(page.getPage() + 1, page.getSize());
- QueryWrapper lam = new QueryWrapper<>();
- lam.select("MAX(dict_id) AS dictId, code, name")
+ IPage pages = this.page(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper()
+ .select("MAX(dict_id) AS dict_id, code, name")
.lambda()
.like(ObjectUtil.isNotEmpty(blurry), Dict::getCode, blurry)
.or(ObjectUtil.isNotEmpty(blurry))
.like(ObjectUtil.isNotEmpty(blurry), Dict::getName, blurry)
- .orderBy(true, true, Dict::getCode)
- .groupBy(Dict::getCode, Dict::getName);
- sysDictMapper.selectPage(pages, lam);
+ .orderBy(true, true, Dict::getCode)
+ .groupBy(Dict::getCode, Dict::getName));
return pages;
}
@@ -64,20 +60,23 @@ public class SysDictServiceImpl extends ServiceImpl impleme
List oldDict = sysDictMapper.selectList(new LambdaQueryWrapper()
.eq(ObjectUtil.isNotEmpty(dict.getCode()), Dict::getCode, dict.getCode()));
if (ObjectUtil.isNotEmpty(oldDict)) throw new BadRequestException("字典[" + dict.getCode() + "]已存在");
- dict.setDictId(IdUtil.getSnowflake(1, 1).nextIdStr());
- dict.setCreateId(currentUserId);
- dict.setCreateName(nickName);
- dict.setCreateTime(date);
- dict.setUpdateId(currentUserId);
- dict.setUpdateName(nickName);
- dict.setUpdateTime(date);
+ dict.setDict_id(IdUtil.getSnowflake(1, 1).nextIdStr());
+ dict.setCreate_id(currentUserId);
+ dict.setCreate_name(nickName);
+ dict.setCreate_time(date);
+ dict.setUpdate_id(currentUserId);
+ dict.setUpdate_name(nickName);
+ dict.setUpdate_time(date);
sysDictMapper.insert(dict);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateDict(Dict dto) {
- Dict dict = sysDictMapper.selectById(dto.getDictId());
+ Dict dict = sysDictMapper.selectById(dto.getDict_id());
+ if (ObjectUtil.isEmpty(dict)) {
+ throw new BadRequestException("字典不存在");
+ }
List dictList = sysDictMapper.selectList(new LambdaQueryWrapper().eq(Dict::getCode, dto.getCode()));
if (ObjectUtil.isNotEmpty(dictList) && !dto.getCode().equals(dict.getCode()))
throw new BadRequestException("字典[" + dto.getCode() + "]已存在");
@@ -88,9 +87,9 @@ public class SysDictServiceImpl extends ServiceImpl impleme
dicts.forEach(di -> {
di.setCode(dto.getCode());
di.setName(dto.getName());
- di.setUpdateId(currentUserId);
- di.setUpdateName(currentNickName);
- di.setUpdateTime(DateUtil.now());
+ di.setUpdate_id(currentUserId);
+ di.setUpdate_name(currentNickName);
+ di.setUpdate_time(DateUtil.now());
sysDictMapper.updateById(di);
});
}
@@ -111,7 +110,7 @@ public class SysDictServiceImpl extends ServiceImpl impleme
lam.eq(Dict::getCode, criteria.getCode())
.isNotNull(Dict::getLabel)
.ne(Dict::getLabel, "")
- .orderBy(true, true, Dict::getDictSort);
+ .orderBy(true, true, Dict::getDict_sort);
IPage