Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataWareHose
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
黄夏豪
dataWareHose
Commits
b29b6ca1
提交
b29b6ca1
authored
7月 19, 2021
作者:
hjf
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
空项目
上级
bfbb44f3
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
69 个修改的文件
包含
10 行增加
和
3443 行删除
+10
-3443
pom.xml
pom.xml
+10
-10
DataWarehouseApplication.java
...java/com/tykj/datawarehouse/DataWarehouseApplication.java
+0
-16
EntityHandle.java
...in/java/com/tykj/datawarehouse/base/aop/EntityHandle.java
+0
-36
Java8TimeConfig.java
...a/com/tykj/datawarehouse/base/config/Java8TimeConfig.java
+0
-134
WebMvcConfig.java
...java/com/tykj/datawarehouse/base/config/WebMvcConfig.java
+0
-68
FourComsumer.java
...va/com/tykj/datawarehouse/base/consumer/FourComsumer.java
+0
-38
BaseEntity.java
...n/java/com/tykj/datawarehouse/base/entity/BaseEntity.java
+0
-39
XMQGenerator.java
...java/com/tykj/datawarehouse/base/entity/XMQGenerator.java
+0
-32
JpaCustomOrder.java
...java/com/tykj/datawarehouse/base/page/JpaCustomOrder.java
+0
-20
JpaCustomPage.java
.../java/com/tykj/datawarehouse/base/page/JpaCustomPage.java
+0
-78
ApiException.java
...java/com/tykj/datawarehouse/base/result/ApiException.java
+0
-34
GlobalExceptionHandler.java
...ykj/datawarehouse/base/result/GlobalExceptionHandler.java
+0
-64
ResultObj.java
...in/java/com/tykj/datawarehouse/base/result/ResultObj.java
+0
-27
ResultUtil.java
...n/java/com/tykj/datawarehouse/base/result/ResultUtil.java
+0
-91
ClassUtil.java
...main/java/com/tykj/datawarehouse/base/util/ClassUtil.java
+0
-65
DateFormatUtil.java
...java/com/tykj/datawarehouse/base/util/DateFormatUtil.java
+0
-122
FileUtil.java
src/main/java/com/tykj/datawarehouse/base/util/FileUtil.java
+0
-52
ModelController.java
.../tykj/datawarehouse/model/controller/ModelController.java
+0
-259
QuoteController.java
.../tykj/datawarehouse/model/controller/QuoteController.java
+0
-62
RuleController.java
...m/tykj/datawarehouse/model/controller/RuleController.java
+0
-67
ColumnInfoDao.java
.../java/com/tykj/datawarehouse/model/dao/ColumnInfoDao.java
+0
-42
QuoteDao.java
src/main/java/com/tykj/datawarehouse/model/dao/QuoteDao.java
+0
-24
RuleDao.java
src/main/java/com/tykj/datawarehouse/model/dao/RuleDao.java
+0
-22
TableInfoDao.java
...n/java/com/tykj/datawarehouse/model/dao/TableInfoDao.java
+0
-28
ColumnInfo.java
.../java/com/tykj/datawarehouse/model/entity/ColumnInfo.java
+0
-74
Quote.java
src/main/java/com/tykj/datawarehouse/model/entity/Quote.java
+0
-35
Rule.java
src/main/java/com/tykj/datawarehouse/model/entity/Rule.java
+0
-32
TableInfo.java
...n/java/com/tykj/datawarehouse/model/entity/TableInfo.java
+0
-48
ConnectionType.java
...atawarehouse/model/entity/customEnums/ConnectionType.java
+0
-32
ColumnTypeVO.java
.../com/tykj/datawarehouse/model/entity/vo/ColumnTypeVO.java
+0
-25
ColumnVO.java
...java/com/tykj/datawarehouse/model/entity/vo/ColumnVO.java
+0
-46
ColumnWithQuoteVO.java
...tykj/datawarehouse/model/entity/vo/ColumnWithQuoteVO.java
+0
-25
CustomPage.java
...va/com/tykj/datawarehouse/model/entity/vo/CustomPage.java
+0
-25
DelTableVO.java
...va/com/tykj/datawarehouse/model/entity/vo/DelTableVO.java
+0
-25
GroupCondition.java
...om/tykj/datawarehouse/model/entity/vo/GroupCondition.java
+0
-16
OrderCondition.java
...om/tykj/datawarehouse/model/entity/vo/OrderCondition.java
+0
-23
QueryCondition.java
...om/tykj/datawarehouse/model/entity/vo/QueryCondition.java
+0
-40
RuleVo.java
...n/java/com/tykj/datawarehouse/model/entity/vo/RuleVo.java
+0
-25
SearchAllVO.java
...a/com/tykj/datawarehouse/model/entity/vo/SearchAllVO.java
+0
-20
SearchColumnInfoVo.java
...ykj/datawarehouse/model/entity/vo/SearchColumnInfoVo.java
+0
-27
SearchQuoteVO.java
...com/tykj/datawarehouse/model/entity/vo/SearchQuoteVO.java
+0
-20
SearchTableInfoVo.java
...tykj/datawarehouse/model/entity/vo/SearchTableInfoVo.java
+0
-33
TableAndColumnInfoVO.java
...j/datawarehouse/model/entity/vo/TableAndColumnInfoVO.java
+0
-27
TableVO.java
.../java/com/tykj/datawarehouse/model/entity/vo/TableVO.java
+0
-40
UpdateQuoteVO.java
...com/tykj/datawarehouse/model/entity/vo/UpdateQuoteVO.java
+0
-26
UpdateTableInfoVO.java
...tykj/datawarehouse/model/entity/vo/UpdateTableInfoVO.java
+0
-30
VersionVO.java
...ava/com/tykj/datawarehouse/model/entity/vo/VersionVO.java
+0
-30
complexQueryVo.java
...om/tykj/datawarehouse/model/entity/vo/complexQueryVo.java
+0
-41
ModelType.java
...n/java/com/tykj/datawarehouse/model/myEnum/ModelType.java
+0
-41
ModelService.java
...va/com/tykj/datawarehouse/model/service/ModelService.java
+0
-155
QuoteService.java
...va/com/tykj/datawarehouse/model/service/QuoteService.java
+0
-35
RuleService.java
...ava/com/tykj/datawarehouse/model/service/RuleService.java
+0
-41
ModelHelper.java
...om/tykj/datawarehouse/model/service/impl/ModelHelper.java
+0
-62
ModelImpl.java
.../com/tykj/datawarehouse/model/service/impl/ModelImpl.java
+0
-0
QuoteServiceImpl.java
...kj/datawarehouse/model/service/impl/QuoteServiceImpl.java
+0
-93
RuleServiceImpl.java
...ykj/datawarehouse/model/service/impl/RuleServiceImpl.java
+0
-74
MysqlSqlType.java
...va/com/tykj/datawarehouse/model/sqlType/MysqlSqlType.java
+0
-40
OscarSqlType.java
...va/com/tykj/datawarehouse/model/sqlType/OscarSqlType.java
+0
-40
CheckUtils.java
...n/java/com/tykj/datawarehouse/model/utils/CheckUtils.java
+0
-66
ClassTypeLength.java
...a/com/tykj/datawarehouse/model/utils/ClassTypeLength.java
+0
-31
CreateTableUtil.java
...a/com/tykj/datawarehouse/model/utils/CreateTableUtil.java
+0
-144
GetIndexUtil.java
...java/com/tykj/datawarehouse/model/utils/GetIndexUtil.java
+0
-14
HqlUtil.java
...main/java/com/tykj/datawarehouse/model/utils/HqlUtil.java
+0
-54
ObjectUtil.java
...n/java/com/tykj/datawarehouse/model/utils/ObjectUtil.java
+0
-31
SessionUtil.java
.../java/com/tykj/datawarehouse/model/utils/SessionUtil.java
+0
-109
SqlTypeUtil.java
.../java/com/tykj/datawarehouse/model/utils/SqlTypeUtil.java
+0
-23
SqlUtil.java
...main/java/com/tykj/datawarehouse/model/utils/SqlUtil.java
+0
-135
application.yml
src/main/resources/application.yml
+0
-26
DataTestApplicationTests.java
...java/com/tykj/datawarehouse/DataTestApplicationTests.java
+0
-34
没有找到文件。
pom.xml
浏览文件 @
b29b6ca1
...
...
@@ -36,17 +36,17 @@
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency
>
<groupId>
com.test
</groupId
>
<artifactId>
oscarJDBC16
</artifactId
>
<version>
1.0
</version
>
</dependency
>
<!-- <dependency>--
>
<!-- <groupId>com.test</groupId>--
>
<!-- <artifactId>oscarJDBC16</artifactId>--
>
<!-- <version>1.0</version>--
>
<!-- </dependency>--
>
<dependency
>
<groupId>
com.hxh
</groupId
>
<artifactId>
oscarSb
</artifactId
>
<version>
1.1.1
</version
>
</dependency
>
<!-- <dependency>--
>
<!-- <groupId>com.hxh</groupId>--
>
<!-- <artifactId>oscarSb</artifactId>--
>
<!-- <version>1.1.1</version>--
>
<!-- </dependency>--
>
<dependency>
<groupId>
com.github.caspar-chen
</groupId>
<artifactId>
swagger-ui-layer
</artifactId>
...
...
src/main/java/com/tykj/datawarehouse/DataWarehouseApplication.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
/**
* @author HASEE
*/
@SpringBootApplication
public
class
DataWarehouseApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DataWarehouseApplication
.
class
,
args
);
}
}
src/main/java/com/tykj/datawarehouse/base/aop/EntityHandle.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
aop
;
import
com.tykj.datawarehouse.base.entity.BaseEntity
;
import
org.aspectj.lang.JoinPoint
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Before
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
static
java
.
util
.
Objects
.
isNull
;
/**
* @author C
*/
@Aspect
@Component
public
class
EntityHandle
{
@Before
(
"execution(* org.springframework.data.repository.CrudRepository.save(..)) && args(com.tykj.datawarehouse.base.entity.BaseEntity))"
)
public
void
checkTimes
(
JoinPoint
point
)
{
Object
[]
args
=
point
.
getArgs
();
for
(
Object
arg
:
args
)
{
if
(
arg
instanceof
BaseEntity
){
BaseEntity
entity
=
(
BaseEntity
)
arg
;
if
(
isNull
(
entity
.
getCreatedTime
())){
entity
.
setCreatedTime
(
new
Date
());
}
entity
.
setUpdatedTime
(
new
Date
());
}
}
}
}
src/main/java/com/tykj/datawarehouse/base/config/Java8TimeConfig.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
config
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.databind.*
;
import
com.fasterxml.jackson.databind.ser.std.DateSerializer
;
import
com.fasterxml.jackson.datatype.jdk8.Jdk8Module
;
import
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
;
import
com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer
;
import
com.fasterxml.jackson.module.paramnames.ParameterNamesModule
;
import
com.tykj.datawarehouse.base.util.DateFormatUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Date
;
/**
* 描述:使jackson能够正确的接收时间格式
* @author HuangXiahao
* @version V1.0
* @class Java8TimeConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/5/20
**/
@Configuration
public
class
Java8TimeConfig
{
@Value
(
"${spring.jackson.date-format}"
)
private
String
formatValue
;
@Bean
(
name
=
"format"
)
DateTimeFormatter
format
()
{
return
DateTimeFormatter
.
ofPattern
(
formatValue
);
}
@Bean
public
ObjectMapper
serializingObjectMapper
(
@Qualifier
(
"format"
)
DateTimeFormatter
format
)
{
JavaTimeModule
javaTimeModule
=
new
JavaTimeModule
();
javaTimeModule
.
addSerializer
(
LocalDateTime
.
class
,
new
LocalDateTimeSerializer
(
format
));
javaTimeModule
.
addSerializer
(
Instant
.
class
,
new
InstantCustomSerializer
(
format
));
javaTimeModule
.
addSerializer
(
Date
.
class
,
new
DateSerializer
(
false
,
new
SimpleDateFormat
(
formatValue
)));
javaTimeModule
.
addDeserializer
(
Instant
.
class
,
new
InstantCustomDeserializer
());
javaTimeModule
.
addDeserializer
(
Date
.
class
,
new
DateCustomDeserializer
());
return
new
ObjectMapper
()
.
registerModule
(
new
ParameterNamesModule
())
.
disable
(
SerializationFeature
.
WRITE_DATES_AS_TIMESTAMPS
)
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
)
.
registerModule
(
javaTimeModule
);
}
static
class
InstantCustomSerializer
extends
JsonSerializer
<
Instant
>
{
private
final
DateTimeFormatter
format
;
private
InstantCustomSerializer
(
DateTimeFormatter
formatter
)
{
this
.
format
=
formatter
;
}
@Override
public
void
serialize
(
Instant
instant
,
JsonGenerator
jsonGenerator
,
SerializerProvider
serializerProvider
)
throws
IOException
{
if
(
instant
==
null
)
{
return
;
}
String
jsonValue
=
format
.
format
(
instant
.
atZone
(
ZoneId
.
systemDefault
()));
jsonGenerator
.
writeString
(
jsonValue
);
}
}
static
class
InstantCustomDeserializer
extends
JsonDeserializer
<
Instant
>{
@Override
public
Instant
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
{
String
dateString
=
p
.
getText
().
trim
();
if
(
StringUtils
.
isNotBlank
(
dateString
)){
Date
pareDate
;
try
{
pareDate
=
DateFormatUtil
.
pareDate
(
dateString
);
if
(
null
!=
pareDate
){
return
pareDate
.
toInstant
();
}
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
}
static
class
DateCustomDeserializer
extends
JsonDeserializer
<
Date
>{
@Override
public
Date
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
{
String
dateString
=
p
.
getText
().
trim
();
if
(
StringUtils
.
isNotBlank
(
dateString
)){
try
{
return
DateFormatUtil
.
pareDate
(
dateString
);
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
}
/**
* Support for Java date and time API.
* @return the corresponding Jackson module.
*/
@Bean
public
JavaTimeModule
javaTimeModule
()
{
return
new
JavaTimeModule
();
}
@Bean
public
Jdk8Module
jdk8TimeModule
()
{
return
new
Jdk8Module
();
}
}
\ No newline at end of file
src/main/java/com/tykj/datawarehouse/base/config/WebMvcConfig.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
/**
* @author zsp
* @version V1.0
* @class WebMvcConfig
* @packageName com.example.personnelmanager.common.config
* @data 2020/6/11
**/
@Configuration
@EnableSwagger2
public
class
WebMvcConfig
implements
WebMvcConfigurer
{
@Bean
public
WebMvcConfigurer
corsConfigurer
()
{
return
new
WebMvcConfigurer
()
{
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
"/**"
)
.
allowedOriginPatterns
(
"*"
)
.
allowCredentials
(
true
)
.
allowedMethods
(
"GET"
,
"POST"
,
"DELETE"
,
"PUT"
,
"PATCH"
)
.
maxAge
(
3600
);
}
};
}
@Bean
public
Docket
api
()
{
return
new
Docket
(
DocumentationType
.
SWAGGER_2
)
.
apiInfo
(
apiInfo
())
.
select
()
// 自行修改为自己的包路径
.
apis
(
RequestHandlerSelectors
.
basePackage
(
"com.tykj"
))
.
paths
(
PathSelectors
.
any
())
.
build
();
}
private
ApiInfo
apiInfo
()
{
return
new
ApiInfoBuilder
()
.
title
(
"数据模型"
)
.
description
(
"数据模型"
)
.
version
(
"1.1"
)
.
build
();
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
// 这里之所以多了一"/",是为了解决打war时访问不到问题
registry
.
addResourceHandler
(
"/webs/**"
).
addResourceLocations
(
"classpath:/webs/"
);
}
}
src/main/java/com/tykj/datawarehouse/base/consumer/FourComsumer.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
consumer
;
import
java.util.Objects
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/7/5 17:28
*/
@FunctionalInterface
public
interface
FourComsumer
<
T
,
Y
,
U
,
I
>
{
/**
* accept
* @param t
* @param y
* @param u
* @param i
*/
void
accept
(
T
t
,
Y
y
,
U
u
,
I
i
);
/**
* andThen
* @param after
* @return
*/
default
FourComsumer
<
T
,
Y
,
U
,
I
>
andThen
(
FourComsumer
<?
super
T
,
?
super
Y
,
?
super
U
,
?
super
I
>
after
)
{
Objects
.
requireNonNull
(
after
);
return
(
l
,
y
,
u
,
i
)
->
{
accept
(
l
,
y
,
u
,
i
);
after
.
accept
(
l
,
y
,
u
,
i
);
};
}
}
src/main/java/com/tykj/datawarehouse/base/entity/BaseEntity.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.*
;
import
java.util.Date
;
/**
* @author HuangXiahao
* @version V1.0
* @class BaseEntity
* @packageName com.example.demo.entity
**/
@Data
@MappedSuperclass
public
abstract
class
BaseEntity
{
@Id
@SequenceGenerator
(
sequenceName
=
"SEQUENCE"
,
name
=
"t1"
,
allocationSize
=
1
)
@GeneratedValue
(
strategy
=
GenerationType
.
SEQUENCE
,
generator
=
"t1"
)
@ApiModelProperty
(
"主键"
)
protected
Integer
id
;
@ApiModelProperty
(
"创建时间"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd hh:mm"
)
protected
Date
createdTime
;
@ApiModelProperty
(
"修改时间"
)
@Temporal
(
TemporalType
.
TIMESTAMP
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd hh:mm"
)
protected
Date
updatedTime
;
@ApiModelProperty
(
"逻辑删除 0为 false 1为 true"
)
protected
Integer
deleted
=
0
;
}
src/main/java/com/tykj/datawarehouse/base/entity/XMQGenerator.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
entity
;
import
org.hibernate.engine.spi.SharedSessionContractImplementor
;
import
org.hibernate.id.SequenceGenerator
;
import
java.io.Serializable
;
import
java.util.HashMap
;
/**
* @author HuangXiahao
* @version V1.0
* @class UUIDHexGenerator
* @packageName com.tykj.base.entity
**/
public
class
XMQGenerator
extends
SequenceGenerator
{
public
XMQGenerator
()
{
super
();
}
@Override
public
Serializable
generate
(
SharedSessionContractImplementor
s
,
Object
obj
)
{
if
(
obj
instanceof
HashMap
){
HashMap
hashMap
=
(
HashMap
)
obj
;
if
(
hashMap
.
containsKey
(
"id"
)){
return
(
Serializable
)
hashMap
.
get
(
"id"
);
};
}
return
super
.
generate
(
s
,
obj
);
}
}
src/main/java/com/tykj/datawarehouse/base/page/JpaCustomOrder.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
page
;
import
lombok.Data
;
import
org.springframework.data.domain.Sort
;
/**
* 描述:Jpa排序类
*
* @author HuangXiahao
* @version V1.0
* @data 2020/5/13
**/
@Data
public
class
JpaCustomOrder
{
private
String
coulmn
;
private
Sort
.
Direction
direction
;
}
src/main/java/com/tykj/datawarehouse/base/page/JpaCustomPage.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
page
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.util.Assert
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* JPA分页类
* @author HuangXiahao
* @class CustomOrder
* @data 2020/5/13
**/
public
class
JpaCustomPage
{
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
Integer
page
=
0
;
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
Integer
size
=
15
;
@JsonProperty
(
access
=
JsonProperty
.
Access
.
WRITE_ONLY
)
private
List
<
JpaCustomOrder
>
orders
=
new
ArrayList
<>();
public
Integer
getPage
()
{
return
page
;
}
public
void
setPage
(
Integer
page
)
{
this
.
page
=
page
;
}
public
Integer
getSize
()
{
return
size
;
}
public
void
setSize
(
Integer
size
)
{
Assert
.
isTrue
(
page
>=
0
,
"分页信息错误!"
);
this
.
size
=
size
;
}
public
List
<
JpaCustomOrder
>
getOrders
()
{
return
orders
;
}
public
void
setOrders
(
List
<
JpaCustomOrder
>
orders
)
{
this
.
orders
=
orders
;
}
@JsonIgnore
public
long
getOffset
()
{
return
page
*
size
;
}
@JsonIgnore
public
Integer
getLimit
()
{
return
size
;
}
@JsonIgnore
public
PageRequest
getPageable
()
{
if
(
orders
.
size
()
!=
0
)
{
List
<
Sort
.
Order
>
orders
=
new
ArrayList
<>();
this
.
orders
.
stream
().
forEach
(
item
->
orders
.
add
(
new
Sort
.
Order
(
item
.
getDirection
(),
item
.
getCoulmn
())));
return
PageRequest
.
of
(
getPage
(),
getLimit
(),
Sort
.
by
(
orders
));
}
return
PageRequest
.
of
(
getPage
(),
getLimit
());
}
}
src/main/java/com/tykj/datawarehouse/base/result/ApiException.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
result
;
import
org.springframework.http.ResponseEntity
;
/**
* 全局错误处理类,用于处理一些不容易定义的错误
*
* @author HuangXiahao
**/
public
class
ApiException
extends
RuntimeException
{
private
ResponseEntity
responseEntity
;
public
ApiException
(
ResponseEntity
responseEntity
)
{
this
.
responseEntity
=
responseEntity
;
}
public
ApiException
(
String
message
)
{
this
.
responseEntity
=
ResponseEntity
.
status
(
500
).
body
(
new
ResultObj
(
""
,
message
));
}
public
ApiException
(
Object
data
,
String
message
)
{
this
.
responseEntity
=
ResponseEntity
.
status
(
500
).
body
(
new
ResultObj
(
data
,
message
));
}
public
ResponseEntity
getResponseEntity
()
{
return
responseEntity
;
}
public
void
setResponseEntity
(
ResponseEntity
responseEntity
)
{
this
.
responseEntity
=
responseEntity
;
}
}
src/main/java/com/tykj/datawarehouse/base/result/GlobalExceptionHandler.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
result
;
import
com.fasterxml.jackson.databind.exc.InvalidFormatException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.sql.SQLSyntaxErrorException
;
/**
* 错误处理类
* 所有的报错信息都会通过本层的方法向外界返回
*
* @author HuangXiahao
**/
@Order
(
Ordered
.
HIGHEST_PRECEDENCE
)
@ControllerAdvice
@Slf4j
public
class
GlobalExceptionHandler
{
/**
* 业务错误
*
* @param e 报错信息
*/
@ResponseBody
@ExceptionHandler
(
ApiException
.
class
)
public
ResponseEntity
errorMessage
(
ApiException
e
)
{
log
.
warn
(
"[自定义异常] {}"
,
e
.
toString
());
e
.
printStackTrace
();
if
(
e
.
getResponseEntity
()
!=
null
)
{
return
e
.
getResponseEntity
();
}
return
ResultUtil
.
failed
(
e
.
getMessage
());
}
/**
* 处理字段长度异常
* @param invalidFormatException
* @return
*/
@ExceptionHandler
(
InvalidFormatException
.
class
)
public
ResponseEntity
handle
(
InvalidFormatException
invalidFormatException
){
log
.
warn
(
invalidFormatException
.
toString
());
return
ResultUtil
.
failed
(
"字段长度错误,请修改为合适的长度!"
);
}
@ExceptionHandler
(
SQLSyntaxErrorException
.
class
)
public
ResponseEntity
handleSQl
(
InvalidFormatException
invalidFormatException
){
log
.
warn
(
invalidFormatException
.
toString
());
return
ResultUtil
.
failed
(
"列名不合法,请修改列名!"
);
}
}
src/main/java/com/tykj/datawarehouse/base/result/ResultObj.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
result
;
import
com.fasterxml.jackson.annotation.JsonPropertyOrder
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author dengdiyi
* @description 接口返回统一标准类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonPropertyOrder
(
value
=
{
"message"
,
"data"
})
public
class
ResultObj
<
T
>
{
private
T
data
;
private
String
message
;
public
ResultObj
(
T
o
)
{
this
.
data
=
o
;
this
.
message
=
"no message"
;
}
}
src/main/java/com/tykj/datawarehouse/base/result/ResultUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
result
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
/**
* @author HuangXiahao
* @version V1.0
* @class ResultMessage
* @packageName com.example.hello.demo.resultObject
**/
public
class
ResultUtil
<
T
>
{
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public
static
<
T
>
ResponseEntity
<
ResultObj
<
T
>>
success
(
T
data
,
String
message
)
{
return
ResponseEntity
.
ok
(
new
ResultObj
<>(
data
,
message
));
}
/**
* 成功返回结果
*/
public
static
<
T
>
ResponseEntity
<
ResultObj
<
T
>>
success
(
String
message
)
{
return
ResponseEntity
.
ok
(
new
ResultObj
<>(
null
,
message
));
}
/**
* 成功返回结果
*
* @param data 获取的数据
*/
public
static
<
T
>
ResponseEntity
success
(
T
data
,
HttpHeaders
headers
)
{
return
new
ResponseEntity
(
new
ResultObj
(
data
),
headers
,
HttpStatus
.
OK
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
failed
()
{
return
ResponseEntity
.
status
(
500
).
body
(
new
ResultObj
(
"服务器内部发生错误"
));
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
failed
(
T
content
)
{
return
new
ResponseEntity
(
new
ResultObj
(
content
),
HttpStatus
.
INTERNAL_SERVER_ERROR
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
failed
(
HttpStatus
httpStatus
)
{
return
new
ResponseEntity
(
httpStatus
);
}
/**
* 失败返回结果
*/
public
static
<
T
>
ResponseEntity
failed
(
HttpStatus
httpStatus
,
T
content
)
{
return
new
ResponseEntity
(
new
ResultObj
(
content
),
httpStatus
);
}
/**
* 参数验证失败返回结果
*/
public
static
<
T
>
ResponseEntity
validateFailed
(
T
content
)
{
return
failed
(
HttpStatus
.
INTERNAL_SERVER_ERROR
,
content
);
}
/**
* 未登录返回结果
*/
public
static
<
T
>
ResponseEntity
unauthorized
()
{
return
failed
(
HttpStatus
.
UNAUTHORIZED
);
}
/**
* 未授权返回结果
*/
public
static
<
T
>
ResponseEntity
forbidden
()
{
return
failed
(
HttpStatus
.
FORBIDDEN
);
}
}
src/main/java/com/tykj/datawarehouse/base/util/ClassUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
util
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.Enumeration
;
import
java.util.List
;
public
class
ClassUtil
{
/**
* 读取项目中所有Class 并以Class对象的集合返回
* @param load ClassLoader
* @return Class对象集合
*/
public
static
List
<
Class
<?>>
loadClassByLoader
(
ClassLoader
load
)
{
List
<
Class
<?>>
classes
=
new
ArrayList
<>();
try
{
Enumeration
<
URL
>
urls
=
load
.
getResources
(
""
);
//放所有类型
while
(
urls
.
hasMoreElements
())
{
URL
url
=
urls
.
nextElement
();
//文件类型(其实是文件夹)
if
(
url
.
getProtocol
().
equals
(
"file"
))
{
loadClassByPath
(
null
,
url
.
getPath
(),
classes
,
load
);
}
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
classes
;
}
/**
* 通过文件路径加载所有类 root 主要用来替换path中前缀(除包路径以外的路径)
*/
private
static
void
loadClassByPath
(
String
root
,
String
path
,
List
<
Class
<?>>
list
,
ClassLoader
load
)
{
File
f
=
new
File
(
path
);
if
(
root
==
null
)
{
root
=
f
.
getPath
();
}
//判断是否是class文件
if
(
f
.
isFile
()
&&
f
.
getName
().
matches
(
"^.*\\.class$"
))
{
try
{
String
classPath
=
f
.
getPath
();
//截取出className 将路径分割符替换为.(windows是\ linux、mac是/)
String
className
=
classPath
.
substring
(
root
.
length
()
+
1
,
classPath
.
length
()
-
6
).
replace
(
'/'
,
'.'
).
replace
(
'\\'
,
'.'
);
list
.
add
(
load
.
loadClass
(
className
));
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
}
}
else
{
File
[]
fs
=
f
.
listFiles
();
if
(
fs
==
null
)
{
return
;
}
for
(
File
file
:
fs
)
{
loadClassByPath
(
root
,
file
.
getPath
(),
list
,
load
);
}
}
}
}
src/main/java/com/tykj/datawarehouse/base/util/DateFormatUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
util
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.time.FastDateFormat
;
import
java.text.ParseException
;
import
java.time.Instant
;
import
java.util.Date
;
/**
* 时间格式化工具工具
*
* @author HuangXiahao
* @version V1.0
* @class DateFormatUtil
* @packageName com.example.personnelmanager.common.utils
* @data 2020/5/20
**/
public
class
DateFormatUtil
{
public
static
final
String
SYMBOL_DOT
=
"\\."
;
/**
* 日期正则yyyy-MM
*/
public
static
final
String
DATE_REGEX_YYYYMM
=
"^\\d{4}-\\d{1,2}$"
;
/**
* 日期正则yyyy-MM-dd
*/
public
static
final
String
DATE_REGEX_YYYYMMDD
=
"^\\d{4}-\\d{1,2}-\\d{1,2}$"
;
/**
* 日期正则yyyy-MM-dd hh:mm
*/
public
static
final
String
DATE_REGEX_YYYYMMDDHHMM
=
"^\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}:\\d{1,2}$"
;
/**
* 日期正则yyyy-MM-dd hh:mm:ss
*/
public
static
final
String
DATE_REGEX_YYYYMMDDHHMMSS
=
"^\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}:\\d{1,2}:\\d{1,2}$"
;
/**
* Instant日期秒+纳秒
*/
public
static
final
String
DATE_REGEX_SECOND_DOT_NANOSECOND
=
"^[0-9]+\\.[0-9]{1,9}$"
;
/**
* 日期正则yyyy-MM-dd'T'HH:mm:ssZ
*/
public
static
final
String
DATE_REGEX_YYYYMMDD_T_HHMMSS_Z
=
"^\\d{4}-\\d{1,2}-\\d{1,2}T\\d{1,2}:\\d{1,2}:\\d{1,2}Z$"
;
/**
* 日期正则yyyy-MM-dd'T'HH:mm:ssZ
*/
public
static
final
String
DATE_REGEX_YYYYMMDD_T_HHMMSS_SSS_Z
=
"^\\d{4}-\\d{1,2}-\\d{1,2}T\\d{1,2}:\\d{1,2}:\\d{1,2}\\.\\d{1,3}Z$"
;
/**
* 以T分隔日期和时间,并带时区信息,符合ISO8601规范
*/
public
static
final
String
PATTERN_ISO
=
"yyyy-MM-dd'T'HH:mm:ss.SSSZZ"
;
public
static
final
String
PATTERN_ISO_ON_SECOND
=
"yyyy-MM-dd'T'HH:mm:ssZZ"
;
public
static
final
String
PATTERN_ISO_ON_DATE
=
"yyyy-MM-dd"
;
public
static
final
String
PATTERN_ISO_ON_MONTH
=
"yyyy-MM"
;
/**
* 以空格分隔日期和时间,不带时区信息
*/
public
static
final
String
PATTERN_DEFAULT
=
"yyyy-MM-dd HH:mm:ss.SSS"
;
public
static
final
String
PATTERN_DEFAULT_ON_SECOND
=
"yyyy-MM-dd HH:mm:ss"
;
public
static
final
String
PATTERN_DEFAULT_ON_MINUTE
=
"yyyy-MM-dd HH:mm"
;
//
/**
* 以T分隔日期和时间,并带时区信息,符合ISO8601规范
*/
public
static
final
FastDateFormat
ISO_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_ISO
);
public
static
final
FastDateFormat
ISO_ON_SECOND_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_ISO_ON_SECOND
);
public
static
final
FastDateFormat
ISO_ON_DATE_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_ISO_ON_DATE
);
public
static
final
FastDateFormat
ISO_ON_MONTH_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_ISO_ON_MONTH
);
/**
* 以空格分隔日期和时间,不带时区信息
*/
public
static
final
FastDateFormat
DEFAULT_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_DEFAULT
);
public
static
final
FastDateFormat
DEFAULT_ON_SECOND_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_DEFAULT_ON_SECOND
);
public
static
final
FastDateFormat
DEFAULT_ON_MINUTE_FORMAT
=
FastDateFormat
.
getInstance
(
PATTERN_DEFAULT_ON_MINUTE
);
/**
* 将日期格式的字符串转换成指定格式的日期
* @param pattern 日期格式
* @param dateString 日期字符串
* @return
* @throws ParseException
*/
public
static
Date
pareDate
(
String
pattern
,
String
dateString
)
throws
ParseException
{
return
FastDateFormat
.
getInstance
(
pattern
).
parse
(
dateString
);
}
/**
* 将日期格式的字符串根据正则转换成相应格式的日期
* @param dateString 日期字符串
* @return
* @throws ParseException
*/
public
static
Date
pareDate
(
String
dateString
)
throws
ParseException
{
String
source
=
dateString
.
trim
();
if
(
StringUtils
.
isNotBlank
(
source
))
{
if
(
source
.
matches
(
DATE_REGEX_YYYYMM
)){
return
ISO_ON_MONTH_FORMAT
.
parse
(
source
);
}
else
if
(
source
.
matches
(
DATE_REGEX_YYYYMMDD
)){
return
ISO_ON_DATE_FORMAT
.
parse
(
source
);
}
else
if
(
source
.
matches
(
DATE_REGEX_YYYYMMDDHHMM
)){
return
DEFAULT_ON_MINUTE_FORMAT
.
parse
(
source
);
}
else
if
(
source
.
matches
(
DATE_REGEX_YYYYMMDDHHMMSS
)){
return
DEFAULT_ON_SECOND_FORMAT
.
parse
(
source
);
}
else
if
(
source
.
matches
(
DATE_REGEX_YYYYMMDD_T_HHMMSS_Z
)){
return
ISO_ON_SECOND_FORMAT
.
parse
(
source
);
}
else
if
(
source
.
matches
(
DATE_REGEX_YYYYMMDD_T_HHMMSS_SSS_Z
)){
return
ISO_FORMAT
.
parse
(
source
);
}
else
if
(
source
.
matches
(
DATE_REGEX_SECOND_DOT_NANOSECOND
)){
String
[]
split
=
source
.
split
(
SYMBOL_DOT
);
return
Date
.
from
(
Instant
.
ofEpochSecond
(
Long
.
parseLong
(
split
[
0
]),
Long
.
parseLong
(
split
[
1
])));
}
else
{
throw
new
IllegalArgumentException
(
"Invalid date value '"
+
source
+
"'"
);
}
}
return
null
;
}
}
src/main/java/com/tykj/datawarehouse/base/util/FileUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
base
.
util
;
import
java.io.*
;
/**
* @author HuangXiahao
* @version V1.0
* @class FileUtil
* @packageName com.tykj.workflowcore.base.util
**/
public
class
FileUtil
{
public
static
File
createFileByString
(
String
filePath
,
String
fileString
){
File
f
=
null
;
try
{
f
=
new
File
(
filePath
);
// 判断文件是否存在
if
(!
f
.
exists
()){
f
.
createNewFile
();
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
BufferedReader
bufferedReader
=
null
;
BufferedWriter
bufferedWriter
=
null
;
try
{
bufferedReader
=
new
BufferedReader
(
new
StringReader
(
fileString
));
bufferedWriter
=
new
BufferedWriter
(
new
FileWriter
(
f
));
//字符缓冲区
char
buf
[]
=
new
char
[
1024
];
int
len
;
while
((
len
=
bufferedReader
.
read
(
buf
))
!=
-
1
)
{
bufferedWriter
.
write
(
buf
,
0
,
len
);
}
bufferedWriter
.
flush
();
bufferedReader
.
close
();
bufferedWriter
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
if
(
bufferedReader
!=
null
)
{
try
{
bufferedReader
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
f
;
}
}
src/main/java/com/tykj/datawarehouse/model/controller/ModelController.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
controller
;
import
com.tykj.datawarehouse.base.result.ApiException
;
import
com.tykj.datawarehouse.base.result.ResultUtil
;
import
com.tykj.datawarehouse.model.dao.QuoteDao
;
import
com.tykj.datawarehouse.model.dao.RuleDao
;
import
com.tykj.datawarehouse.model.entity.ColumnInfo
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
com.tykj.datawarehouse.model.entity.Rule
;
import
com.tykj.datawarehouse.model.entity.TableInfo
;
import
com.tykj.datawarehouse.model.entity.vo.*
;
import
com.tykj.datawarehouse.model.service.ModelService
;
import
com.tykj.datawarehouse.model.service.impl.ModelHelper
;
import
com.tykj.datawarehouse.model.utils.SessionUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.hibernate.Session
;
import
org.hibernate.internal.SessionImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
/**
* @ClassName ModelController
* @Description TODO
* @Author WWW
* @Date 2021/2/26 13:35
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping
(
"/model"
)
@Api
(
tags
=
"数据模型层接口"
)
public
class
ModelController
{
@Autowired
private
ModelService
modelService
;
@Autowired
private
ModelHelper
modelHelper
;
@Autowired
private
QuoteDao
quoteDao
;
@Autowired
private
RuleDao
ruleDao
;
@Autowired
SessionUtil
sessionUtil
;
/**
* @param
* @return java.util.List<com.tykj.workflowcore.model_layer.model.TableInfo>
* @Author WWW
* @Description 得到所有数据库信息
* @Date 16:19 2021/3/4
**/
@ApiOperation
(
"得到所有数据表信息"
)
@PostMapping
(
"/getAllEntity"
)
public
ResponseEntity
getAllEntity
(
@RequestBody
SearchTableInfoVo
searchTableInfoVo
)
{
Page
<
TableInfo
>
tableInfos
;
tableInfos
=
modelService
.
pageAllEntities
(
searchTableInfoVo
);
return
ResultUtil
.
success
(
tableInfos
,
"数据查询成功!"
);
}
/**
* @return org.springframework.http.ResponseEntity
* @Author WWW
* @Description 根据表名查询所有数据
* @Date 9:30 2021/3/11
**/
@ApiOperation
(
"根据表名查询所有数据"
)
@PostMapping
(
"/getAll"
)
public
ResponseEntity
getAll
(
@RequestBody
SearchAllVO
searchAllVO
)
throws
SQLException
{
if
(
searchAllVO
.
getOrderConditions
()
!=
null
&&
searchAllVO
.
getOrderConditions
().
size
()
>
0
)
{
return
ResultUtil
.
success
(
modelService
.
findAllByName
(
searchAllVO
.
getTableName
(),
searchAllVO
.
getOrderConditions
()),
"查询成功!"
);
}
return
ResultUtil
.
success
(
modelService
.
findAllByName
(
searchAllVO
.
getTableName
()),
"查询成功!"
);
}
/**
* @param searchColumnInfoVo
* @return java.util.List<com.tykj.workflowcore.model_layer.model.ColumnInfo>
* @Author WWW
* @Description 根据表名得到所有字段名
* @Date 16:20 2021/3/4
**/
@ApiOperation
(
"根据表名或者id查询表中所有字段"
)
@PostMapping
(
"/getAllField"
)
public
ResponseEntity
getFields
(
@RequestBody
SearchColumnInfoVo
searchColumnInfoVo
)
{
List
<
ColumnInfo
>
columnInfos
=
modelService
.
showModelFields
(
searchColumnInfoVo
);
for
(
ColumnInfo
columnInfo
:
columnInfos
)
{
List
<
Quote
>
allQuote
=
quoteDao
.
findAllByColumnId
(
columnInfo
.
getId
());
Rule
rule
;
try
{
rule
=
ruleDao
.
findAllByColumnId
(
columnInfo
.
getId
());
}
catch
(
Exception
e
)
{
throw
new
ApiException
(
"规则不唯一!"
);
}
columnInfo
.
setRule
(
rule
);
columnInfo
.
setQuoteList
(
allQuote
);
}
return
ResultUtil
.
success
(
columnInfos
,
"数据查询成功!"
);
}
/**
* @param
* @return org.springframework.http.ResponseEntity
* @Author WWW
* @Description 新增数据模型
* @Date 16:21 2021/3/4
**/
@ApiOperation
(
"新增数据模型"
)
@PostMapping
(
value
=
"/addModel"
)
public
ResponseEntity
addModel
(
@RequestBody
TableVO
tableVO
)
{
long
start
=
System
.
currentTimeMillis
();
modelService
.
newTable
(
tableVO
);
long
end
=
System
.
currentTimeMillis
();
log
.
warn
(
"创建总用时为:{}秒"
,
(
end
-
start
)
/
1000.0
);
return
ResultUtil
.
success
(
""
,
"新建成功!"
);
}
/**
* @param map
* @return int
* @Author WWW
* @Description 对应表插入数据
* map (表名,字段数据)
* @Date 16:22 2021/3/4
**/
@ApiOperation
(
value
=
"根据表名表插入数据"
)
@PostMapping
(
"/insertValues"
)
public
ResponseEntity
insertValues
(
@RequestBody
Map
<
String
,
Object
>
map
)
{
SessionImpl
session
=(
SessionImpl
)
sessionUtil
.
getSession
();
int
i
=
modelService
.
operationValueByEntityName
(
map
,
session
,
session:
:
saveOrUpdate
,
modelService:
:
validationAllRuleAndQuote
);
if
(
i
==
0
)
{
return
ResultUtil
.
success
(
""
,
"数据插入成功!"
);
}
return
ResultUtil
.
failed
(
"模型类型不支持插入数据!"
);
}
/**
* @param mapList
* @return int
* @Author WWW
* @Description 对应表插入数据
* map (表名,字段数据)
* @Date 16:22 2021/3/4
**/
@ApiOperation
(
value
=
"根据表名表插入数据"
)
@PostMapping
(
"/insertValueList"
)
public
ResponseEntity
insertValueList
(
@RequestBody
List
<
Map
<
String
,
Object
>>
mapList
)
{
SessionImpl
session
=(
SessionImpl
)
sessionUtil
.
getSession
();
int
i
=
modelService
.
operationValueByEntityNameList
(
mapList
,
session
,
session:
:
saveOrUpdate
,
modelService:
:
validationAllRuleAndQuote
);
if
(
i
==
0
)
{
return
ResultUtil
.
success
(
""
,
"数据保存成功!"
);
}
return
ResultUtil
.
failed
(
"模型类型不支持插入数据!"
);
}
/**
* @param complexQueryVo
* @return 复杂查询
*/
@ApiOperation
(
"复杂查询"
)
@PostMapping
(
"/complexQuery"
)
public
ResponseEntity
complexQuery
(
@RequestBody
complexQueryVo
complexQueryVo
)
{
List
list
=
modelService
.
complexQuery
(
complexQueryVo
.
getTableName
(),
complexQueryVo
.
getColumnNames
(),
complexQueryVo
.
getQueryConditions
(),
complexQueryVo
.
getGroupByColumn
()
);
if
(
list
!=
null
)
{
return
ResultUtil
.
success
(
list
,
"查询成功!"
);
}
return
ResultUtil
.
failed
(
null
,
"没有数据!"
);
}
/**
* @param complexQueryVo
* @return 复杂查询
*/
@ApiOperation
(
"复杂查询(分类)"
)
@PostMapping
(
"/complexQuery/group"
)
public
ResponseEntity
complexQueryWithGroup
(
@RequestBody
complexQueryVo
complexQueryVo
)
{
CustomPage
customPage
=
modelService
.
complexQueryWithGroup
(
complexQueryVo
.
getTableName
(),
complexQueryVo
.
getGroupCondition
(),
complexQueryVo
.
getColumnNames
(),
complexQueryVo
.
getQueryConditions
(),
complexQueryVo
.
getGroupByColumn
(),
complexQueryVo
.
getPage
(),
complexQueryVo
.
getSize
());
if
(
customPage
.
getContents
()
!=
null
)
{
return
ResultUtil
.
success
(
customPage
,
"查询成功!"
);
}
return
ResultUtil
.
failed
(
HttpStatus
.
INTERNAL_SERVER_ERROR
,
"没有数据!"
);
}
@ApiOperation
(
"编辑操作"
)
@PutMapping
(
"/update"
)
public
ResponseEntity
updateTable
(
@RequestBody
UpdateTableInfoVO
updateTableInfoVO
)
{
return
modelService
.
updateTable
(
updateTableInfoVO
);
// if (i == 1) {
// return ResultUtil.success("", "修改成功!");
// }
// return ResultUtil.failed("业务不支持修改!");
}
@ApiOperation
(
"删除操作"
)
@DeleteMapping
(
"/delete"
)
public
ResponseEntity
delTable
(
DelTableVO
delTableVO
)
{
int
i
=
modelService
.
delTable
(
delTableVO
);
if
(
i
==
1
)
{
return
ResultUtil
.
success
(
""
,
"删除成功!"
);
}
return
ResultUtil
.
failed
(
"业务类型不支持删除!"
);
}
@ApiOperation
(
"获得获得非聚合对象example"
)
@GetMapping
(
"/example"
)
public
ResponseEntity
getJSONExample
(
Integer
id
)
{
return
ResultUtil
.
success
(
modelHelper
.
getJsonExample
(
id
),
"获得example成功!"
);
}
@ApiOperation
(
"自定义SQL查询"
)
@PostMapping
(
"/sql"
)
public
ResponseEntity
executeSql
(
String
sql
)
{
try
{
return
ResultUtil
.
success
(
modelService
.
executeQuery
(
sql
),
"查询成功!"
);
}
catch
(
SQLException
throwables
)
{
throwables
.
printStackTrace
();
}
return
ResultUtil
.
failed
(
"SQL错误,查询失败!"
);
}
@ApiOperation
(
"删除接口"
)
@PostMapping
(
"/deleteValue"
)
public
ResponseEntity
deleteValue
(
@RequestBody
Map
<
String
,
Object
>
map
)
{
SessionImpl
session
=(
SessionImpl
)
sessionUtil
.
getSession
();
int
i
=
modelService
.
operationValueByEntityName
(
map
,
session
,
session:
:
delete
,
null
);
if
(
i
==
0
)
{
return
ResultUtil
.
success
(
""
,
"数据删除成功!"
);
}
return
ResultUtil
.
failed
(
"数据删除失败!"
);
}
@ApiOperation
(
"字段类型"
)
@GetMapping
(
"/type"
)
public
ResponseEntity
type
()
{
//这代码狗都不改
List
<
ColumnTypeVO
>
columnTypeVOS
=
Arrays
.
asList
(
new
ColumnTypeVO
(
"数字"
,
"java.lang.Integer"
,
"11"
)
,
new
ColumnTypeVO
(
"浮点数"
,
"java.lang.Double"
,
"11"
)
,
new
ColumnTypeVO
(
"单/多行文本"
,
"java.lang.String"
,
"255"
)
,
new
ColumnTypeVO
(
"布尔值"
,
"java.lang.Boolean"
,
"1"
));
return
ResultUtil
.
success
(
columnTypeVOS
,
"查询成功!"
);
}
}
src/main/java/com/tykj/datawarehouse/model/controller/QuoteController.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
controller
;
import
com.tykj.datawarehouse.base.result.ResultUtil
;
import
com.tykj.datawarehouse.model.dao.ColumnInfoDao
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
com.tykj.datawarehouse.model.entity.vo.SearchQuoteVO
;
import
com.tykj.datawarehouse.model.entity.vo.UpdateQuoteVO
;
import
com.tykj.datawarehouse.model.service.QuoteService
;
import
com.tykj.datawarehouse.model.service.impl.ModelImpl
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/17 15:57
*/
@Api
(
tags
=
"引用接口"
)
@RestController
@RequestMapping
(
"/quote"
)
public
class
QuoteController
{
@Autowired
private
QuoteService
quoteService
;
@ApiOperation
(
"引用删除"
)
@GetMapping
(
"/delete"
)
public
ResponseEntity
deleteQuote
(
Integer
id
)
{
Integer
integer
=
quoteService
.
delQuote
(
id
);
if
(
integer
==
1
){
return
ResultUtil
.
success
(
"删除成功!"
);
}
return
ResultUtil
.
failed
(
"此id不存在,删除失败"
);
}
@ApiOperation
(
"引用更新"
)
@PostMapping
(
"/update"
)
public
ResponseEntity
UpdateQuote
(
@RequestBody
UpdateQuoteVO
updateQuoteVO
)
{
int
i
=
quoteService
.
updateQuote
(
updateQuoteVO
);
if
(
i
==
0
){
return
ResultUtil
.
success
(
"更新/保存成功!"
);
}
return
ResultUtil
.
failed
(
"引用数据重复,导致更新/保存失败!"
);
}
@ApiOperation
(
"查找所有引用"
)
@PostMapping
(
"/getAllQuote"
)
public
ResponseEntity
getAllQuote
(
@RequestBody
SearchQuoteVO
searchQuoteVO
)
{
return
ResultUtil
.
success
(
quoteService
.
getAllQuote
(
searchQuoteVO
),
"查询成功!"
);
}
@ApiOperation
(
"保存引用"
)
@PostMapping
(
"/saveQuote"
)
public
ResponseEntity
saveQuote
(
@RequestBody
Quote
quote
)
{
return
ResultUtil
.
success
(
quoteService
.
saveQuote
(
quote
),
"保存成功!"
);
}
}
src/main/java/com/tykj/datawarehouse/model/controller/RuleController.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
controller
;
import
com.tykj.datawarehouse.base.result.ResultUtil
;
import
com.tykj.datawarehouse.model.entity.vo.RuleVo
;
import
com.tykj.datawarehouse.model.service.RuleService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/29 16:39
*/
@Api
(
tags
=
"规则接口"
)
@RestController
@RequestMapping
(
"/rule"
)
public
class
RuleController
{
@Autowired
RuleService
ruleService
;
@ApiOperation
(
"规则删除"
)
@GetMapping
(
"/delete"
)
public
ResponseEntity
deleteRule
(
Integer
id
)
{
try
{
ruleService
.
del
(
id
);
return
ResultUtil
.
success
(
"删除成功!"
);
}
catch
(
Exception
e
)
{
}
return
ResultUtil
.
failed
(
"此id已经被删除!"
);
}
@ApiOperation
(
"规则新增"
)
@PostMapping
(
"/save"
)
public
ResponseEntity
add
(
@RequestBody
RuleVo
ruleVo
)
{
try
{
ruleService
.
add
(
ruleVo
);
return
ResultUtil
.
success
(
"保存成功!"
);
}
catch
(
Exception
e
)
{
}
return
ResultUtil
.
failed
(
"保存失败!"
);
}
@ApiOperation
(
"规则修改"
)
@PostMapping
(
"/update"
)
public
ResponseEntity
update
(
@RequestBody
RuleVo
ruleVo
)
{
try
{
ruleService
.
update
(
ruleVo
);
return
ResultUtil
.
success
(
"操作成功!"
);
}
catch
(
Exception
ignored
)
{
}
return
ResultUtil
.
failed
(
"操作失败!"
);
}
@ApiOperation
(
"查询全部"
)
@PostMapping
(
"/getAll"
)
public
ResponseEntity
get
()
{
return
ResultUtil
.
success
(
ruleService
.
getAll
(),
"查询成功"
);
}
}
src/main/java/com/tykj/datawarehouse/model/dao/ColumnInfoDao.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
dao
;
import
com.tykj.datawarehouse.model.entity.ColumnInfo
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* @ClassName ColumnInfoDao
* @Description TODO
* @Author WWW
* @Date 2021/2/24 11:22
* @Version 1.0
*/
public
interface
ColumnInfoDao
extends
JpaRepository
<
ColumnInfo
,
Integer
>,
JpaSpecificationExecutor
<
ColumnInfo
>
{
/**
* 根据dbId查询所有
* @param id
* @return
*/
List
<
ColumnInfo
>
findAllByDbId
(
int
id
);
/**
* 根据dbID删除
* @param id
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Modifying
void
deleteAllByDbId
(
Integer
id
);
/**
* @param id
* @param columnName
* @return
*/
ColumnInfo
findByDbIdAndFieldName
(
Integer
id
,
String
columnName
);
}
src/main/java/com/tykj/datawarehouse/model/dao/QuoteDao.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
dao
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/17 15:23
*/
public
interface
QuoteDao
extends
JpaRepository
<
Quote
,
Integer
>,
JpaSpecificationExecutor
<
Quote
>
{
/**
* 根据Columnid查询全部
* @param id
* @return
*/
List
<
Quote
>
findAllByColumnId
(
Integer
id
);
}
src/main/java/com/tykj/datawarehouse/model/dao/RuleDao.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
dao
;
import
com.tykj.datawarehouse.model.entity.Rule
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/29 11:01
*/
public
interface
RuleDao
extends
JpaRepository
<
Rule
,
Integer
>,
JpaSpecificationExecutor
<
Rule
>
{
/**
* 根据columnId查询
* @param id
* @return
*/
Rule
findAllByColumnId
(
Integer
id
);
}
src/main/java/com/tykj/datawarehouse/model/dao/TableInfoDao.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
dao
;
import
com.tykj.datawarehouse.model.entity.TableInfo
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
/**
* @ClassName TableInfoDao
* @Description TODO
* @Author WWW
* @Date 2021/2/24 11:20
* @Version 1.0
*/
public
interface
TableInfoDao
extends
JpaRepository
<
TableInfo
,
Integer
>,
JpaSpecificationExecutor
<
TableInfo
>
{
/**
* 根据表名查询tableInfo
* @param name
* @return
*/
TableInfo
findByModelName
(
String
name
);
}
src/main/java/com/tykj/datawarehouse/model/entity/ColumnInfo.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
;
import
com.tykj.datawarehouse.base.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
javax.persistence.Transient
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @ClassName ColumnInfo
* @Description TODO
* @Author WWW
* @Date 2021/2/24 11:14
* @Version 1.0
*/
@Data
@NoArgsConstructor
@Entity
@Table
@ApiModel
(
"列对象"
)
public
class
ColumnInfo
extends
BaseEntity
{
/**
* 是否primary key, 0是,1否
*/
@ApiModelProperty
(
"是否主键"
)
private
Integer
primaryKey
;
@ApiModelProperty
(
"列名"
)
private
String
fieldName
;
@ApiModelProperty
(
"列名中文描述"
)
private
String
fieldTitle
;
@ApiModelProperty
(
"列类型"
)
private
String
fieldType
;
@ApiModelProperty
(
"长度"
)
private
Integer
fieldLength
;
@ApiModelProperty
(
"所属表名"
)
private
String
dbName
;
@ApiModelProperty
(
"所属表id"
)
private
Integer
dbId
;
@ApiModelProperty
(
"详细描述"
)
private
String
description
;
@ApiModelProperty
(
"规则"
)
@Transient
private
Rule
rule
=
new
Rule
();
@ApiModelProperty
(
"引用对象"
)
@Transient
private
List
<
Quote
>
quoteList
=
new
ArrayList
<>();
public
ColumnInfo
(
Integer
primaryKey
,
String
fieldName
,
String
fieldTitle
,
String
fieldType
,
Integer
fieldLength
,
String
dbName
,
Integer
dbId
,
String
description
)
{
this
.
primaryKey
=
primaryKey
;
this
.
fieldName
=
fieldName
;
this
.
fieldTitle
=
fieldTitle
;
this
.
fieldType
=
fieldType
;
this
.
fieldLength
=
fieldLength
;
this
.
dbName
=
dbName
;
this
.
dbId
=
dbId
;
this
.
description
=
description
;
}
}
src/main/java/com/tykj/datawarehouse/model/entity/Quote.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
;
import
com.tykj.datawarehouse.base.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/17 15:17
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table
@ApiModel
(
"引用对象"
)
public
class
Quote
extends
BaseEntity
{
@Column
@ApiModelProperty
(
"columnId"
)
private
Integer
columnId
;
@ApiModelProperty
(
"值"
)
private
String
value
;
}
src/main/java/com/tykj/datawarehouse/model/entity/Rule.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
;
import
com.tykj.datawarehouse.base.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
/**
* @author HASEE
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Entity
@Table
@ApiModel
(
"规则表"
)
public
class
Rule
extends
BaseEntity
{
@ApiModelProperty
(
"表id"
)
private
Integer
tableId
;
@ApiModelProperty
(
"字段id"
)
private
Integer
columnId
;
@ApiModelProperty
(
"规则"
)
private
String
regular
;
}
src/main/java/com/tykj/datawarehouse/model/entity/TableInfo.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
;
import
com.tykj.datawarehouse.base.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Lob
;
import
javax.persistence.Table
;
/**
* @ClassName TableInfo
* @Description TODO
* @Author WWW
* @Date 2021/2/24 11:05
* @Version 1.0
*/
@Entity
@Table
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"表对象"
)
public
class
TableInfo
extends
BaseEntity
{
@ApiModelProperty
(
"数据对象名,不能为空"
)
@Column
(
nullable
=
false
)
private
String
modelName
;
@ApiModelProperty
(
"表中文名,不能为空"
)
@Column
(
nullable
=
false
)
private
String
modelTitle
;
@ApiModelProperty
(
"详细描述"
)
private
String
description
;
@Lob
@ApiModelProperty
(
"表对应hbm.xml"
)
private
String
xml
;
}
src/main/java/com/tykj/datawarehouse/model/entity/customEnums/ConnectionType.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
customEnums
;
/**
* @ClassName ModelType
* @Description TODO 模型的3种类型
* @Author Hxh
* @Date 2021/3/26 14:41
* @Version 1.0
*/
public
enum
ConnectionType
{
/**
* or
*/
OR
(
" or "
),
/**
* and
*/
AND
(
" and "
);
private
final
String
type
;
ConnectionType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getType
()
{
return
type
;
}
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/ColumnTypeVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/30 9:51
*/
@ApiModel
(
"列类型VO"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ColumnTypeVO
{
@ApiModelProperty
(
"中文名"
)
private
String
lab
;
@ApiModelProperty
(
"类型"
)
private
String
value
;
@ApiModelProperty
(
"长度"
)
private
String
lengths
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/ColumnVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
com.tykj.datawarehouse.model.entity.Rule
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @ClassName ColumnVO
* @Description TODO
* @Author WWW
* @Date 2021/3/1 9:58
* @Version 1.0
*/
@ApiModel
(
"列信息VO"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ColumnVO
{
@ApiModelProperty
(
"id"
)
private
Integer
id
;
@ApiModelProperty
(
"是否主键"
)
private
Integer
primaryKey
=
1
;
@ApiModelProperty
(
"字段类型"
)
private
String
fieldType
;
@ApiModelProperty
(
"字段名"
)
private
String
fieldName
;
@ApiModelProperty
(
"中文描述"
)
private
String
fieldTitle
;
@ApiModelProperty
(
"字段长度,有默认值"
)
private
Integer
fieldLength
;
@ApiModelProperty
(
"规则"
)
private
Rule
rule
;
@ApiModelProperty
(
"详细描述"
)
private
String
description
;
@ApiModelProperty
(
"引用数组"
)
private
List
<
Quote
>
quoteList
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/ColumnWithQuoteVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.model.entity.ColumnInfo
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/18 14:19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ColumnWithQuoteVO
{
private
ColumnInfo
columnInfo
;
private
List
<
Quote
>
quotes
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/CustomPage.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author HuangXiahao
* @version V1.0
* @class CustomPage
* @packageName com.tykj.model_layer.entity.vo
**/
@ApiModel
(
"带分页的返回"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
CustomPage
{
public
long
total
;
public
List
contents
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/DelTableVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @ClassName DelTableVO
* @Description TODO
* @Author WWW
* @Date 2021/3/23 18:51
* @Version 1.0
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel
(
"删除VO类"
)
public
class
DelTableVO
{
@ApiModelProperty
(
"模型id"
)
private
Integer
id
;
@ApiModelProperty
(
"模型名称"
)
private
String
dbName
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/GroupCondition.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
GroupCondition
{
private
String
name
;
private
String
value
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/OrderCondition.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/9 17:03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
OrderCondition
{
@ApiModelProperty
(
"列"
)
private
String
columns
;
@ApiModelProperty
(
"排序"
)
private
String
sortValue
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/QueryCondition.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.model.entity.customEnums.ConnectionType
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author HASEE
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"复杂查询"
)
public
class
QueryCondition
{
/**
* 字段名 例如:age
*/
@ApiModelProperty
(
value
=
"查询字段名"
,
example
=
"age"
)
private
String
name
;
/**
* 条件符号类型 例如:>
*/
@ApiModelProperty
(
value
=
"查询条件符号类型"
,
example
=
">"
)
private
String
type
;
/**
* 条件参数值 例如:20
*/
@ApiModelProperty
(
value
=
"条件参数值"
,
example
=
"18"
)
private
String
value
;
@ApiModelProperty
(
value
=
"连接条件"
,
example
=
"or或者and"
)
private
ConnectionType
connectionType
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/RuleVo.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author HASEE
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"查询规则信息VO"
)
public
class
RuleVo
{
@ApiModelProperty
private
Integer
id
;
@ApiModelProperty
(
"表id"
)
private
Integer
tableId
;
@ApiModelProperty
(
"字段id"
)
private
Integer
columnId
;
@ApiModelProperty
(
"规则"
)
private
String
regular
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/SearchAllVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/9 19:24
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
SearchAllVO
{
private
String
tableName
;
List
<
OrderCondition
>
orderConditions
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/SearchColumnInfoVo.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.base.page.JpaCustomPage
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @ClassName SearchColumnInfoVo
* @Description TODO
* @Author WWW
* @Date 2021/3/15 14:46
* @Version 1.0
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel
(
"查询列信息VO"
)
public
class
SearchColumnInfoVo
extends
JpaCustomPage
{
@ApiModelProperty
(
"查询表id"
)
private
Integer
dbId
;
@ApiModelProperty
(
"列名称"
)
private
String
dbName
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/SearchQuoteVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/18 13:19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
SearchQuoteVO
{
private
Integer
[]
columnIds
;
private
Integer
[]
ids
;
private
String
value
;
private
String
[]
values
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/SearchTableInfoVo.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.base.page.JpaCustomPage
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @ClassName SearchTableInfoVo
* @Description TODO
* @Author WWW
* @Date 2021/3/11 16:06
* @Version 1.0
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel
(
"查询表信息VO"
)
public
class
SearchTableInfoVo
extends
JpaCustomPage
{
@ApiModelProperty
(
"表id"
)
private
Integer
id
;
@ApiModelProperty
(
"表名称"
)
private
String
modelName
;
@ApiModelProperty
(
"表中文名"
)
private
String
modelTitle
;
@ApiModelProperty
(
"表名称数组"
)
private
Integer
[]
modelType
;
@ApiModelProperty
(
"表id数组"
)
private
Integer
[]
ids
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/TableAndColumnInfoVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.model.entity.ColumnInfo
;
import
com.tykj.datawarehouse.model.entity.TableInfo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @ClassName TableAndColumnInfoVO
* @Description TODO
* @Author WWW
* @Date 2021/3/29 9:59
* @Version 1.0
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public
class
TableAndColumnInfoVO
{
private
List
<
TableInfo
>
tableInfos
;
private
List
<
ColumnInfo
>
columnInfos
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/TableVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @ClassName tableVO
* @Description TODO
* @Author WWW
* @Date 2021/3/1 9:56
* @Version 1.0
*/
@ApiModel
(
"表信息VO"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
TableVO
{
@ApiModelProperty
(
"中文描述"
)
private
String
modelTitle
;
@ApiModelProperty
(
"表名"
)
private
String
modelName
;
@ApiModelProperty
(
"详细描述"
)
private
String
description
;
/**
* 0扫描,1自建,2扫描后自选
*/
@ApiModelProperty
(
"模型类型"
)
private
Integer
modelType
;
@ApiModelProperty
(
"父表名称"
)
private
String
parentTable
;
@ApiModelProperty
(
"列数组"
)
private
List
<
ColumnVO
>
dataList
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/UpdateQuoteVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/18 15:00
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
UpdateQuoteVO
{
@ApiModelProperty
(
"id"
)
private
Integer
id
;
private
List
<
Quote
>
quoteList
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/UpdateTableInfoVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @ClassName UpdateTableInfoVO
* @Description TODO
* @Author WWW
* @Date 2021/3/16 13:43
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
(
"更新表VO"
)
public
class
UpdateTableInfoVO
{
@ApiModelProperty
(
"表id"
)
private
Integer
dbId
;
@ApiModelProperty
(
"表名称"
)
private
String
dbName
;
@ApiModelProperty
(
"TableVO"
)
private
TableVO
tableVO
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/VersionVO.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Lob
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 15:42
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
VersionVO
{
@ApiModelProperty
(
"tableInfoID"
)
private
Integer
dbId
;
@ApiModelProperty
(
"版本号"
)
private
String
versionId
;
@ApiModelProperty
(
"版本号"
)
private
String
versionDesc
;
@Lob
@ApiModelProperty
(
"版本对应数据"
)
private
String
content
;
}
src/main/java/com/tykj/datawarehouse/model/entity/vo/complexQueryVo.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
entity
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author HuangXiahao
* @version V1.0
* @class complexQueryVo
* @packageName com.tykj.model_layer.entity.vo
**/
@ApiModel
(
"复杂查询VO"
)
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
complexQueryVo
{
@ApiModelProperty
(
"表名"
)
String
tableName
;
@ApiModelProperty
(
"筛选字段"
)
List
<
String
>
columnNames
;
@ApiModelProperty
(
"分类条件信息"
)
GroupCondition
groupCondition
;
@ApiModelProperty
(
"查询条件"
)
List
<
QueryCondition
>
queryConditions
;
@ApiModelProperty
(
"分类字段"
)
String
groupByColumn
;
Integer
page
=
0
;
Integer
size
=
15
;
}
src/main/java/com/tykj/datawarehouse/model/myEnum/ModelType.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
myEnum
;
/**
* @ClassName ModelType
* @Description TODO 模型的3种类型
* @Author WWW
* @Date 2021/3/26 14:41
* @Version 1.0
*/
public
class
ModelType
{
/**
* 聚合对象
*/
// public static final Integer AGGREGATION = -1;
/**
* 基础扫描对象
*/
public
static
final
Integer
BASICS
=
0
;
/**
* 业务对象
*/
// public static final Integer BUSINESS = 1;
/**
* 基础对象延伸
*/
// public static final Integer BASICS_EXTENSION = 2;
/**
* 数据源对象
*/
public
static
final
Integer
DATA_SOURCE
=
3
;
/**
*虚拟对象,业务对象加聚合对象
*/
public
static
final
Integer
VIRTUAL
=
4
;
}
src/main/java/com/tykj/datawarehouse/model/service/ModelService.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
service
;
import
com.tykj.datawarehouse.base.consumer.FourComsumer
;
import
com.tykj.datawarehouse.model.entity.ColumnInfo
;
import
com.tykj.datawarehouse.model.entity.TableInfo
;
import
com.tykj.datawarehouse.model.entity.vo.*
;
import
org.hibernate.internal.SessionImpl
;
import
org.hibernate.type.Type
;
import
org.springframework.data.domain.Page
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.sql.SQLException
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.BiConsumer
;
/**
* @ClassName ModelService
* @Description TODO
* @Author WWW
* @Date 2021/2/26 13:36
* @Version 1.0
*/
public
interface
ModelService
{
/**
* 分页查询
*
* @param searchTableInfoVo
* @return
*/
Page
<
TableInfo
>
pageAllEntities
(
SearchTableInfoVo
searchTableInfoVo
);
/**
* 方法重载不分页查询
*
* @return
*/
List
<
TableInfo
>
listAllEntities
(
SearchTableInfoVo
searchTableInfoVo
);
/**
* 根据表名查询所有字段信息
*
* @param searchColumnInfoVo
* @return
*/
List
<
ColumnInfo
>
showModelFields
(
SearchColumnInfoVo
searchColumnInfoVo
);
/**
* 新建模型
*
* @param tableVO
* @return
*/
TableInfo
newTable
(
TableVO
tableVO
);
/**
*
*根据表名插入数据
* @param map
* @return
*/
int
operationValueByEntityName
(
Map
<
String
,
Object
>
map
,
SessionImpl
session
,
BiConsumer
<
String
,
Object
>
biConsumer
,
FourComsumer
<
TableInfo
,
Object
,
Type
,
String
>
valitor
);
int
operationValueByEntityNameList
(
List
<
Map
<
String
,
Object
>>
mapList
,
SessionImpl
session
,
BiConsumer
<
String
,
Object
>
biConsumer
,
FourComsumer
<
TableInfo
,
Object
,
Type
,
String
>
valitor
);
/**
* 根据表名查询所有
*
* @param name
* @return
* @throws SQLException
*/
List
<
Map
<
String
,
Object
>>
findAllByName
(
String
name
)
throws
SQLException
;
List
<
Map
<
String
,
Object
>>
findAllByName
(
String
name
,
List
<
OrderCondition
>
orderConditions
)
;
/**
* 复杂查询
*
* @param tableName
* @param queryConditions
* @return
*/
List
<
Map
<
String
,
Object
>>
complexQuery
(
String
tableName
,
List
<
String
>
columnNames
,
List
<
QueryCondition
>
queryConditions
,
String
groupName
);
/**
* 复杂查询(带分类)
*
* @param tableName
* @param queryConditions
* @return
*/
CustomPage
complexQueryWithGroup
(
String
tableName
,
GroupCondition
groupCondition
,
List
<
String
>
columnNames
,
List
<
QueryCondition
>
queryConditions
,
String
groupByColumn
,
Integer
page
,
Integer
size
);
/**
* 修改表
*
* @param updateTableInfoVO
* @return
*/
ResponseEntity
updateTable
(
UpdateTableInfoVO
updateTableInfoVO
);
/**
* 删除表
*
* @param delTableVO
* @return
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
int
delTable
(
DelTableVO
delTableVO
);
/**
* 根据id批量查询所有tableInfo和ColumnInfo
*
* @param ids
* @return
*/
TableAndColumnInfoVO
getTableInfoAndColumnInfoByBatch
(
Integer
[]
ids
);
/**
* 执行自定义SQL
* @param sql
* @return
* @throws SQLException
*/
List
<
Map
<
String
,
Object
>>
executeQuery
(
String
sql
)
throws
SQLException
;
void
validationAllRuleAndQuote
(
TableInfo
tableInfo
,
Object
value
,
Type
propertyType
,
String
propertyNames
);
}
src/main/java/com/tykj/datawarehouse/model/service/QuoteService.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
service
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
com.tykj.datawarehouse.model.entity.vo.SearchQuoteVO
;
import
com.tykj.datawarehouse.model.entity.vo.UpdateQuoteVO
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/17 15:58
*/
public
interface
QuoteService
{
/**
* 更新quote
* @param updateQuoteVO
*/
int
updateQuote
(
UpdateQuoteVO
updateQuoteVO
);
/**
* 条件查询引用
* @param searchQuoteVO
* @return
*/
List
<
Quote
>
getAllQuote
(
SearchQuoteVO
searchQuoteVO
);
Quote
saveQuote
(
Quote
quote
);
Integer
delQuote
(
Integer
id
);
}
src/main/java/com/tykj/datawarehouse/model/service/RuleService.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
service
;
import
com.tykj.datawarehouse.model.entity.Rule
;
import
com.tykj.datawarehouse.model.entity.vo.RuleVo
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/29 11:04
*/
public
interface
RuleService
{
/**
* 新增
* @param ruleVo
*/
void
add
(
RuleVo
ruleVo
);
/**
* 修改
* @param ruleVo
*/
void
update
(
RuleVo
ruleVo
);
/**
* 删除
* @param id
*/
void
del
(
Integer
id
);
/**
* 查询
* @return
*/
List
<
Rule
>
getAll
();
}
src/main/java/com/tykj/datawarehouse/model/service/impl/ModelHelper.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
service
.
impl
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.tykj.datawarehouse.base.result.ApiException
;
import
com.tykj.datawarehouse.model.dao.ColumnInfoDao
;
import
com.tykj.datawarehouse.model.dao.TableInfoDao
;
import
com.tykj.datawarehouse.model.entity.ColumnInfo
;
import
com.tykj.datawarehouse.model.entity.TableInfo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
static
java
.
lang
.
String
.
format
;
/**
* @author C
*/
@Service
public
class
ModelHelper
{
@Autowired
private
TableInfoDao
tableInfoDao
;
@Autowired
private
ColumnInfoDao
columnInfoDao
;
/**
* 获取指定数据模型的json格式数据示例
*
* @param tableInfoId 指定id
* @return json格式的数据示例
*/
public
String
getJsonExample
(
Integer
tableInfoId
)
{
/* 你要放10个元素,10/0.75+1=14 */
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
TableInfo
tableInfo
=
tableInfoDao
.
findById
(
tableInfoId
)
.
orElseThrow
(()
->
new
ApiException
(
format
(
"未找到该id的数据:%s"
,
tableInfoId
)));
String
resultKey
=
tableInfo
.
getModelName
();
Map
<
String
,
Object
>
resultValue
=
new
HashMap
<>();
//根据表id查出字段信息 并加入Map结果
List
<
ColumnInfo
>
columnInfos
=
columnInfoDao
.
findAllByDbId
(
tableInfoId
);
for
(
ColumnInfo
columnInfo
:
columnInfos
)
{
resultValue
.
put
(
columnInfo
.
getFieldName
(),
null
);
}
result
.
put
(
resultKey
,
resultValue
);
//做json转换并返回
try
{
return
new
ObjectMapper
().
writeValueAsString
(
result
);
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
throw
new
ApiException
(
"json转换时出现异常"
);
}
}
}
src/main/java/com/tykj/datawarehouse/model/service/impl/ModelImpl.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
差异被折叠。
点击展开。
src/main/java/com/tykj/datawarehouse/model/service/impl/QuoteServiceImpl.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
service
.
impl
;
import
com.github.wenhao.jpa.PredicateBuilder
;
import
com.github.wenhao.jpa.Specifications
;
import
com.tykj.datawarehouse.base.result.ApiException
;
import
com.tykj.datawarehouse.model.dao.QuoteDao
;
import
com.tykj.datawarehouse.model.entity.Quote
;
import
com.tykj.datawarehouse.model.entity.vo.SearchQuoteVO
;
import
com.tykj.datawarehouse.model.entity.vo.UpdateQuoteVO
;
import
com.tykj.datawarehouse.model.service.QuoteService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
java
.
util
.
Objects
.
isNull
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/17 15:59
*/
@Service
public
class
QuoteServiceImpl
implements
QuoteService
{
@Autowired
private
QuoteDao
quoteDao
;
@Override
public
int
updateQuote
(
UpdateQuoteVO
updateQuoteVO
)
{
List
<
Quote
>
quoteList
=
updateQuoteVO
.
getQuoteList
();
try
{
for
(
Quote
quote
:
quoteList
)
{
quote
.
setColumnId
(
updateQuoteVO
.
getId
());
if
(
existValue
(
quote
.
getColumnId
(),
quote
.
getValue
()))
{
quoteDao
.
save
(
quote
);
}
}
return
0
;
}
catch
(
Exception
e
){
return
1
;
}
}
@Override
public
List
<
Quote
>
getAllQuote
(
SearchQuoteVO
sqv
)
{
PredicateBuilder
<
Quote
>
and
=
Specifications
.
and
();
if
(
sqv
!=
null
){
and
.
like
(!
isNull
(
sqv
.
getValue
()
)
&&
StringUtils
.
isNotEmpty
(
sqv
.
getValue
()),
"value"
,
"%"
+
sqv
.
getValue
()
+
"%"
);
and
.
in
(
sqv
.
getColumnIds
()!=
null
&&
sqv
.
getColumnIds
().
length
>
0
,
"columnId"
,
sqv
.
getColumnIds
());
and
.
in
(
sqv
.
getValues
()!=
null
&&
sqv
.
getValues
().
length
>
0
,
"value"
,
sqv
.
getValues
());
}
return
quoteDao
.
findAll
(
and
.
build
());
}
@Override
public
Quote
saveQuote
(
Quote
quote
)
{
if
(
existValue
(
quote
.
getColumnId
(),
quote
.
getValue
()))
{
return
quoteDao
.
save
(
quote
);
}
throw
new
ApiException
(
"插入错误!"
);
}
@Override
public
Integer
delQuote
(
Integer
id
)
{
quoteDao
.
deleteById
(
id
);
return
1
;
}
public
boolean
existValue
(
Integer
cId
,
String
value
)
{
List
<
String
>
collect
=
quoteDao
.
findAllByColumnId
(
cId
)
.
stream
()
.
map
(
Quote:
:
getValue
)
.
collect
(
Collectors
.
toList
());
if
(
collect
.
contains
(
value
))
{
return
false
;
}
return
true
;
}
}
src/main/java/com/tykj/datawarehouse/model/service/impl/RuleServiceImpl.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
service
.
impl
;
import
com.tykj.datawarehouse.model.dao.RuleDao
;
import
com.tykj.datawarehouse.model.entity.Rule
;
import
com.tykj.datawarehouse.model.entity.vo.RuleVo
;
import
com.tykj.datawarehouse.model.service.RuleService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/29 11:05
*/
@Service
public
class
RuleServiceImpl
implements
RuleService
{
@Autowired
RuleDao
ruleDao
;
/**
* @param ruleVo
*/
@Override
public
void
add
(
RuleVo
ruleVo
)
{
Rule
rule
=
new
Rule
(
ruleVo
.
getTableId
(),
ruleVo
.
getColumnId
(),
ruleVo
.
getRegular
()
);
ruleDao
.
save
(
rule
);
}
/**
* 修改
*
* @param ruleVo
*/
@Override
public
void
update
(
RuleVo
ruleVo
)
{
Rule
rule
=
new
Rule
();
rule
.
setId
(
ruleVo
.
getId
());
rule
.
setColumnId
(
ruleVo
.
getColumnId
());
rule
.
setRegular
(
ruleVo
.
getRegular
());
rule
.
setTableId
(
ruleVo
.
getTableId
());
rule
.
setUpdatedTime
(
new
Date
());
ruleDao
.
save
(
rule
);
}
/**
* 删除
*
* @param id
*/
@Override
public
void
del
(
Integer
id
)
{
ruleDao
.
deleteById
(
id
);
}
/**
* 查询
*
* @return
*/
@Override
public
List
<
Rule
>
getAll
()
{
return
ruleDao
.
findAll
();
}
}
src/main/java/com/tykj/datawarehouse/model/sqlType/MysqlSqlType.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
sqlType
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author HASEE
*/
public
class
MysqlSqlType
{
/**
* java类型对应sql类型Map
*/
public
static
Map
<
String
,
String
>
TYPE_MAP
=
new
HashMap
<>();
static
{
TYPE_MAP
.
put
(
"java.lang.Integer"
,
"int"
);
TYPE_MAP
.
put
(
"java.lang.Long"
,
"bigint"
);
TYPE_MAP
.
put
(
"java.lang.Short"
,
"smallint"
);
TYPE_MAP
.
put
(
"java.lang.Float"
,
"float"
);
TYPE_MAP
.
put
(
"java.lang.Double"
,
"double"
);
TYPE_MAP
.
put
(
"java.lang.BigDecimal"
,
"numeric"
);
TYPE_MAP
.
put
(
"java.lang.Character"
,
"char(1)"
);
TYPE_MAP
.
put
(
"java.lang.String"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.lang.Byte"
,
"tinyint"
);
TYPE_MAP
.
put
(
"java.lang.Boolean"
,
"bit"
);
TYPE_MAP
.
put
(
"java.lang.Class"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.util.Date"
,
"date"
);
TYPE_MAP
.
put
(
"java.util.Calendar"
,
"timestamp"
);
TYPE_MAP
.
put
(
"java.util.Locale"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.util.TimeZone"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.util.Currency"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.sql.Date"
,
"date"
);
TYPE_MAP
.
put
(
"java.sql.Time"
,
"time"
);
TYPE_MAP
.
put
(
"java.sql.Timestamp"
,
"timestamp"
);
TYPE_MAP
.
put
(
"java.sql.Clob"
,
"clob"
);
TYPE_MAP
.
put
(
"java.sql.Blob"
,
"blob"
);
}
}
src/main/java/com/tykj/datawarehouse/model/sqlType/OscarSqlType.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
sqlType
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author HASEE
*/
public
class
OscarSqlType
{
/**
* java类型对应sql类型Map
*/
public
static
Map
<
String
,
String
>
TYPE_MAP
=
new
HashMap
<>();
static
{
TYPE_MAP
.
put
(
"java.lang.Integer"
,
"int"
);
TYPE_MAP
.
put
(
"java.lang.Long"
,
"bigint"
);
TYPE_MAP
.
put
(
"java.lang.Short"
,
"smallint"
);
TYPE_MAP
.
put
(
"java.lang.Float"
,
"float"
);
TYPE_MAP
.
put
(
"java.lang.Double"
,
"DOUBLE PRECISION"
);
TYPE_MAP
.
put
(
"java.lang.BigDecimal"
,
"numeric"
);
TYPE_MAP
.
put
(
"java.lang.Character"
,
"char(1)"
);
TYPE_MAP
.
put
(
"java.lang.String"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.lang.Byte"
,
"tinyint"
);
TYPE_MAP
.
put
(
"java.lang.Boolean"
,
"BOOL"
);
TYPE_MAP
.
put
(
"java.lang.Class"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.util.Date"
,
"date"
);
TYPE_MAP
.
put
(
"java.util.Calendar"
,
"timestamp"
);
TYPE_MAP
.
put
(
"java.util.Locale"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.util.TimeZone"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.util.Currency"
,
"varchar"
);
TYPE_MAP
.
put
(
"java.sql.Date"
,
"date"
);
TYPE_MAP
.
put
(
"java.sql.Time"
,
"time"
);
TYPE_MAP
.
put
(
"java.sql.Timestamp"
,
"timestamp"
);
TYPE_MAP
.
put
(
"java.sql.Clob"
,
"clob"
);
TYPE_MAP
.
put
(
"java.sql.Blob"
,
"blob"
);
}
}
src/main/java/com/tykj/datawarehouse/model/utils/CheckUtils.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
com.tykj.datawarehouse.base.result.ApiException
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.List
;
import
java.util.regex.Pattern
;
import
static
java
.
util
.
Objects
.
isNull
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/29 11:19
*/
public
class
CheckUtils
{
/**
* 正则校验
*
* @param regx
* @param val
* @return
*/
public
static
Boolean
validationRule
(
String
regx
,
String
val
)
{
//假如规则不为空,值为空默认通过校验
if
(!
StringUtils
.
isEmpty
(
regx
))
{
if
(
StringUtils
.
isEmpty
(
val
)
||
isNull
(
val
))
{
return
true
;
}
else
{
Pattern
pattern
=
Pattern
.
compile
(
regx
);
return
pattern
.
matcher
(
val
).
matches
();
}
}
throw
new
ApiException
(
"校验不通过!"
);
}
public
static
Boolean
validationQuote
(
List
<
String
>
quotes
,
Object
val
)
{
//如果没有引用就通过
if
(
quotes
.
size
()
==
0
)
{
return
true
;
}
//如果引用存在则通过
if
(
val
instanceof
String
){
if
(
quotes
.
contains
(
val
))
{
return
true
;
}
}
if
(
val
instanceof
Integer
){
if
(
quotes
.
contains
(
val
))
{
return
true
;
}
}
if
(
val
instanceof
Double
){
if
(
quotes
.
contains
(
val
))
{
return
true
;
}
}
throw
new
ApiException
(
"引用不通过!"
);
}
}
src/main/java/com/tykj/datawarehouse/model/utils/ClassTypeLength.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
/**
* @ClassName ClassTypeLength
* @Description TODO
* @Author WWW
* @Date 2021/3/15 9:53
* @Version 1.0
*/
public
class
ClassTypeLength
{
public
static
String
STRING
=
"class java.lang.String"
;
public
static
String
Integer
=
"class java.lang.Integer"
;
public
static
String
Double
=
"class java.lang.Double"
;
public
static
int
setLength
(
String
genericType
)
{
int
length
;
if
(
STRING
.
equals
(
genericType
))
{
length
=
255
;
}
else
if
(
Integer
.
equals
(
genericType
))
{
length
=
11
;
}
else
if
(
Double
.
equals
(
genericType
))
{
length
=
10
;
}
else
{
length
=
1
;
}
return
length
;
}
}
src/main/java/com/tykj/datawarehouse/model/utils/CreateTableUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
com.tykj.datawarehouse.base.result.ApiException
;
import
com.tykj.datawarehouse.model.entity.vo.ColumnVO
;
import
com.tykj.datawarehouse.model.entity.vo.TableVO
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @ClassName CreateTableUtil
* @Description TODO
* @Author WWW
* @Date 2021/3/1 14:35
* @Version 1.0
*/
public
class
CreateTableUtil
{
private
static
final
Map
<
String
,
String
>
TYPE_MAP
=
new
HashMap
<>();
static
{
TYPE_MAP
.
put
(
"java.lang.Integer"
,
"java.lang.Integer"
);
TYPE_MAP
.
put
(
"java.lang.Long"
,
"java.lang.Long"
);
TYPE_MAP
.
put
(
"java.lang.Short"
,
"java.lang.Short"
);
TYPE_MAP
.
put
(
"java.lang.Float"
,
"java.lang.Float"
);
TYPE_MAP
.
put
(
"java.lang.Double"
,
"java.lang.Double"
);
TYPE_MAP
.
put
(
"java.lang.BigDecimal"
,
"java.lang.BigDecimal"
);
TYPE_MAP
.
put
(
"java.lang.String"
,
"java.lang.String"
);
TYPE_MAP
.
put
(
"java.lang.Byte"
,
"java.lang.Byte"
);
TYPE_MAP
.
put
(
"java.lang.Boolean"
,
"java.lang.Boolean"
);
TYPE_MAP
.
put
(
"java.lang.Class"
,
"java.lang.String"
);
TYPE_MAP
.
put
(
"java.util.Date"
,
"java.util.Date"
);
TYPE_MAP
.
put
(
"java.util.Calendar"
,
"java.util.Calendar"
);
TYPE_MAP
.
put
(
"java.util.Locale"
,
"java.util.String"
);
TYPE_MAP
.
put
(
"java.util.TimeZone"
,
"java.util.String"
);
TYPE_MAP
.
put
(
"java.util.Currency"
,
"java.util.String"
);
TYPE_MAP
.
put
(
"java.sql.Date"
,
"java.sql.Date"
);
TYPE_MAP
.
put
(
"java.sql.Time"
,
"java.sql.Time"
);
TYPE_MAP
.
put
(
"java.sql.Timestamp"
,
"java.sql.Timestamp"
);
TYPE_MAP
.
put
(
"java.sql.Clob"
,
"java.sql.Clob"
);
TYPE_MAP
.
put
(
"java.sql.Blob"
,
"java.sql.Blob"
);
TYPE_MAP
.
put
(
"java.lang.Object"
,
"java.lang.String"
);
TYPE_MAP
.
put
(
"java.util.Map"
,
"java.lang.String"
);
}
public
static
String
createTable
(
TableVO
tableVO
)
{
// 1sql-type="text" string 转为text文本,2长度超过会自动转换
List
<
ColumnVO
>
dataList
=
tableVO
.
getDataList
();
String
xmlMapping
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+
"<!DOCTYPE hibernate-mapping PUBLIC\n"
+
" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+
" \"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd\">\n"
+
"<hibernate-mapping>\n"
+
" <class entity-name=\""
+
tableVO
.
getModelName
().
toLowerCase
().
toUpperCase
()
+
"\" table=\""
+
tableVO
.
getModelName
().
toLowerCase
().
toUpperCase
()
+
"\">\n"
;
xmlMapping
+=
" <id name=\"ID\" type=\"java.lang.Integer\" length=\"11\" unsaved-value=\"null\" >\n"
+
" <generator class=\"com.tykj.datawarehouse.base.entity.XMQGenerator\" >\n"
+
"<param name=\"sequence\">SEQUENCE_"
+
tableVO
.
getModelName
().
toLowerCase
().
toUpperCase
()
+
"</param>"
+
"</generator>"
+
" </id>\n"
;
for
(
ColumnVO
columnVO
:
dataList
)
{
try
{
xmlMapping
+=
"\n <property type=\""
+
columnVO
.
getFieldType
()
+
"\" name=\""
+
columnVO
.
getFieldName
().
toUpperCase
()
+
"\" length=\""
+
columnVO
.
getFieldLength
()
+
"\" column=\""
+
columnVO
.
getFieldName
().
toUpperCase
()
+
"\"/>\n"
;
}
catch
(
Exception
e
)
{
throw
new
ApiException
(
"名称不合法!"
);
}
}
// xmlMapping+=" <property name =\"CREATE_TIME\" type =\"calendar\" generated=\"always\" insert=\"false\" update=\"false\" access=\"field\" >" +
// "<column name=\"CREATE_TIME\" not-null=\"true\" default=\"CURRENT_TIMESTAMP\" />\n"+
// "</property> " ;
//
// xmlMapping+=" <property name =\"UPDATE_TIME\" type =\"calendar\" generated=\"always\" insert=\"false\" update=\"false\" access=\"field\" >" +
// "<column name=\"UPDATE_TIME\" not-null=\"true\" default=\"CURRENT_TIMESTAMP\" />\n"+
// "</property> " ;
;
xmlMapping
+=
" <property name = \"CREATE_TIME\" type =\"java.util.Date\" generated=\"always\" > \n"
+
" <column name = \"CREATE_TIME\" default = \"CURRENT_TIMESTAMP\" /> \n"
+
" </property> \n"
+
" <property name = \"UPDATE_TIME\" type =\"java.util.Date\" > \n"
+
" <column name = \"UPDATE_TIME\" default = \"CURRENT_TIMESTAMP\" /> \n"
+
" </property> "
;
xmlMapping
+=
" </class>\n"
+
"</hibernate-mapping>"
;
return
xmlMapping
;
}
public
static
String
createTable
(
String
entityName
,
ColumnVO
primaryColumn
,
List
<
ColumnVO
>
dataList
)
{
// 1sql-type="text" string 转为text文本,2长度超过会自动转换
// List<ColumnVO> dataList = tableVO.getDataList();
String
xmlMapping
=
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+
"<!DOCTYPE hibernate-mapping PUBLIC\n"
+
" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+
" \"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd\">\n"
+
"<hibernate-mapping>\n"
+
" <class entity-name=\""
+
entityName
+
"\" table=\""
+
entityName
+
"\">\n"
;
xmlMapping
+=
" <id name=\""
+
primaryColumn
.
getFieldName
()
+
"\" type=\""
+
primaryColumn
.
getFieldType
()
+
"\" unsaved-value=\"null\" >\n"
+
" </id>"
;
for
(
ColumnVO
columnVO
:
dataList
)
{
// xmlMapping +=
// "\n <property type=\"" + columnVO.getFieldType() + "\" name=\"" + columnVO.getFieldName() +
// "\" column=\"" + columnVO.getFieldName() + "\"/>\n";
xmlMapping
+=
"\n <property type=\""
+
columnVO
.
getFieldType
()
+
"\" name=\""
+
columnVO
.
getFieldName
()
+
"\" length=\""
+
columnVO
.
getFieldLength
()
+
"\" column=\""
+
columnVO
.
getFieldName
()
+
"\"/>\n"
;
}
xmlMapping
+=
" <property name=\"createTime\" column=\"CREATETIME\" type=\"calendar\" insert=\"false\" \n"
+
" update=\"false\" access=\"field\" generated=\"always\" default=\"CURRENT_TIMESTAMP\"/> \n"
+
" <property name=\"updateTime\" column=\"UPDATETIME\" type=\"calendar\" insert=\"false\" \n"
+
" update=\"false\" access=\"field\" generated=\"always\" default=\"CURRENT_TIMESTAMP\" /> "
;
xmlMapping
+=
" </class>\n"
+
"</hibernate-mapping>"
;
return
xmlMapping
;
}
/**
*小写
*/
String
lowerCaseReg
=
"^[a-z]+$"
;
/**
*大写
*/
String
upperCaseReg
=
"^[A-Z]+$"
;
}
src/main/java/com/tykj/datawarehouse/model/utils/GetIndexUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
/**
* @Description TODO
* @Author WWW
* @Date 2021/5/19 17:46
*/
public
class
GetIndexUtil
{
public
static
String
getIndex
(
Integer
id
){
return
""
;
}
}
src/main/java/com/tykj/datawarehouse/model/utils/HqlUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
com.tykj.datawarehouse.model.entity.vo.QueryCondition
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author C
*/
@Slf4j
public
class
HqlUtil
{
public
static
String
createQuery
(
String
tableName
,
List
<
String
>
columnNames
,
List
<
QueryCondition
>
conditions
,
String
groupByColumn
)
{
StringBuilder
result
=
new
StringBuilder
(
"select "
);
if
(
Objects
.
isNull
(
columnNames
)
||
columnNames
.
isEmpty
())
{
result
.
append
(
"entity "
);
}
else
{
for
(
String
columnName
:
columnNames
)
{
result
.
append
(
"entity."
).
append
(
columnName
).
append
(
","
);
}
result
.
delete
(
result
.
lastIndexOf
(
","
),
result
.
length
()
);
}
result
.
append
(
" from "
).
append
(
tableName
).
append
(
" entity "
);
if
(
Objects
.
nonNull
(
conditions
)
&&
!
conditions
.
isEmpty
())
{
result
.
append
(
" where "
);
for
(
QueryCondition
condition
:
conditions
)
{
result
.
append
(
"entity."
)
.
append
(
condition
.
getName
())
.
append
(
" "
+
condition
.
getType
()
+
" "
)
.
append
(
"'"
)
.
append
(
condition
.
getValue
())
.
append
(
"'"
);
if
(
condition
.
getConnectionType
()!=
null
){
result
.
append
(
condition
.
getConnectionType
().
getType
());
}
}
if
(
result
.
lastIndexOf
(
" and "
)
>
-
1
)
{
result
.
delete
(
result
.
lastIndexOf
(
" and "
),
result
.
length
());
}
if
(
result
.
lastIndexOf
(
" or "
)
>
-
1
)
{
result
.
delete
(
result
.
lastIndexOf
(
" or "
),
result
.
length
());
}
}
if
(
StringUtils
.
isNotEmpty
(
groupByColumn
))
{
result
.
append
(
" group by entity."
+
groupByColumn
);
}
System
.
out
.
println
(
result
.
toString
());
return
result
.
toString
();
}
}
src/main/java/com/tykj/datawarehouse/model/utils/ObjectUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
java.lang.reflect.Field
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @author HuangXiahao
* @version V1.0
* @class ObjectUtil
* @packageName com.tykj.model_layer.utils
**/
public
class
ObjectUtil
{
//Object转Map
public
static
Map
<
String
,
Object
>
objectToMap
(
Object
obj
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
Class
<?>
clazz
=
obj
.
getClass
();
for
(
Field
field
:
clazz
.
getDeclaredFields
())
{
field
.
setAccessible
(
true
);
String
fieldName
=
field
.
getName
();
Object
value
=
null
;
try
{
value
=
field
.
get
(
obj
);
}
catch
(
IllegalAccessException
e
)
{
e
.
printStackTrace
();
}
map
.
put
(
fieldName
,
value
);
}
return
map
;
}
}
src/main/java/com/tykj/datawarehouse/model/utils/SessionUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
com.google.common.base.Strings
;
import
com.tykj.datawarehouse.model.dao.TableInfoDao
;
import
com.tykj.datawarehouse.model.entity.TableInfo
;
import
org.hibernate.Session
;
import
org.hibernate.SessionFactory
;
import
org.hibernate.boot.Metadata
;
import
org.hibernate.boot.MetadataSources
;
import
org.hibernate.boot.jaxb.hbm.spi.JaxbHbmHibernateMapping
;
import
org.hibernate.boot.jaxb.hbm.spi.JaxbHbmRootEntityType
;
import
org.hibernate.boot.jaxb.spi.Binding
;
import
org.hibernate.boot.registry.StandardServiceRegistry
;
import
org.hibernate.tool.hbm2ddl.SchemaUpdate
;
import
org.hibernate.tool.schema.TargetType
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
javax.persistence.EntityManagerFactory
;
import
java.io.ByteArrayInputStream
;
import
java.util.EnumSet
;
import
java.util.List
;
/**
* @ClassName SessionUtil
* @Description TODO
* @Author WWW
* @Date 2021/4/1 10:08
* @Version 1.0
*/
@Component
public
class
SessionUtil
{
SessionFactory
sessionFactory
;
StandardServiceRegistry
serviceRegistry
;
@Autowired
TableInfoDao
tableInfoDao
;
MetadataSources
metadataSources
;
public
SessionUtil
(
EntityManagerFactory
entityManagerFactory
,
TableInfoDao
tableInfoDao
){
this
.
tableInfoDao
=
tableInfoDao
;
sessionFactory
=
entityManagerFactory
.
unwrap
(
SessionFactory
.
class
);
serviceRegistry
=
sessionFactory
.
getSessionFactoryOptions
().
getServiceRegistry
();
init
();
}
public
void
init
(){
metadataSources
=
new
MetadataSources
(
serviceRegistry
);
//去数据库读取所有的XML 加载到 metasource里
List
<
TableInfo
>
all
=
tableInfoDao
.
findAll
();
for
(
TableInfo
tableInfo
:
all
)
{
String
xml
=
tableInfo
.
getXml
();
if
(!
Strings
.
isNullOrEmpty
(
xml
)){
addXml
(
xml
);
}
}
}
public
void
addXml
(
String
xmlStr
){
metadataSources
.
addInputStream
(
new
ByteArrayInputStream
(
xmlStr
.
getBytes
()));
Metadata
metadata
=
metadataSources
.
buildMetadata
();
//更新数据库Schema,如果不存在就创建表,存在就更新字段,不会影响已有数据
SchemaUpdate
schemaUpdate
=
new
SchemaUpdate
();
schemaUpdate
.
execute
(
EnumSet
.
of
(
TargetType
.
DATABASE
),
metadata
,
serviceRegistry
);
}
public
Session
getSession
(){
Metadata
metadata
=
metadataSources
.
buildMetadata
();
//创建会话工厂
SessionFactory
newSessionFactory
=
metadata
.
buildSessionFactory
();
//保存对象
return
newSessionFactory
.
openSession
();
}
public
Metadata
getMetadata
(){
return
metadataSources
.
buildMetadata
();
}
public
MetadataSources
getMetadataSources
()
{
return
metadataSources
;
}
public
void
deleteTableInMeteData
(
String
tableName
){
int
needDelete
=
-
1
;
List
<
Binding
>
xmlBindings
=
metadataSources
.
getXmlBindings
();
for
(
int
i
=
0
;
i
<
xmlBindings
.
size
();
i
++)
{
Object
root
=
xmlBindings
.
get
(
i
).
getRoot
();
if
(
root
instanceof
JaxbHbmHibernateMapping
){
List
<
JaxbHbmRootEntityType
>
listEntity
=
((
JaxbHbmHibernateMapping
)
root
).
getClazz
();
for
(
JaxbHbmRootEntityType
jaxbHbmRootEntityType
:
listEntity
)
{
String
currentTableName
=
jaxbHbmRootEntityType
.
getTable
();
if
(
currentTableName
.
equals
(
tableName
)){
needDelete
=
i
;
break
;
}
}
}
}
if
(
needDelete
>-
1
){
xmlBindings
.
remove
(
needDelete
);
}
System
.
out
.
println
(
"1"
);
}
}
src/main/java/com/tykj/datawarehouse/model/utils/SqlTypeUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
com.tykj.datawarehouse.model.sqlType.MysqlSqlType
;
import
com.tykj.datawarehouse.model.sqlType.OscarSqlType
;
import
java.util.Map
;
/**
* @author HASEE
*/
public
class
SqlTypeUtil
{
public
static
Map
<
String
,
String
>
getSqlTypeMap
(
String
driveName
){
switch
(
driveName
){
case
"org.h2.Driver"
:
case
"com.oscar.Driver"
:
return
OscarSqlType
.
TYPE_MAP
;
default
:
return
MysqlSqlType
.
TYPE_MAP
;
}
}
}
src/main/java/com/tykj/datawarehouse/model/utils/SqlUtil.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
.
model
.
utils
;
import
com.google.common.base.Strings
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.env.Environment
;
import
java.util.Map
;
import
static
java
.
util
.
Objects
.
isNull
;
import
static
java
.
util
.
Objects
.
nonNull
;
/**
* @author C
*/
@Slf4j
public
class
SqlUtil
{
@Autowired
private
Environment
env
;
/**
* 修改表名的SQL语句
*
* @param table 原表名
* @param newTable 新表名
* @return SQL语句
*/
public
static
String
renameTable
(
String
table
,
String
newTable
)
{
return
String
.
format
(
"rename table %s to %s;"
,
table
,
newTable
);
}
/**
* 增加单个字段的SQL语句
*
* @param table 表名
* @param name 字段名
* @param type 字段类型
* @param length 字段长度
* @return SQL语句
*/
public
static
String
addColumn
(
String
table
,
String
name
,
String
type
,
Integer
length
,
Map
<
String
,
String
>
sqlTypeMap
)
{
type
=
sqlTypeMap
.
get
(
type
);
boolean
hasValue
=
!
Strings
.
isNullOrEmpty
(
table
)
&&
!
Strings
.
isNullOrEmpty
(
name
)
&&
nonNull
(
type
);
StringBuilder
result
=
new
StringBuilder
();
if
(
hasValue
)
{
//基本部分
result
.
append
(
String
.
format
(
"ALTER TABLE %s ADD COLUMN %s %s"
,
table
,
name
,
type
));
//字段长度
if
(
nonNull
(
length
)
&&
type
.
equals
(
"java.lang.String"
))
{
result
.
append
(
String
.
format
(
"(%s)"
,
length
));
}
result
.
append
(
";"
);
return
result
.
toString
();
}
else
{
log
.
error
(
"表名或字段名不能为空"
);
throw
new
RuntimeException
(
"表名或字段名不能为空"
);
}
}
/**
* 修改表的单个字段的SQL语句
*
* @param table 表名
* @param name 旧字段名
* @param newName 新字段名
* @param newType 字段类型
* @param newLength 字段长度
* @return SQL语句
*/
public
static
String
updateColumnType
(
String
table
,
String
name
,
String
newName
,
String
newType
,
Integer
newLength
,
String
driverType
,
Map
<
String
,
String
>
sqlTypeMap
)
{
newType
=
sqlTypeMap
.
get
(
newType
);
boolean
hasValue
=
!
Strings
.
isNullOrEmpty
(
table
)
&&
nonNull
(
newType
);
StringBuilder
result
=
new
StringBuilder
();
if
(
hasValue
)
{
if
(
needLengthColumn
(
newType
))
{
result
.
append
(
String
.
format
(
"ALTER TABLE %s MODIFY %s %s (%s) ;"
,
table
,
name
,
newType
,
newLength
));
}
else
{
result
.
append
(
String
.
format
(
"ALTER TABLE %s MODIFY %s %s ;"
,
table
,
name
,
newType
));
}
if
(
isNull
(
newName
))
{
result
.
append
(
String
.
format
(
"ALTER TABLE %s RENAME COLUMN %s TO %s ;"
,
table
,
name
,
newName
));
}
}
else
{
log
.
error
(
"参数缺失"
);
}
return
result
.
toString
();
}
/**
* 修改表的单个字段的SQL语句
*
* @param table 表名
* @param name 旧字段名
* @param newName 新字段名
* @return SQL语句
*/
public
static
String
updateColumnName
(
String
table
,
String
name
,
String
newName
)
{
boolean
hasValue
=
!
Strings
.
isNullOrEmpty
(
table
);
StringBuilder
result
=
new
StringBuilder
();
if
(
hasValue
)
{
if
(!
isNull
(
newName
))
{
result
.
append
(
String
.
format
(
"ALTER TABLE %s RENAME COLUMN %s TO %s ;"
,
table
,
name
,
newName
));
}
}
else
{
log
.
error
(
"参数缺失"
);
}
return
result
.
toString
();
}
/**
* 删除单个字段的SQL语句
*
* @param table 表名
* @param name 字段名
* @return SQL语句
*/
public
static
String
deleteColumn
(
String
table
,
String
name
)
{
return
String
.
format
(
"ALTER TABLE %s DROP %s;"
,
table
,
name
);
}
private
static
boolean
needLengthColumn
(
String
type
)
{
switch
(
type
)
{
case
"varchar"
:
return
true
;
default
:
return
false
;
}
}
}
src/main/resources/application.yml
deleted
100644 → 0
浏览文件 @
bfbb44f3
spring
:
jackson
:
date-format
:
yyyy-MM-dd HH:mm:ss
time-zone
:
GMT+8
datasource
:
username
:
punish
password
:
123456
url
:
jdbc:oscar://192.168.102.200:2003/OSRDB
driver-class-name
:
com.oscar.Driver
hikari
:
read-only
:
false
connection-timeout
:
60000
idle-timeout
:
60000
validation-timeout
:
3000
max-lifetime
:
60000
login-timeout
:
5
maximum-pool-size
:
60
minimum-idle
:
10
jpa
:
show-sql
:
true
hibernate
:
ddl-auto
:
update
database-platform
:
org.hibernate.dialect.OscarDialect
server
:
port
:
8088
src/test/java/com/tykj/datawarehouse/DataTestApplicationTests.java
deleted
100644 → 0
浏览文件 @
bfbb44f3
package
com
.
tykj
.
datawarehouse
;
import
com.oscar.util.OSQLException
;
import
com.tykj.datawarehouse.model.dao.RuleDao
;
import
org.assertj.core.util.Lists
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
class
DataTestApplicationTests
{
@Autowired
RuleDao
ruleDao
;
@Test
void
contextLoads
()
{
// String user="user_2$21name2";
// System.out.println(user.toUpperCase());
// String regx= "^((ht|f)tps?)://\\w+(.\\w+)*([\\w-.@?^=%&:/~+#]*[\\w-.@?^=%&:/~+#])?$";
// Pattern pattern = Pattern.compile(regx);//规则
// String str = "http://127.0.0.1:8888/";//待验字符
// boolean matches = pattern.matcher(str).matches();
//
// System.out.println(matches);
// System.out.println(ruleDao.findAllByColumnId(71));
String
error
=
"StatementCallback; SQL [ALTER TABLE TB1 MODIFY HAP DOUBLE PRECISION ;]; ERROR, Bad float8 input format 'q1 '\n"
+
"; nested exception is com.oscar.util.: ERROR, Bad float8 input format 'q1 '"
;
System
.
out
.
println
(
error
.
substring
(
error
.
lastIndexOf
(
":"
)));
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论