Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
data-service
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
songchuancai
data-service
Commits
217ec945
提交
217ec945
authored
3月 16, 2023
作者:
songchuancai
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化数据服务创建和增加列表
上级
3b8fcfe8
显示空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
180 行增加
和
21 行删除
+180
-21
DataServiceManagementController.java
...taservice/controller/DataServiceManagementController.java
+24
-3
DataApiModelDto.java
...ain/java/com/hisense/dataservice/dto/DataApiModelDto.java
+2
-0
DataApiModel.java
...ain/java/com/hisense/dataservice/entity/DataApiModel.java
+9
-0
DataApiModelRepository.java
...isense/dataservice/repository/DataApiModelRepository.java
+5
-0
DataApiServiceManagementService.java
.../dataservice/service/DataApiServiceManagementService.java
+6
-0
DataApiServiceManagementServiceImpl.java
...ice/service/impl/DataApiServiceManagementServiceImpl.java
+40
-2
DataApiModelDetailVo.java
...java/com/hisense/dataservice/vo/DataApiModelDetailVo.java
+60
-0
DataApiModelItemVo.java
...n/java/com/hisense/dataservice/vo/DataApiModelItemVo.java
+34
-0
DataApiModelVo.java
src/main/java/com/hisense/dataservice/vo/DataApiModelVo.java
+0
-16
没有找到文件。
src/main/java/com/hisense/dataservice/controller/DataServiceManagementController.java
浏览文件 @
217ec945
...
...
@@ -2,9 +2,13 @@ package com.hisense.dataservice.controller;
import
com.hisense.dataservice.dto.DataApiModelDto
;
import
com.hisense.dataservice.library.model.Result
;
import
com.hisense.dataservice.library.model.page.PageData
;
import
com.hisense.dataservice.library.model.page.PageLink
;
import
com.hisense.dataservice.service.DataApiCommonService
;
import
com.hisense.dataservice.service.DataApiDataSourceManagementService
;
import
com.hisense.dataservice.service.DataApiServiceManagementService
;
import
com.hisense.dataservice.vo.DataApiModelItemVo
;
import
com.hisense.dataservice.vo.DataTableVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
...
...
@@ -24,7 +28,7 @@ import java.util.List;
@RestController
@RequestMapping
(
"/api/v1/dataService"
)
@Slf4j
public
class
DataServiceManagementController
{
public
class
DataServiceManagementController
extends
BaseController
{
@Autowired
private
DataApiServiceManagementService
dataApiServiceManagementService
;
...
...
@@ -50,9 +54,26 @@ public class DataServiceManagementController {
return
dataApiServiceManagementService
.
publishDataApi
(
environment
,
modelId
);
}
@ApiOperation
(
value
=
"数据服务管理-数据服务列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"environment"
,
value
=
"环境"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"status"
,
value
=
"类型(1:已发布/0:草稿)"
,
required
=
true
),
@ApiImplicitParam
(
name
=
"pageSize"
,
value
=
"指定返回结果中每页显示的记录数量"
,
defaultValue
=
"10"
,
required
=
false
),
@ApiImplicitParam
(
name
=
"page"
,
value
=
"指定显示返回结果中的第几页"
,
defaultValue
=
"1"
,
required
=
false
),
@ApiImplicitParam
(
name
=
"sortProperty"
,
value
=
"根据哪个字段排序"
,
required
=
false
,
allowableValues
=
"id,createdTime,updatedTime"
),
@ApiImplicitParam
(
name
=
"sortOrder"
,
value
=
"排序方向"
,
required
=
false
,
allowableValues
=
"ASC,DESC"
)
})
@GetMapping
(
"/{environment}"
)
public
List
<
Object
>
getPublishDataApiList
(
@PathVariable
String
environment
)
{
return
null
;
public
Result
<
PageData
<
DataApiModelItemVo
>>
getPublishDataApiList
(
@PathVariable
String
environment
,
@RequestParam
(
value
=
"status"
)
Integer
status
,
@RequestParam
(
value
=
"pageSize"
,
required
=
false
,
defaultValue
=
"10"
)
Integer
pageSize
,
@RequestParam
(
value
=
"page"
,
required
=
false
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"sortProperty"
,
required
=
false
)
String
sortProperty
,
@RequestParam
(
value
=
"sortOrder"
,
required
=
false
)
String
sortOrder
)
{
PageLink
pageLink
=
createPageLink
(
pageSize
,
page
,
""
,
sortProperty
,
sortOrder
);
return
dataApiServiceManagementService
.
queryDataApiList
(
environment
,
status
,
pageLink
);
}
...
...
src/main/java/com/hisense/dataservice/dto/DataApiModelDto.java
浏览文件 @
217ec945
...
...
@@ -50,4 +50,6 @@ public class DataApiModelDto {
@ApiModelProperty
(
value
=
"数据服务描述"
,
required
=
true
)
private
String
desc
;
@ApiModelProperty
(
value
=
"上传图片ID"
,
required
=
false
)
private
String
imageId
;
}
src/main/java/com/hisense/dataservice/entity/DataApiModel.java
浏览文件 @
217ec945
...
...
@@ -4,12 +4,14 @@ import com.hisense.dataservice.bo.TableJoinRelationConfig;
import
com.hisense.dataservice.enums.DebugStatusEnum
;
import
com.hisense.dataservice.enums.NetworkEnv
;
import
com.hisense.dataservice.enums.SystemEnv
;
import
com.hisense.dataservice.vo.DataApiModelItemVo
;
import
com.vladmihalcea.hibernate.type.json.JsonBlobType
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.hibernate.annotations.Type
;
import
org.hibernate.annotations.TypeDef
;
import
org.springframework.beans.BeanUtils
;
import
javax.persistence.*
;
import
java.util.List
;
...
...
@@ -67,5 +69,12 @@ public class DataApiModel extends BaseEntity{
@Column
(
name
=
"debug_status"
,
columnDefinition
=
"varchar2(10) default 'NO_DEBUG' "
,
nullable
=
false
)
private
DebugStatusEnum
debugStatus
=
DebugStatusEnum
.
NO_DEBUG
;
// 图片ID
private
String
imageId
;
public
DataApiModelItemVo
toItem
(){
DataApiModelItemVo
dataApiModelItemVo
=
new
DataApiModelItemVo
();
BeanUtils
.
copyProperties
(
this
,
dataApiModelItemVo
);
return
dataApiModelItemVo
;
}
}
src/main/java/com/hisense/dataservice/repository/DataApiModelRepository.java
浏览文件 @
217ec945
package
com
.
hisense
.
dataservice
.
repository
;
import
com.hisense.dataservice.entity.DataApiModel
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -14,4 +17,6 @@ import java.util.Optional;
public
interface
DataApiModelRepository
extends
JpaRepository
<
DataApiModel
,
Long
>
{
Optional
<
DataApiModel
>
findByApiID
(
String
apiId
);
Page
<
DataApiModel
>
findAll
(
Specification
specification
,
Pageable
pageable
);
}
src/main/java/com/hisense/dataservice/service/DataApiServiceManagementService.java
浏览文件 @
217ec945
...
...
@@ -3,6 +3,11 @@ package com.hisense.dataservice.service;
import
com.alibaba.fastjson.JSONObject
;
import
com.hisense.dataservice.dto.DataApiModelDto
;
import
com.hisense.dataservice.library.model.Result
;
import
com.hisense.dataservice.library.model.page.PageData
;
import
com.hisense.dataservice.library.model.page.PageLink
;
import
com.hisense.dataservice.vo.DataApiModelItemVo
;
import
java.util.List
;
/**
* @author : scc
...
...
@@ -18,4 +23,5 @@ public interface DataApiServiceManagementService extends BaseService {
Result
<
JSONObject
>
debugDataApiService
(
String
environment
,
Long
dataModelId
);
Result
<
PageData
<
DataApiModelItemVo
>>
queryDataApiList
(
String
environment
,
Integer
status
,
PageLink
pageLink
);
}
src/main/java/com/hisense/dataservice/service/impl/DataApiServiceManagementServiceImpl.java
浏览文件 @
217ec945
...
...
@@ -6,19 +6,27 @@ import com.hisense.dataservice.dto.DataApiModelDto;
import
com.hisense.dataservice.entity.*
;
import
com.hisense.dataservice.enums.*
;
import
com.hisense.dataservice.library.model.Result
;
import
com.hisense.dataservice.library.model.page.PageData
;
import
com.hisense.dataservice.library.model.page.PageLink
;
import
com.hisense.dataservice.repository.*
;
import
com.hisense.dataservice.service.DataApiServiceManagementService
;
import
com.hisense.dataservice.util.ThreadPoolManagerUtil
;
import
com.hisense.dataservice.vo.DataApiModelItemVo
;
import
com.hisense.dataservice.vo.DataSourceVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
javax.persistence.criteria.Predicate
;
import
javax.transaction.Transactional
;
import
java.util.*
;
import
java.util.concurrent.Future
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -174,6 +182,9 @@ public class DataApiServiceManagementServiceImpl implements DataApiServiceManage
dataApiModel
=
dataApiModelOptional
.
get
();
}
if
(!
StringUtils
.
isEmpty
(
dataApiModelDto
.
getImageId
())){
dataApiModel
.
setImageId
(
dataApiModel
.
getImageId
());
}
if
(!
StringUtils
.
isEmpty
(
dataApiModelDto
.
getDesc
())){
dataApiModel
.
setDescription
(
dataApiModelDto
.
getDesc
());
...
...
@@ -261,19 +272,22 @@ public class DataApiServiceManagementServiceImpl implements DataApiServiceManage
columnDataRangeFilter
.
setTableName
(
dataApiTable
.
getTableName
());
// 设置表名
List
<
DataApiColumn
>
dataApiColumns
=
dataApiColumnRepository
.
findAllByDataTableIdAndDeletedIsFalse
(
tableId
);
Map
<
Long
,
String
>
columnIdToNameMap
=
dataApiColumns
.
stream
().
collect
(
Collectors
.
toMap
(
DataApiColumn:
:
getId
,
DataApiColumn:
:
getFieldName
));
Map
<
Long
,
DataApiColumn
>
columnIdToNameMap
=
dataApiColumns
.
stream
().
collect
(
Collectors
.
toMap
(
DataApiColumn:
:
getId
,
Function
.
identity
()
));
for
(
DataColumn
field
:
fields
)
{
Long
id
=
field
.
getId
();
if
(
null
==
id
){
log
.
warn
(
"列过滤条件:【{}】中数据字段:【{}】不存在ID"
,
columnDataRangeFilter
,
field
);
return
Boolean
.
FALSE
;
}
String
columnName
=
columnIdToNameMap
.
get
(
id
);
DataApiColumn
column
=
columnIdToNameMap
.
get
(
id
);
String
columnName
=
column
.
getFieldName
();
if
(
StringUtils
.
isEmpty
(
columnName
)){
log
.
warn
(
"数据列:【id:{},name:{}】不存在表:【{}】中"
,
id
,
columnName
,
tableId
);
return
Boolean
.
FALSE
;
}
field
.
setColumnName
(
columnName
);
// 设置表名
field
.
setFieldType
(
column
.
getFiledType
());
field
.
setDesc
(
column
.
getDescription
());
}
}
return
Boolean
.
TRUE
;
...
...
@@ -310,6 +324,7 @@ public class DataApiServiceManagementServiceImpl implements DataApiServiceManage
}
field
.
setColumnName
(
dataApiColumn
.
getFieldName
());
// 设置字段名
field
.
setFieldType
(
dataApiColumn
.
getFiledType
());
// 设置字段类型
field
.
setDesc
(
dataApiColumn
.
getDescription
());
// 设置字段描述
}
}
return
Boolean
.
TRUE
;
...
...
@@ -413,6 +428,29 @@ public class DataApiServiceManagementServiceImpl implements DataApiServiceManage
return
success
(
"数据api服务调试"
,
result
);
}
@Override
public
Result
<
PageData
<
DataApiModelItemVo
>>
queryDataApiList
(
String
environment
,
Integer
status
,
PageLink
pageLink
)
{
Specification
<
DataApiModel
>
spec
=
(
root
,
query
,
builder
)
->
{
List
<
Predicate
>
andList
=
new
LinkedList
<>();
andList
.
add
(
builder
.
equal
((
root
.
get
(
"status"
).
as
(
Integer
.
class
)),
status
));
andList
.
add
(
builder
.
equal
((
root
.
get
(
"deleted"
).
as
(
Boolean
.
class
)),
Boolean
.
FALSE
));
andList
.
add
(
builder
.
equal
((
root
.
get
(
"systemEnv"
).
as
(
SystemEnv
.
class
)),
SystemEnv
.
valueOf
(
environment
.
toUpperCase
())));
return
builder
.
and
(
andList
.
toArray
(
new
Predicate
[
0
]));
};
Page
<
DataApiModel
>
dataApiModelPage
=
dataApiModelRepository
.
findAll
(
spec
,
toPageable
(
pageLink
));
PageData
<
DataApiModelItemVo
>
result
=
pageToPageData
(
dataApiModelPage
);
List
<
DataApiModelItemVo
>
dataSourceVos
=
new
ArrayList
<>();
for
(
DataApiModel
dataApiModel
:
dataApiModelPage
.
getContent
())
{
dataSourceVos
.
add
(
dataApiModel
.
toItem
());
}
result
.
setData
(
dataSourceVos
);
return
success
(
result
);
}
private
List
<
List
<
Object
>>
executeDataQueryTask
(
String
dataSql
,
DataApiModelConfig
dataApiModelConfig
,
DataApiDataSource
dataSource
)
throws
Exception
{
// 获取sql的填充参数
List
<
Object
>
jdbcParamValues
=
new
ArrayList
<>();
...
...
src/main/java/com/hisense/dataservice/vo/DataApiModelDetailVo.java
0 → 100644
浏览文件 @
217ec945
package
com
.
hisense
.
dataservice
.
vo
;
import
com.hisense.dataservice.bo.ColumnDataRangeFilter
;
import
com.hisense.dataservice.bo.LineDataRangeFilter
;
import
com.hisense.dataservice.bo.TableJoinRelationConfig
;
import
com.hisense.dataservice.enums.NetworkEnv
;
import
com.hisense.dataservice.enums.SystemEnv
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author : scc
* @date : 2023/02/24
**/
@ApiModel
(
"数据服务详情vo"
)
@Data
public
class
DataApiModelDetailVo
{
@ApiModelProperty
(
name
=
"数据服务ID"
)
private
Long
id
;
@ApiModelProperty
(
name
=
"数据服务名称"
)
private
String
name
;
@ApiModelProperty
(
name
=
"数据服务描述"
)
private
String
description
;
@ApiModelProperty
(
name
=
"发布/创建人"
)
private
String
creator
;
@ApiModelProperty
(
name
=
"负责人"
)
private
String
systemLeader
;
@ApiModelProperty
(
name
=
"发布系统"
)
private
String
publishSystem
;
@ApiModelProperty
(
name
=
"发布时间"
)
private
Date
createdTime
;
@ApiModelProperty
(
name
=
"数据服务图片"
)
private
String
imageId
;
@ApiModelProperty
(
name
=
"网络环境"
)
private
NetworkEnv
networkEnv
;
@ApiModelProperty
(
value
=
"列数据范围"
)
private
List
<
ColumnDataRangeFilter
>
columnDataRangeConfig
;
@ApiModelProperty
(
value
=
"数据表关系"
)
private
List
<
TableJoinRelationConfig
>
tableJoinRelationConfig
;
@ApiModelProperty
(
value
=
"行数据范围"
)
private
List
<
LineDataRangeFilter
>
lineDataRangeConfig
;
}
src/main/java/com/hisense/dataservice/vo/DataApiModelItemVo.java
0 → 100644
浏览文件 @
217ec945
package
com
.
hisense
.
dataservice
.
vo
;
import
com.hisense.dataservice.enums.SystemEnv
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author : scc
* @date : 2023/02/24
**/
@ApiModel
(
"数据服务列表vo"
)
@Data
public
class
DataApiModelItemVo
{
@ApiModelProperty
(
name
=
"数据源ID"
)
private
Long
dataSourceId
;
@ApiModelProperty
(
name
=
"数据服务ID"
)
private
Long
id
;
@ApiModelProperty
(
name
=
"数据服务名称"
)
private
String
name
;
@ApiModelProperty
(
name
=
"数据服务描述"
)
private
String
description
;
@ApiModelProperty
(
name
=
"数据服务图片"
)
private
String
imageId
;
@ApiModelProperty
(
name
=
"系统环境"
)
private
SystemEnv
systemEnv
;
}
src/main/java/com/hisense/dataservice/vo/DataApiModelVo.java
deleted
100644 → 0
浏览文件 @
3b8fcfe8
package
com
.
hisense
.
dataservice
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
/**
* @author : scc
* @date : 2023/02/24
**/
public
class
DataApiModelVo
{
@ApiModelProperty
(
name
=
"数据源ID"
)
private
Long
dataSourceId
;
@ApiModelProperty
(
name
=
"数据源名称"
)
private
Long
dataSourceName
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论