From aa7d559362ffe69963035bb629beccfbe559e0ed Mon Sep 17 00:00:00 2001 From: qianming Date: Wed, 7 Jul 2021 13:59:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?kudu=E9=A9=B1=E5=8A=A8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/db/migration/V1.0.2__update_tables.sql | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 report-core/src/main/resources/db/migration/V1.0.2__update_tables.sql diff --git a/report-core/src/main/resources/db/migration/V1.0.2__update_tables.sql b/report-core/src/main/resources/db/migration/V1.0.2__update_tables.sql new file mode 100644 index 00000000..b934a091 --- /dev/null +++ b/report-core/src/main/resources/db/migration/V1.0.2__update_tables.sql @@ -0,0 +1,4 @@ +/* +kudu驱动更新 + */ +UPDATE `aj_report`.`gaea_dict_item` SET `dict_code` = 'SOURCE_TYPE', `item_name` = 'kudu impala', `item_value` = 'kudu_impala', `item_extend` = '[{\"label\":\"driverName\",\"value\":\"com.cloudera.impala.jdbc41.Driver\",\"labelValue\":\"驱动类\"},{\"label\":\"jdbcUrl\",\"value\":\"jdbc:impala://10.108.3.111:21050/ods\",\"labelValue\":\"连接串\"},{\"label\":\"username\",\"value\":\"\",\"labelValue\":\"用户名\"},{\"label\":\"password\",\"value\":\"\",\"labelValue\":\"密码\"}]', `enabled` = 1, `locale` = 'zh', `remark` = NULL, `sort` = 2, `create_by` = 'admin', `create_time` = '2021-03-23 10:54:08', `update_by` = 'admin', `update_time` = '2021-04-01 09:18:09', `version` = 3 WHERE `id` = 133; From a903f9a61a68dbe60df2b5328990104adeadabd1 Mon Sep 17 00:00:00 2001 From: Raod <1130305001@qq.com> Date: Wed, 7 Jul 2021 14:09:06 +0800 Subject: [PATCH 2/2] kudu --- report-core/pom.xml | 22 +++++++++++++++++++ .../gaea/business/filter/TokenFilter.java | 4 ++++ .../service/impl/DataSetServiceImpl.java | 3 +++ .../dataSource/pool/util/JdbcUtil.java | 5 +++-- .../service/impl/DataSourceServiceImpl.java | 12 +++++++++- .../user/service/impl/UserServiceImpl.java | 5 ++++- 6 files changed, 47 insertions(+), 4 deletions(-) diff --git a/report-core/pom.xml b/report-core/pom.xml index 3eec9398..ccfc264d 100644 --- a/report-core/pom.xml +++ b/report-core/pom.xml @@ -99,6 +99,28 @@ 1.2.6 + + + + com.cloudera + ImpalaJDBC41 + 2.5.41 + system + ${project.basedir}/src/main/resources/lib/ImpalaJDBC41.jar + + + + org.apache.hive + hive-jdbc + 1.2.1 + + + org.eclipse.jetty.aggregate + jetty-all + + + + diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java index 5213807e..a3043c5e 100644 --- a/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java +++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/filter/TokenFilter.java @@ -36,6 +36,10 @@ public class TokenFilter implements Filter { HttpServletResponse response = (HttpServletResponse) servletResponse; String uri = request.getRequestURI(); + if(uri.equals("/")){ + response.sendRedirect("/index.html"); + return; + } if (!uri.startsWith("/login") && !uri.startsWith("/static") && !uri.startsWith("/file/download/") diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSet/service/impl/DataSetServiceImpl.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSet/service/impl/DataSetServiceImpl.java index 6502db3b..8513640a 100644 --- a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSet/service/impl/DataSetServiceImpl.java +++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSet/service/impl/DataSetServiceImpl.java @@ -25,6 +25,7 @@ import com.anjiplus.template.gaea.business.modules.dataSource.service.DataSource import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,6 +44,7 @@ import java.util.stream.Collectors; **/ @Service //@RequiredArgsConstructor +@Slf4j public class DataSetServiceImpl implements DataSetService { @Autowired @@ -128,6 +130,7 @@ public class DataSetServiceImpl implements DataSetService { JSONObject jsonObject = jsonArray.getJSONObject(0); dto.setSetParamList(jsonObject.keySet()); } catch (Exception e) { + log.error("{}",e); } } return dto; diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/pool/util/JdbcUtil.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/pool/util/JdbcUtil.java index ecaeed9f..cbcf3957 100644 --- a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/pool/util/JdbcUtil.java +++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/pool/util/JdbcUtil.java @@ -42,7 +42,8 @@ public class JdbcUtil { pool.setMaxWait(2000); //获取连接的最大等待时间,单位毫秒 pool.setPoolPreparedStatements(true); //缓存PreparedStatement,默认false pool.setMaxOpenPreparedStatements(20); //缓存PreparedStatement的最大数量,默认-1(不缓存)。大于0时会自动开启缓存PreparedStatement,所以可以省略上一句代码 - + pool.setConnectionErrorRetryAttempts(0); + pool.setBreakAfterAcquireFailure(true); map.put(dataSource.getId(), pool); log.info("创建连接池成功:{}", dataSource.getJdbcUrl()); } @@ -63,7 +64,7 @@ public class JdbcUtil { map.remove(id); } } catch (Exception e) { - log.error(e.toString()); + log.error("{}",e); } finally { } } diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/service/impl/DataSourceServiceImpl.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/service/impl/DataSourceServiceImpl.java index a4fb8141..29705d47 100644 --- a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/service/impl/DataSourceServiceImpl.java +++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/dataSource/service/impl/DataSourceServiceImpl.java @@ -102,6 +102,7 @@ public class DataSourceServiceImpl implements DataSourceService { default: throw BusinessExceptionBuilder.build(ResponseCode.DATA_SOURCE_TYPE_DOES_NOT_MATCH_TEMPORARILY); } + log.info("测试连接成功:{}", JSONObject.toJSONString(connectionParam)); return true; } @@ -175,6 +176,7 @@ public class DataSourceServiceImpl implements DataSourceService { try { exchange = restTemplate.exchange(dto.getApiUrl(), HttpMethod.valueOf(dto.getMethod()), entity, JSONObject.class); } catch (Exception e) { + log.error("{}",e); throw BusinessExceptionBuilder.build(ResponseCode.DATA_SOURCE_CONNECTION_FAILED, e.getMessage()); } if (exchange.getStatusCode().isError()) { @@ -201,6 +203,7 @@ public class DataSourceServiceImpl implements DataSourceService { result.add(jsonObject); } } catch (Exception e) { + log.error("{}",e); throw BusinessExceptionBuilder.build(ResponseCode.ANALYSIS_DATA_ERROR, e.getMessage()); } return result; @@ -230,6 +233,7 @@ public class DataSourceServiceImpl implements DataSourceService { Object value = rs.getObject(t); jo.put(t, value); } catch (SQLException throwable) { + log.error("{}",throwable); throw BusinessExceptionBuilder.build(ResponseCode.EXECUTE_SQL_ERROR, throwable.getMessage()); } }); @@ -237,11 +241,15 @@ public class DataSourceServiceImpl implements DataSourceService { } return list; } catch (Exception throwable) { + log.error("{}",throwable); throw BusinessExceptionBuilder.build(ResponseCode.EXECUTE_SQL_ERROR, throwable.getMessage()); } finally { try { - pooledConnection.close(); + if (pooledConnection != null) { + pooledConnection.close(); + } } catch (SQLException throwable) { + log.error("{}",throwable); throw BusinessExceptionBuilder.build(ResponseCode.DATA_SOURCE_CONNECTION_FAILED, throwable.getMessage()); } } @@ -261,6 +269,7 @@ public class DataSourceServiceImpl implements DataSourceService { try { exchange = restTemplate.exchange(dto.getApiUrl(), HttpMethod.valueOf(dto.getMethod()), entity, JSONObject.class); } catch (Exception e) { + log.error("{}",e); throw BusinessExceptionBuilder.build(ResponseCode.DATA_SOURCE_CONNECTION_FAILED, e.getMessage()); } if (exchange.getStatusCode().isError()) { @@ -285,6 +294,7 @@ public class DataSourceServiceImpl implements DataSourceService { log.info("数据库测试连接成功:{}", catalog); unPooledConnection.close(); } catch (Exception e) { + log.error("{}",e); throw BusinessExceptionBuilder.build(ResponseCode.DATA_SOURCE_CONNECTION_FAILED, e.getMessage()); } } diff --git a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/user/service/impl/UserServiceImpl.java b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/user/service/impl/UserServiceImpl.java index 7a44d0c0..c4fe24c5 100644 --- a/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/user/service/impl/UserServiceImpl.java +++ b/report-core/src/main/java/com/anjiplus/template/gaea/business/modules/user/service/impl/UserServiceImpl.java @@ -12,6 +12,7 @@ import com.anjiplus.template.gaea.business.modules.user.service.UserService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +24,7 @@ import java.util.Map; * Created by raodeming on 2021/6/23. */ @Service +@Slf4j public class UserServiceImpl implements UserService { @Autowired @@ -58,6 +60,7 @@ public class UserServiceImpl implements UserService { String token = jwtBean.createToken(username, uuid); cacheHelper.stringSetExpire(username, token, 3600); map.put("token", token); + map.put("username", username); } return map; @@ -79,7 +82,7 @@ public class UserServiceImpl implements UserService { } return result.toString(); } catch (Exception e) { - e.printStackTrace(); + log.error("{}",e); } return ""; }