diff options
| author | liuyongqiang <[email protected]> | 2020-12-04 15:21:31 +0800 |
|---|---|---|
| committer | liuyongqiang <[email protected]> | 2020-12-04 15:21:31 +0800 |
| commit | e25a456d8051af76cabcbbc3bb8f6e30c4fee09e (patch) | |
| tree | 1c12f6adcb738e1d2b6619a6ca50f45e0c29ef69 | |
| parent | cdb768507cfbcd398d83e218d0bdd63536706dd4 (diff) | |
openapi模块迁移至galaxy-business-api中
28 files changed, 929 insertions, 1 deletions
diff --git a/galaxy-business-api/config/application.yml b/galaxy-business-api/config/application.yml index 7729dce..b958866 100644 --- a/galaxy-business-api/config/application.yml +++ b/galaxy-business-api/config/application.yml @@ -4,6 +4,11 @@ server: spring: application: name: galaxy-business-api + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.44.3:3306/tsg-bifang?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai + username: root + password: 111111 cloud: consul: host: 192.168.44.12 diff --git a/galaxy-business-api/pom.xml b/galaxy-business-api/pom.xml index 8892a92..81bc169 100644 --- a/galaxy-business-api/pom.xml +++ b/galaxy-business-api/pom.xml @@ -31,6 +31,10 @@ <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-jdbc</artifactId> + </dependency> + <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> @@ -39,6 +43,21 @@ <artifactId>hutool-all</artifactId> </dependency> <dependency> + <groupId>com.jfinal</groupId> + <artifactId>activerecord</artifactId> + <version>${active.record.version}</version> + </dependency> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>${mysql.connector.version}</version> + </dependency> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>druid-spring-boot-starter</artifactId> + <version>${starter.druid.version}</version> + </dependency> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/base/BaseResult.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/base/BaseResult.java new file mode 100644 index 0000000..844a839 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/base/BaseResult.java @@ -0,0 +1,54 @@ +package com.mesalab.api.common.base; + +import com.mesalab.api.common.enums.ResultStatusEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Map; + +/** + * 响应结果 + * 如果使用注解@JsonInclude(JsonInclude.Include.NON_NULL): 则会保证序列化json的时候,如果是null的对象,key也会消失 + * + * @author dazzlzy + * @date 2018/3/21 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BaseResult<T> implements Serializable { + + private Integer status; + + private String code; + + private String queryKey; + + private boolean success; + + private String message; + + private Map<String, Object> statistics; + + private String formatType; + + private T meta; + + private T data; + + + /** + * 判断是否是成功结果 + * JsonIgnore使之不在json序列化结果当中 + * + * @return 是否为成功结果 + */ + public boolean isSuccess() { + return ResultStatusEnum.SUCCESS.getCode() == this.status; + } + +}
\ No newline at end of file diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/base/BaseResultGenerator.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/base/BaseResultGenerator.java new file mode 100644 index 0000000..52ab4ac --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/base/BaseResultGenerator.java @@ -0,0 +1,207 @@ +package com.mesalab.api.common.base; + + +import com.mesalab.api.common.enums.ResultCodeEnum; +import com.mesalab.api.common.enums.ResultStatusEnum; +import com.mesalab.api.common.exception.BusinessException; + +import java.util.Map; + +/** + * BaseResult生成器 + * + * @author dazzlzy + * @date 2018/4/1 + */ +public class BaseResultGenerator { + + /** + * 生成返回结果 + * + * @param status 返回HTTP响应码 + * @param code 返回业务编码 + * @param message 返回消息 + * @param data 返回数据 + * @param formatType 返回数据格式 JSON/CSV + * @param <T> 返回数据类型 + * @return 返回结果 + */ + public static <T> BaseResult<T> generate(final int status, final String code, final String message, T data, T meta, final Map<String, Object> statistics, final String formatType) { + return new BaseResult<>(status, code, null, false, message, statistics, formatType, meta, data); + } + + /** + * 操作成功响应结果, 默认结果 + * + * @return 操作成功的默认响应结果 + */ + public static <T> BaseResult<T> success() { + return new BaseResult<>(ResultStatusEnum.SUCCESS.getCode(), ResultCodeEnum.EXECUTE_SUCCESS.getCode(), + null, true, ResultCodeEnum.EXECUTE_SUCCESS.getMessage(), null, null, null, null); + } + + /** + * 操作成功响应结果, 自定义数据及信息 + * + * @param message 自定义信息 + * @param data 自定义数据 + * @param <T> 自定义数据类型 + * @return 响应结果 + */ + public static <T> BaseResult<T> success(final String message, final T data) { + return new BaseResult<>(ResultStatusEnum.SUCCESS.getCode(), ResultCodeEnum.EXECUTE_SUCCESS.getCode(), + null, true, message, null, null, null, data); + } + + /** + * 操作成功响应结果, 自定义数据及信息, 统计结果 + * + * @param message 自定义信息 + * @param data 自定义数据 + * @param <T> 自定义数据类型 + * @param statistics 统计结果 + * @return 响应结果 + */ + public static <T> BaseResult<T> success(final String message, final T data, final Map<String, Object> statistics) { + return new BaseResult<>(ResultStatusEnum.SUCCESS.getCode(), ResultCodeEnum.EXECUTE_SUCCESS.getCode(), + null, true, message, statistics, null, null, data); + } + + /** + * 操作成功响应结果,自定义数据,默认信息 + * + * @param data 自定义数据 + * @param <T> 自定义数据类型 + * @return 响应结果 + */ + public static <T> BaseResult<T> success(final T data) { + return new BaseResult<>(ResultStatusEnum.SUCCESS.getCode(), ResultCodeEnum.EXECUTE_SUCCESS.getCode(), null, true, + ResultCodeEnum.EXECUTE_SUCCESS.getMessage(), null, null, null, data); + } + + /** + * 操作成功响应结果,自定义信息,无数据 + * + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> success4Message(final String message) { + return new BaseResult<>(ResultStatusEnum.SUCCESS.getCode(), ResultCodeEnum.EXECUTE_SUCCESS.getCode(), + null, true, message, null, null, null, null); + } + + /** + * 操作失败响应结果, 默认结果 + * + * @return 操作成功的默认响应结果 + */ + public static <T> BaseResult<T> failure() { + return new BaseResult<>(ResultStatusEnum.FAIL.getCode(), + ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, ResultCodeEnum.UNKNOW_ERROR.getMessage(), null, null, null, null); + } + + /** + * 操作失败响应结果, 自定义错误编码及信息 + * + * @param status HTTP状态码 + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> failure(final int status, final String message) { + return new BaseResult<>(status, ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, message, null, null, null, null); + } + + /** + * 操作失败响应结果, 自定义错误编码及信息 + * + * @param status HTTP 状态码 + * @param code 返回业务编码 + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> failure(final int status, final String code, final String message) { + return new BaseResult<>(status, code, null, false, message, null, null, null, null); + } + + /** + * 操作失败响应结果, 自定义错误编码及信息 + * + * @param status HTTP 状态码 + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> failure(final int status, final String message, T data) { + return new BaseResult<>(status, ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, message, null, null, null, data); + } + + /** + * 操作失败响应结果,自定义错误编码 + * + * @param resultStatusEnum 自定义错误编码枚举 + * @return 响应结果 + */ + public static <T> BaseResult<T> failure(final ResultStatusEnum resultStatusEnum) { + return new BaseResult<>(resultStatusEnum.getCode(), ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, resultStatusEnum.getMessage(), null, null, null, null); + } + + /** + * 操作失败响应结果,自定义信息 + * + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> failure(final String message) { + return new BaseResult<>(ResultStatusEnum.FAIL.getCode(), ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, message, null, null, null, null); + } + + /** + * 异常响应结果, 默认结果 + * + * @return 操作成功的默认响应结果 + */ + public static <T> BaseResult<T> error() { + return new BaseResult<>(ResultStatusEnum.SERVER_ERROR.getCode(), ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, ResultStatusEnum.SERVER_ERROR.getMessage(), null, null, null, null); + } + + /** + * 异常响应结果, 自定义错误编码及信息 + * + * @param code 自定义错误编码 + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> error(final int code, final String message) { + return new BaseResult<>(code, ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, message, null, null, null, null); + } + + /** + * 异常响应结果,自定义错误编码 + * + * @param resultStatusEnum 自定义错误编码枚举 + * @return 响应结果 + */ + public static <T> BaseResult<T> error(final ResultStatusEnum resultStatusEnum) { + return new BaseResult<>(resultStatusEnum.getCode(), ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, resultStatusEnum.getMessage(), null, null, null, null); + } + + /** + * 业务异常响应结果 + * + * @param be 业务异常 + * @return 响应结果 + */ + public static <T> BaseResult<T> error(final BusinessException be) { + return new BaseResult<>(ResultStatusEnum.SERVER_ERROR.getCode(), ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, be.getErrorMessage(), null, null, null, null); + } + + /** + * 异常响应结果,自定义信息 + * + * @param message 自定义信息 + * @return 响应结果 + */ + public static <T> BaseResult<T> error(final String message) { + return new BaseResult<>(ResultStatusEnum.SERVER_ERROR.getCode(), ResultCodeEnum.UNKNOW_ERROR.getCode(), null, false, message, null, null, null, null); + } + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/base/SchemaBase.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/base/SchemaBase.java new file mode 100644 index 0000000..dfae837 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/base/SchemaBase.java @@ -0,0 +1,31 @@ +package com.mesalab.api.common.base; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SchemaBase implements Serializable { + + private String type; + private String name; + private String namespace; + private List<Map> fields; + + public String getNamespace() { + return namespace = "com.zdjizhi"; + } + + public String getType() { + return type = "record"; + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/configuration/BifangMysqlConfiguration.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/configuration/BifangMysqlConfiguration.java new file mode 100644 index 0000000..93a3c50 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/configuration/BifangMysqlConfiguration.java @@ -0,0 +1,26 @@ +package com.mesalab.api.common.configuration; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * @Date: 2020-09-17 15:03 + * @Author : liuyongqiang + * @ClassName : BifangMysqlConfiguration + * @Description : BifangMysql数据源配置 + */ +@Data +@Component +public class BifangMysqlConfiguration { + + @Value("${spring.datasource.url}") + private String url; + + @Value("${spring.datasource.username}") + private String userName; + + @Value("${spring.datasource.password}") + private String passWord; + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/BooleanEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/BooleanEnum.java new file mode 100644 index 0000000..88077cc --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/BooleanEnum.java @@ -0,0 +1,30 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * boolean枚举,YES/NO + * + * @author dazzlzy + * @date 2018/5/7 + */ +@Getter +public enum BooleanEnum { + + /** + * YES: 1 + */ + YES(1), + + /** + * NO: 0 + */ + NO(0); + + private int value; + + BooleanEnum(int value) { + this.value = value; + } + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/CookieEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/CookieEnum.java new file mode 100644 index 0000000..d540efc --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/CookieEnum.java @@ -0,0 +1,23 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * Cookie枚举 + * + * @author dazzlzy + * @date 2018/5/26 + */ +@Getter +public enum CookieEnum { + /** + * REMEMBER_ME: Cookie中存储的REMEMBER_ME + */ + REMEMBER_ME("rememberMe"),; + + private String value; + + CookieEnum(String value) { + this.value = value; + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/DBTypeEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/DBTypeEnum.java new file mode 100644 index 0000000..e87fc99 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/DBTypeEnum.java @@ -0,0 +1,12 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +@Getter +public enum DBTypeEnum { + CLICKHOUSE("clickHouse"), + DRUID("druid"), + HBASE("hbase"),; + private String value; + DBTypeEnum(String value) {this.value = value;} +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/EnvironmentEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/EnvironmentEnum.java new file mode 100644 index 0000000..a2160c8 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/EnvironmentEnum.java @@ -0,0 +1,30 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * 运行环境枚举 + * + * @author dazzlzy + * @date 2018/5/26 + */ +@Getter +public enum EnvironmentEnum { + + /** + * 开发环境 + */ + DEV("dev"), + /** + * 生产环境 + */ + PROD("prod"),; + + private String name; + + EnvironmentEnum(String name) { + this.name = name; + } + + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/EnvironmentGroupEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/EnvironmentGroupEnum.java new file mode 100644 index 0000000..a24e054 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/EnvironmentGroupEnum.java @@ -0,0 +1,45 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * 运行环境组枚举 + * + * @author dazzlzy + * @date 2018/5/26 + */ +@Getter +public enum EnvironmentGroupEnum { + + /** + * RUNTIME运行环境组: + * 1. DEV(开发环境) + * 2. PROD(生产环境) + */ + RUNTIME(new EnvironmentEnum[]{EnvironmentEnum.DEV, EnvironmentEnum.PROD}),; + + /** + * 运行环境 + */ + private EnvironmentEnum[] environments; + + EnvironmentGroupEnum(EnvironmentEnum[] environments) { + this.environments = environments; + } + + /** + * 是否是runtime运行环境组 + * + * @param s 环境名 + * @return boolean + */ + public static boolean isRuntime(String s) { + EnvironmentEnum[] environmentEnums = RUNTIME.getEnvironments(); + for (EnvironmentEnum environmentEnum : environmentEnums) { + if (environmentEnum.getName().equals(s)) { + return true; + } + } + return false; + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/JobHandlerEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/JobHandlerEnum.java new file mode 100644 index 0000000..9f3d3df --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/JobHandlerEnum.java @@ -0,0 +1,21 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + + +@Getter +public enum JobHandlerEnum { + + DELETE_TRAFFIC_DATA_JOB_HANDLER("deleteTrafficDataJobHandler"), + DELETE_REPORT_AND_METRICS_DATA_JOB_HANDLER("deleteReportAndMetricsDataJobHandler"), + DELETE_FILES_JOB_HANDLER("deleteFilesJobHandler"), + DELETE_ALL_TRAFFIC_DATA_JOB_HANDLER("deleteAllTrafficDataJobHandler"), + DELETE_ALL_REPORT_AND_METRICS_DATA_JOB_HANDLER("deleteAllReportAndMetricsDataJobHandler"), + DELETE_ALL_FILES_JOB_HANDLER("deleteAllFilesJobHandler"), + ; + private String value; + + JobHandlerEnum(String value) { + this.value = value; + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryFormatEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryFormatEnum.java new file mode 100644 index 0000000..416f12c --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryFormatEnum.java @@ -0,0 +1,11 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +@Getter +public enum QueryFormatEnum { + JSON("json"), + CSV("csv"),; + private String value; + QueryFormatEnum(String value) {this.value = value;} +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryOptionEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryOptionEnum.java new file mode 100644 index 0000000..d107705 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryOptionEnum.java @@ -0,0 +1,14 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +@Getter +public enum QueryOptionEnum { + REAL_TIME("real-time"), + LONG_TERM("long-term"), + SYNTAX_CHECK("syntax-check"); + private String value; + QueryOptionEnum(String value) {this.value = value;} + + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryParamEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryParamEnum.java new file mode 100644 index 0000000..213d853 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/QueryParamEnum.java @@ -0,0 +1,12 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +@Getter +public enum QueryParamEnum { + QUERY("query"), + FORMAT("format"), + OPTION("option"),; + private String value; + QueryParamEnum(String value) {this.value = value;} +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/ResultCodeEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/ResultCodeEnum.java new file mode 100644 index 0000000..f8b33df --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/ResultCodeEnum.java @@ -0,0 +1,30 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * BaseResult的业务状态码 + * + * @author + * @date + */ +@Getter +public enum ResultCodeEnum { + + EXECUTE_SUCCESS("200666", "成功"), + PARAM_SYNTAX_ERROR("400001", "参数检查异常"), + SQL_SYNTAX_ERROR("400010", "SQL语句检查异常"), + SQL_EXECUTION_ERROR("500001", "SQL 执行异常"), + ENGINE_STATISTICS_ERROR("500010", "引擎计算异常"), + UNKNOW_ERROR("555999", "执行失败"); + + + + private String code; + private String message; + + ResultCodeEnum(String code, String message) { + this.code = code; + } + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/ResultStatusEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/ResultStatusEnum.java new file mode 100644 index 0000000..14016b1 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/ResultStatusEnum.java @@ -0,0 +1,33 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * BaseResult的http状态编码枚举 + * + * @author + * @date 2018/3/21 + */ +@Getter +public enum ResultStatusEnum { + /** + * SUCCESS: 200 成功 + * FAIL: 400 失败 + * NOT_FOUND: 404 不存在 + * SERVER_ERROR: 500 网络服务异常 + */ + SUCCESS(200, "成功"), + FAIL(400, "失败"), + NOT_FOUND(404, "不存在"), + REQ_FORBIDDEN(403, "重复请求"), + SERVER_ERROR(500, "服务异常"); + + private int code; + + private String message; + + ResultStatusEnum(int code, String message) { + this.code = code; + } + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/SessionEnum.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/SessionEnum.java new file mode 100644 index 0000000..24c6db6 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/enums/SessionEnum.java @@ -0,0 +1,24 @@ +package com.mesalab.api.common.enums; + +import lombok.Getter; + +/** + * Session枚举 + * + * @author zhaozhenyao + * @date 2018/5/10 + */ +@Getter +public enum SessionEnum { + + /** + * CURRENT_USER: session中存储的当前用户 + */ + CURRENT_USER("CURRENT_USER"),; + + private String value; + + SessionEnum(String value) { + this.value = value; + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/exception/BusinessException.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/exception/BusinessException.java new file mode 100644 index 0000000..d544be1 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/exception/BusinessException.java @@ -0,0 +1,51 @@ +package com.mesalab.api.common.exception; + +import com.mesalab.api.common.enums.ResultCodeEnum; +import com.mesalab.api.common.enums.ResultStatusEnum; +import lombok.*; + +/** + * 业务异常 + * + * @author dazzlzy + * @date 2018/3/22 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BusinessException extends RuntimeException { + + /** + * 异常代码 + */ + @Builder.Default + private int errorStatus = ResultStatusEnum.SERVER_ERROR.getCode(); + + @Builder.Default + private String errorCode = ResultCodeEnum.UNKNOW_ERROR.getCode(); + + + /** + * 异常信息 + */ + private String errorMessage; + + public BusinessException(String errorMessage) { + this.errorMessage = errorMessage; + } + + + public BusinessException(String errorMessage, Throwable e) { + super(errorMessage, e); + } + + public BusinessException(int errorStatus, String errorCode, String errorMessage, Throwable e) { + super(errorMessage, e); + this.errorStatus = errorStatus; + this.errorCode = errorCode; + } + + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/plugin/ActiveRecordInit.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/plugin/ActiveRecordInit.java new file mode 100644 index 0000000..ed3cb93 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/plugin/ActiveRecordInit.java @@ -0,0 +1,33 @@ +package com.mesalab.api.common.plugin; + +import com.jfinal.plugin.druid.DruidPlugin; +import com.mesalab.api.common.configuration.BifangMysqlConfiguration; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * @Date: 2020-09-17 15:24 + * @Author : liuyongqiang + * @ClassName : ActiveRecordInit + * @Description : ActiveRecordInit + */ +@Slf4j +@Component +public class ActiveRecordInit { + + @Autowired + BifangMysqlConfiguration bmc; + + @PostConstruct + public void initDialect() { + DruidPlugin dp = new DruidPlugin(bmc.getUrl(), bmc.getUserName(), bmc.getPassWord()); + ArpStartPlugin arp = new ArpStartPlugin(dp); + arp.addSqlTemplate("sql-temelate.sql"); + dp.start(); + arp.start(); + log.info("Initializing ActiveRecordPlugin Complete"); + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/plugin/ArpStartPlugin.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/plugin/ArpStartPlugin.java new file mode 100644 index 0000000..387d233 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/plugin/ArpStartPlugin.java @@ -0,0 +1,29 @@ +package com.mesalab.api.common.plugin; + +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.activerecord.IDataSourceProvider; +import lombok.extern.slf4j.Slf4j; + +/** + * @Date: 2020-10-09 16:09 + * @Author : liuyongqiang + * @ClassName : ArpStartPlugin + * @Description : ArpStartPlugin + */ +@Slf4j +public class ArpStartPlugin extends ActiveRecordPlugin { + + public ArpStartPlugin(IDataSourceProvider dataSourceProvider) { + super(dataSourceProvider); + } + + @Override + public boolean start() { + try { + super.start(); + } catch (Exception e) { + log.error("ArpStartPlugin init error:{}", e.getMessage()); + } + return true; + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/support/IConvertor.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/support/IConvertor.java new file mode 100644 index 0000000..95f3655 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/support/IConvertor.java @@ -0,0 +1,20 @@ +package com.mesalab.api.common.support; + + +/** + * 转换器接口,可以将Source转换为Target + * + * @author dazzlzy + * @date 2018/5/9 + */ +public interface IConvertor<Source, Target> { + + /** + * 将Source转换为Target + * + * @param source 需要转换的对象 + * @return 转换后的对象 + */ + Target convert(Source source); + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/common/utils/ReportCacheUtils.java b/galaxy-business-api/src/main/java/com/mesalab/api/common/utils/ReportCacheUtils.java new file mode 100644 index 0000000..e923f35 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/common/utils/ReportCacheUtils.java @@ -0,0 +1,25 @@ +package com.mesalab.api.common.utils; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.digest.DigestUtils; + +/** + * @author wangwei + * @version 1.0 + * @date 2020/6/5 2:04 下午 + */ +@Slf4j +public class ReportCacheUtils { + + /** + * 通过SQL生成查询唯一kEY + * + * @param sql + * @param resultId + * @return + */ + public static String getQueryId(String resultId, String sql) { + return DigestUtils.md5Hex(resultId + sql.trim()); + } + +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/controller/OpenApiController.java b/galaxy-business-api/src/main/java/com/mesalab/api/controller/OpenApiController.java new file mode 100644 index 0000000..c85a70b --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/controller/OpenApiController.java @@ -0,0 +1,46 @@ +package com.mesalab.api.controller; + +import com.mesalab.api.common.base.BaseResult; +import com.mesalab.api.service.OpenApiService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Date: 2020-09-18 10:58 + * @Author : liuyongqiang + * @ClassName : OpenApiController + * @Description : OpenApiController + */ +@RestController +@RequestMapping("open-api") +public class OpenApiController { + + @Autowired + OpenApiService openApiService; + + /** + * @Description: APP字典列表 + * @Author: liuyongqiang + * @Date: 2020/9/17 15:32 + * @return: com.mesalab.common.base.BaseResult + **/ + @GetMapping("appDicList") + public BaseResult appDicList() { + return openApiService.appDicList(); + } + + /** + * @param id: 报告ID + * @Description: 查询报告结构 + * @Author: liuyongqiang + * @Date: 2020/10/16 17:46 + * @return: com.mesalab.common.base.BaseResult + **/ + @GetMapping("reportResults/{id}") + public BaseResult reportResults(@PathVariable(name = "id") Integer id) { + return openApiService.reportResults(id); + } +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/service/OpenApiService.java b/galaxy-business-api/src/main/java/com/mesalab/api/service/OpenApiService.java new file mode 100644 index 0000000..c5789de --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/service/OpenApiService.java @@ -0,0 +1,29 @@ +package com.mesalab.api.service; + +import com.mesalab.api.common.base.BaseResult; + +/** + * @Date: 2020-09-18 10:58 + * @Author : liuyongqiang + * @ClassName : OpenApiService + * @Description : OpenApiService + */ +public interface OpenApiService { + + /** + * @Description: APP字典列表 + * @Author: liuyongqiang + * @Date: 2020/9/17 15:31 + * @return: com.mesalab.common.base.BaseResult + **/ + BaseResult appDicList(); + + /** + * @param id: 报告ID + * @Description: 查询报告结果 + * @Author: liuyongqiang + * @Date: 2020/10/16 17:45 + * @return: com.mesalab.common.base.BaseResult + **/ + BaseResult reportResults(Integer id); +} diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/service/impl/OpenApiServiceImpl.java b/galaxy-business-api/src/main/java/com/mesalab/api/service/impl/OpenApiServiceImpl.java new file mode 100644 index 0000000..309d6e1 --- /dev/null +++ b/galaxy-business-api/src/main/java/com/mesalab/api/service/impl/OpenApiServiceImpl.java @@ -0,0 +1,61 @@ +package com.mesalab.api.service.impl; + +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; +import com.mesalab.api.common.base.BaseResult; +import com.mesalab.api.common.base.BaseResultGenerator; +import com.mesalab.api.common.utils.ReportCacheUtils; +import com.mesalab.api.service.OpenApiService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Date: 2020-09-18 11:00 + * @Author : liuyongqiang + * @ClassName : OpenApiServiceImpl + * @Description : OpenApiServiceImpl + */ +@Service("openApiService") +public class OpenApiServiceImpl implements OpenApiService { + + /** + * @Description: APP字典列表 + * @Author: liuyongqiang + * @Date: 2020/9/17 15:31 + * @return: com.mesalab.common.base.BaseResult + **/ + @Override + public BaseResult appDicList() { + List<?> list = Db.query(Db.getSql("appDicList")); + return BaseResultGenerator.success(list); + } + + /** + * @param id: 报告ID + * @Description: 查询报告结果 + * @Author: liuyongqiang + * @Date: 2020/10/16 17:45 + * @return: com.mesalab.common.base.BaseResult + **/ + @Override + public BaseResult reportResults(Integer id) { + List<Map<String, Object>> results = new ArrayList<>(); + String sql = Db.getSql("reportResults"); + List<Record> list = Db.find(sql, id); + if (CollectionUtils.isEmpty(list)) return BaseResultGenerator.success(); + + list.stream().forEach(record -> { + String querySql = record.get("query_sql"); + int resultId = record.getInt("result_id"); + String queryId = ReportCacheUtils.getQueryId(String.valueOf(resultId), querySql); + record.set("query_id", queryId); + results.add(record.getColumns()); + }); + + return BaseResultGenerator.success(results); + } +} diff --git a/galaxy-business-api/src/main/resources/sql-temelate.sql b/galaxy-business-api/src/main/resources/sql-temelate.sql new file mode 100644 index 0000000..f3c2ca5 --- /dev/null +++ b/galaxy-business-api/src/main/resources/sql-temelate.sql @@ -0,0 +1,7 @@ +#sql("appDicList") + select app_id,app_name from app_id_dict +#end + +#sql("reportResults") + select * from report_result where job_id = ? and status !=2 order by op_time desc +#end
\ No newline at end of file diff --git a/galaxy-gateway/config/application.yml b/galaxy-gateway/config/application.yml index 68338c5..e4f4915 100644 --- a/galaxy-gateway/config/application.yml +++ b/galaxy-gateway/config/application.yml @@ -32,7 +32,7 @@ spring: predicates: - Path=/sys/** - id: open-api - uri: lb://galaxy-query-engine + uri: lb://galaxy-business-api predicates: - Path=/open-api/** - id: knowledge |
