Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
njgzx
dataease
Commits
e50158bc
提交
e50158bc
authored
11月 22, 2021
作者:
taojinlong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(数据集): 行权限
上级
566a3170
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
769 行增加
和
152 行删除
+769
-152
DatasetRowPermissions.java
...n/java/io/dataease/base/domain/DatasetRowPermissions.java
+24
-0
DatasetRowPermissionsExample.java
...io/dataease/base/domain/DatasetRowPermissionsExample.java
+0
-0
DatasetRowPermissionsMapper.java
.../io/dataease/base/mapper/DatasetRowPermissionsMapper.java
+31
-0
DatasetRowPermissionsMapper.xml
...a/io/dataease/base/mapper/DatasetRowPermissionsMapper.xml
+244
-0
ExtDataSetTableMapper.java
...va/io/dataease/base/mapper/ext/ExtDataSetTableMapper.java
+12
-0
ExtDataSetTableMapper.xml
...ava/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
+64
-0
DataSetTableRowPermissionsController.java
...troller/dataset/DataSetTableRowPermissionsController.java
+60
-0
DataSetRowPermissionsDTO.java
...ava/io/dataease/dto/dataset/DataSetRowPermissionsDTO.java
+21
-0
QueryProvider.java
...c/main/java/io/dataease/provider/query/QueryProvider.java
+6
-6
CKQueryProvider.java
...n/java/io/dataease/provider/query/ck/CKQueryProvider.java
+15
-11
DorisQueryProvider.java
.../io/dataease/provider/query/doris/DorisQueryProvider.java
+16
-11
EsQueryProvider.java
...n/java/io/dataease/provider/query/es/EsQueryProvider.java
+17
-11
HiveQueryProvider.java
...va/io/dataease/provider/query/hive/HiveQueryProvider.java
+15
-11
MongoQueryProvider.java
...o/dataease/provider/query/mongodb/MongoQueryProvider.java
+15
-11
MysqlQueryProvider.java
.../io/dataease/provider/query/mysql/MysqlQueryProvider.java
+17
-11
OracleQueryProvider.java
...o/dataease/provider/query/oracle/OracleQueryProvider.java
+13
-9
PgQueryProvider.java
...n/java/io/dataease/provider/query/pg/PgQueryProvider.java
+15
-11
RedshiftQueryProvider.java
...taease/provider/query/redshift/RedshiftQueryProvider.java
+15
-11
SqlserverQueryProvider.java
...ease/provider/query/sqlserver/SqlserverQueryProvider.java
+13
-9
DataSetTableRowPermissionsService.java
...se/service/dataset/DataSetTableRowPermissionsService.java
+110
-0
DataSetTableService.java
...java/io/dataease/service/dataset/DataSetTableService.java
+0
-0
DirectFieldService.java
...aease/service/dataset/impl/direct/DirectFieldService.java
+11
-7
V28__de1.5.sql
backend/src/main/resources/db/migration/V28__de1.5.sql
+13
-0
generatorConfig.xml
backend/src/main/resources/generatorConfig.xml
+3
-21
dataset.js
frontend/src/api/dataset/dataset.js
+9
-0
zh.js
frontend/src/lang/zh.js
+9
-1
QuotaFilterEditor.vue
...d/src/views/chart/components/filter/QuotaFilterEditor.vue
+0
-10
RowPermissions.vue
frontend/src/views/dataset/data/RowPermissions.vue
+0
-0
ViewTable.vue
frontend/src/views/dataset/data/ViewTable.vue
+1
-1
没有找到文件。
backend/src/main/java/io/dataease/base/domain/DatasetRowPermissions.java
0 → 100644
浏览文件 @
e50158bc
package
io
.
dataease
.
base
.
domain
;
import
java.io.Serializable
;
import
lombok.Data
;
@Data
public
class
DatasetRowPermissions
implements
Serializable
{
private
String
id
;
private
String
authTargetType
;
private
Long
authTargetId
;
private
String
datasetId
;
private
String
datasetFieldId
;
private
String
filter
;
private
Long
updateTime
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/domain/DatasetRowPermissionsExample.java
0 → 100644
浏览文件 @
e50158bc
差异被折叠。
点击展开。
backend/src/main/java/io/dataease/base/mapper/DatasetRowPermissionsMapper.java
0 → 100644
浏览文件 @
e50158bc
package
io
.
dataease
.
base
.
mapper
;
import
io.dataease.base.domain.DatasetRowPermissions
;
import
io.dataease.base.domain.DatasetRowPermissionsExample
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
public
interface
DatasetRowPermissionsMapper
{
long
countByExample
(
DatasetRowPermissionsExample
example
);
int
deleteByExample
(
DatasetRowPermissionsExample
example
);
int
deleteByPrimaryKey
(
String
id
);
int
insert
(
DatasetRowPermissions
record
);
int
insertSelective
(
DatasetRowPermissions
record
);
List
<
DatasetRowPermissions
>
selectByExample
(
DatasetRowPermissionsExample
example
);
DatasetRowPermissions
selectByPrimaryKey
(
String
id
);
int
updateByExampleSelective
(
@Param
(
"record"
)
DatasetRowPermissions
record
,
@Param
(
"example"
)
DatasetRowPermissionsExample
example
);
int
updateByExample
(
@Param
(
"record"
)
DatasetRowPermissions
record
,
@Param
(
"example"
)
DatasetRowPermissionsExample
example
);
int
updateByPrimaryKeySelective
(
DatasetRowPermissions
record
);
int
updateByPrimaryKey
(
DatasetRowPermissions
record
);
}
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/DatasetRowPermissionsMapper.xml
0 → 100644
浏览文件 @
e50158bc
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"io.dataease.base.mapper.DatasetRowPermissionsMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"io.dataease.base.domain.DatasetRowPermissions"
>
<id
column=
"id"
jdbcType=
"VARCHAR"
property=
"id"
/>
<result
column=
"auth_target_type"
jdbcType=
"VARCHAR"
property=
"authTargetType"
/>
<result
column=
"auth_target_id"
jdbcType=
"BIGINT"
property=
"authTargetId"
/>
<result
column=
"dataset_id"
jdbcType=
"VARCHAR"
property=
"datasetId"
/>
<result
column=
"dataset_field_id"
jdbcType=
"VARCHAR"
property=
"datasetFieldId"
/>
<result
column=
"filter"
jdbcType=
"VARCHAR"
property=
"filter"
/>
<result
column=
"update_time"
jdbcType=
"BIGINT"
property=
"updateTime"
/>
</resultMap>
<sql
id=
"Example_Where_Clause"
>
<where>
<foreach
collection=
"oredCriteria"
item=
"criteria"
separator=
"or"
>
<if
test=
"criteria.valid"
>
<trim
prefix=
"("
prefixOverrides=
"and"
suffix=
")"
>
<foreach
collection=
"criteria.criteria"
item=
"criterion"
>
<choose>
<when
test=
"criterion.noValue"
>
and ${criterion.condition}
</when>
<when
test=
"criterion.singleValue"
>
and ${criterion.condition} #{criterion.value}
</when>
<when
test=
"criterion.betweenValue"
>
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when
test=
"criterion.listValue"
>
and ${criterion.condition}
<foreach
close=
")"
collection=
"criterion.value"
item=
"listItem"
open=
"("
separator=
","
>
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql
id=
"Update_By_Example_Where_Clause"
>
<where>
<foreach
collection=
"example.oredCriteria"
item=
"criteria"
separator=
"or"
>
<if
test=
"criteria.valid"
>
<trim
prefix=
"("
prefixOverrides=
"and"
suffix=
")"
>
<foreach
collection=
"criteria.criteria"
item=
"criterion"
>
<choose>
<when
test=
"criterion.noValue"
>
and ${criterion.condition}
</when>
<when
test=
"criterion.singleValue"
>
and ${criterion.condition} #{criterion.value}
</when>
<when
test=
"criterion.betweenValue"
>
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when
test=
"criterion.listValue"
>
and ${criterion.condition}
<foreach
close=
")"
collection=
"criterion.value"
item=
"listItem"
open=
"("
separator=
","
>
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql
id=
"Base_Column_List"
>
id, auth_target_type, auth_target_id, dataset_id, dataset_field_id, `filter`, update_time
</sql>
<select
id=
"selectByExample"
parameterType=
"io.dataease.base.domain.DatasetRowPermissionsExample"
resultMap=
"BaseResultMap"
>
select
<if
test=
"distinct"
>
distinct
</if>
<include
refid=
"Base_Column_List"
/>
from dataset_row_permissions
<if
test=
"_parameter != null"
>
<include
refid=
"Example_Where_Clause"
/>
</if>
<if
test=
"orderByClause != null"
>
order by ${orderByClause}
</if>
</select>
<select
id=
"selectByPrimaryKey"
parameterType=
"java.lang.String"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from dataset_row_permissions
where id = #{id,jdbcType=VARCHAR}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.String"
>
delete from dataset_row_permissions
where id = #{id,jdbcType=VARCHAR}
</delete>
<delete
id=
"deleteByExample"
parameterType=
"io.dataease.base.domain.DatasetRowPermissionsExample"
>
delete from dataset_row_permissions
<if
test=
"_parameter != null"
>
<include
refid=
"Example_Where_Clause"
/>
</if>
</delete>
<insert
id=
"insert"
parameterType=
"io.dataease.base.domain.DatasetRowPermissions"
>
insert into dataset_row_permissions (id, auth_target_type, auth_target_id,
dataset_id, dataset_field_id, `filter`,
update_time)
values (#{id,jdbcType=VARCHAR}, #{authTargetType,jdbcType=VARCHAR}, #{authTargetId,jdbcType=BIGINT},
#{datasetId,jdbcType=VARCHAR}, #{datasetFieldId,jdbcType=VARCHAR}, #{filter,jdbcType=VARCHAR},
#{updateTime,jdbcType=BIGINT})
</insert>
<insert
id=
"insertSelective"
parameterType=
"io.dataease.base.domain.DatasetRowPermissions"
>
insert into dataset_row_permissions
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
id,
</if>
<if
test=
"authTargetType != null"
>
auth_target_type,
</if>
<if
test=
"authTargetId != null"
>
auth_target_id,
</if>
<if
test=
"datasetId != null"
>
dataset_id,
</if>
<if
test=
"datasetFieldId != null"
>
dataset_field_id,
</if>
<if
test=
"filter != null"
>
`filter`,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
#{id,jdbcType=VARCHAR},
</if>
<if
test=
"authTargetType != null"
>
#{authTargetType,jdbcType=VARCHAR},
</if>
<if
test=
"authTargetId != null"
>
#{authTargetId,jdbcType=BIGINT},
</if>
<if
test=
"datasetId != null"
>
#{datasetId,jdbcType=VARCHAR},
</if>
<if
test=
"datasetFieldId != null"
>
#{datasetFieldId,jdbcType=VARCHAR},
</if>
<if
test=
"filter != null"
>
#{filter,jdbcType=VARCHAR},
</if>
<if
test=
"updateTime != null"
>
#{updateTime,jdbcType=BIGINT},
</if>
</trim>
</insert>
<select
id=
"countByExample"
parameterType=
"io.dataease.base.domain.DatasetRowPermissionsExample"
resultType=
"java.lang.Long"
>
select count(*) from dataset_row_permissions
<if
test=
"_parameter != null"
>
<include
refid=
"Example_Where_Clause"
/>
</if>
</select>
<update
id=
"updateByExampleSelective"
parameterType=
"map"
>
update dataset_row_permissions
<set>
<if
test=
"record.id != null"
>
id = #{record.id,jdbcType=VARCHAR},
</if>
<if
test=
"record.authTargetType != null"
>
auth_target_type = #{record.authTargetType,jdbcType=VARCHAR},
</if>
<if
test=
"record.authTargetId != null"
>
auth_target_id = #{record.authTargetId,jdbcType=BIGINT},
</if>
<if
test=
"record.datasetId != null"
>
dataset_id = #{record.datasetId,jdbcType=VARCHAR},
</if>
<if
test=
"record.datasetFieldId != null"
>
dataset_field_id = #{record.datasetFieldId,jdbcType=VARCHAR},
</if>
<if
test=
"record.filter != null"
>
`filter` = #{record.filter,jdbcType=VARCHAR},
</if>
<if
test=
"record.updateTime != null"
>
update_time = #{record.updateTime,jdbcType=BIGINT},
</if>
</set>
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
</update>
<update
id=
"updateByExample"
parameterType=
"map"
>
update dataset_row_permissions
set id = #{record.id,jdbcType=VARCHAR},
auth_target_type = #{record.authTargetType,jdbcType=VARCHAR},
auth_target_id = #{record.authTargetId,jdbcType=BIGINT},
dataset_id = #{record.datasetId,jdbcType=VARCHAR},
dataset_field_id = #{record.datasetFieldId,jdbcType=VARCHAR},
`filter` = #{record.filter,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=BIGINT}
<if
test=
"_parameter != null"
>
<include
refid=
"Update_By_Example_Where_Clause"
/>
</if>
</update>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"io.dataease.base.domain.DatasetRowPermissions"
>
update dataset_row_permissions
<set>
<if
test=
"authTargetType != null"
>
auth_target_type = #{authTargetType,jdbcType=VARCHAR},
</if>
<if
test=
"authTargetId != null"
>
auth_target_id = #{authTargetId,jdbcType=BIGINT},
</if>
<if
test=
"datasetId != null"
>
dataset_id = #{datasetId,jdbcType=VARCHAR},
</if>
<if
test=
"datasetFieldId != null"
>
dataset_field_id = #{datasetFieldId,jdbcType=VARCHAR},
</if>
<if
test=
"filter != null"
>
`filter` = #{filter,jdbcType=VARCHAR},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime,jdbcType=BIGINT},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"io.dataease.base.domain.DatasetRowPermissions"
>
update dataset_row_permissions
set auth_target_type = #{authTargetType,jdbcType=VARCHAR},
auth_target_id = #{authTargetId,jdbcType=BIGINT},
dataset_id = #{datasetId,jdbcType=VARCHAR},
dataset_field_id = #{datasetFieldId,jdbcType=VARCHAR},
`filter` = #{filter,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=BIGINT}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.java
浏览文件 @
e50158bc
package
io
.
dataease
.
base
.
mapper
.
ext
;
package
io
.
dataease
.
base
.
mapper
.
ext
;
import
io.dataease.base.domain.DatasetRowPermissions
;
import
io.dataease.base.mapper.ext.query.GridExample
;
import
io.dataease.controller.request.dataset.DataSetTableRequest
;
import
io.dataease.controller.request.dataset.DataSetTableRequest
;
import
io.dataease.controller.sys.response.RoleUserItem
;
import
io.dataease.dto.dataset.DataSetRowPermissionsDTO
;
import
io.dataease.dto.dataset.DataSetTableDTO
;
import
io.dataease.dto.dataset.DataSetTableDTO
;
import
java.util.List
;
import
java.util.List
;
...
@@ -9,4 +13,12 @@ public interface ExtDataSetTableMapper {
...
@@ -9,4 +13,12 @@ public interface ExtDataSetTableMapper {
List
<
DataSetTableDTO
>
search
(
DataSetTableRequest
request
);
List
<
DataSetTableDTO
>
search
(
DataSetTableRequest
request
);
DataSetTableDTO
searchOne
(
DataSetTableRequest
request
);
DataSetTableDTO
searchOne
(
DataSetTableRequest
request
);
List
<
DataSetRowPermissionsDTO
>
searchRowPermissons
(
GridExample
example
);
List
<
RoleUserItem
>
searchAuthUsers
(
DatasetRowPermissions
example
);
List
<
RoleUserItem
>
searchAuthRoles
(
DatasetRowPermissions
example
);
List
<
RoleUserItem
>
searchAuthDepts
(
DatasetRowPermissions
example
);
}
}
backend/src/main/java/io/dataease/base/mapper/ext/ExtDataSetTableMapper.xml
浏览文件 @
e50158bc
...
@@ -7,6 +7,15 @@
...
@@ -7,6 +7,15 @@
<result
column=
"privileges"
property=
"privileges"
/>
<result
column=
"privileges"
property=
"privileges"
/>
</resultMap>
</resultMap>
<resultMap
id=
"RowPermissonsDTO"
type=
"io.dataease.dto.dataset.DataSetRowPermissionsDTO"
extends=
"io.dataease.base.mapper.DatasetRowPermissionsMapper.BaseResultMap"
>
</resultMap>
<resultMap
id=
"roleItemMap"
type=
"io.dataease.controller.sys.response.RoleUserItem"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
</resultMap>
<select
id=
"searchOne"
resultMap=
"BaseResultMapDTO"
>
<select
id=
"searchOne"
resultMap=
"BaseResultMapDTO"
>
select
select
id, `name`, scene_id, data_source_id, `type`, `mode`,`info`, create_by, create_time,
id, `name`, scene_id, data_source_id, `type`, `mode`,`info`, create_by, create_time,
...
@@ -96,4 +105,59 @@
...
@@ -96,4 +105,59 @@
order by ${sort}
order by ${sort}
</if>
</if>
</select>
</select>
<select
id=
"searchRowPermissons"
resultMap=
"RowPermissonsDTO"
parameterType=
"io.dataease.base.mapper.ext.query.GridExample"
>
SELECT dataset_table.name as datasetName, dataset_table_field.name as fieldName, dataset_row_permissions.*
FROM dataset_row_permissions
left join dataset_table on dataset_table.id=dataset_row_permissions.dataset_id
left join dataset_table_field on dataset_table_field.id=dataset_row_permissions.dataset_field_id
<if
test=
"_parameter != null"
>
<include
refid=
"io.dataease.base.mapper.ext.query.GridSql.gridCondition"
/>
</if>
<if
test=
"orderByClause != null"
>
order by ${orderByClause}
</if>
<if
test=
"orderByClause == null"
>
order by dataset_row_permissions.update_time desc
</if>
</select>
<select
id=
"searchAuthUsers"
resultMap=
"roleItemMap"
>
SELECT sys_user.user_id as id, sys_user.username as name
FROM sys_auth
left join sys_auth_detail on sys_auth.id=sys_auth_detail.auth_id
left join sys_user on sys_user.user_id=sys_auth.auth_target
where sys_auth.auth_target_type='user'
and sys_auth.auth_source_type='dataset'
and sys_auth.auth_source=#{datasetId,jdbcType=VARCHAR}
and sys_auth_detail.privilege_type=1
and sys_auth_detail.privilege_value=1;
</select>
<select
id=
"searchAuthRoles"
resultMap=
"roleItemMap"
>
SELECT sys_role.role_id as id, sys_role.name as name
FROM sys_auth
left join sys_auth_detail on sys_auth.id=sys_auth_detail.auth_id
left join sys_role on sys_role.role_id=sys_auth.auth_target
where sys_auth.auth_target_type='role'
and sys_auth.auth_source_type='dataset'
and sys_auth.auth_source=#{datasetId,jdbcType=VARCHAR}
and sys_auth_detail.privilege_type=1
and sys_auth_detail.privilege_value=1;
</select>
<select
id=
"searchAuthDepts"
resultMap=
"roleItemMap"
>
SELECT sys_dept.dept_id as id, sys_dept.name as name
FROM sys_auth
left join sys_auth_detail on sys_auth.id=sys_auth_detail.auth_id
left join sys_dept on sys_dept.dept_id=sys_auth.auth_target
where sys_auth.auth_target_type='dept'
and sys_auth.auth_source_type='dataset'
and sys_auth.auth_source=#{datasetId,jdbcType=VARCHAR}
and sys_auth_detail.privilege_type=1
and sys_auth_detail.privilege_value=1;
</select>
</mapper>
</mapper>
backend/src/main/java/io/dataease/controller/dataset/DataSetTableRowPermissionsController.java
0 → 100644
浏览文件 @
e50158bc
package
io
.
dataease
.
controller
.
dataset
;
import
com.github.pagehelper.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
io.dataease.base.domain.DatasetRowPermissions
;
import
io.dataease.commons.utils.PageUtils
;
import
io.dataease.commons.utils.Pager
;
import
io.dataease.controller.sys.base.BaseGridRequest
;
import
io.dataease.dto.dataset.DataSetRowPermissionsDTO
;
import
io.dataease.service.dataset.DataSetTableRowPermissionsService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.util.List
;
@Api
(
tags
=
"数据集:数据集行权限"
)
@ApiSupport
(
order
=
90
)
@RestController
@RequestMapping
(
"dataset/rowPermissions"
)
public
class
DataSetTableRowPermissionsController
{
@Resource
private
DataSetTableRowPermissionsService
dataSetTableRowPermissionsService
;
@ApiOperation
(
"保存"
)
@PostMapping
(
"save"
)
public
void
save
(
@RequestBody
DatasetRowPermissions
datasetRowPermissions
)
throws
Exception
{
dataSetTableRowPermissionsService
.
save
(
datasetRowPermissions
);
}
@ApiOperation
(
"分页查询"
)
@PostMapping
(
"/pageList/{datasetId}/{goPage}/{pageSize}"
)
public
Pager
<
List
<
DataSetRowPermissionsDTO
>>
rowPermissions
(
@PathVariable
String
datasetId
,
@PathVariable
int
goPage
,
@PathVariable
int
pageSize
,
@RequestBody
BaseGridRequest
request
)
{
Page
<
Object
>
page
=
PageHelper
.
startPage
(
goPage
,
pageSize
,
true
);
return
PageUtils
.
setPageInfo
(
page
,
dataSetTableRowPermissionsService
.
searchRowPermissions
(
request
,
datasetId
));
}
@ApiOperation
(
"有权限的对象"
)
@PostMapping
(
"/authObjs"
)
public
List
<
Object
>
authObjs
(
@RequestBody
DataSetRowPermissionsDTO
request
)
{
return
(
List
<
Object
>)
dataSetTableRowPermissionsService
.
authObjs
(
request
);
}
@ApiOperation
(
"详情"
)
@PostMapping
(
"/dataSetRowPermissionInfo"
)
public
DataSetRowPermissionsDTO
dataSetRowPermissionInfo
(
@RequestBody
DataSetRowPermissionsDTO
request
)
{
return
dataSetTableRowPermissionsService
.
dataSetRowPermissionInfo
(
request
);
}
@ApiOperation
(
"删除"
)
@PostMapping
(
"/delete/{id}"
)
public
void
dataSetRowPermissionInfo
(
@PathVariable
String
id
)
{
dataSetTableRowPermissionsService
.
delete
(
id
);
}
}
backend/src/main/java/io/dataease/dto/dataset/DataSetRowPermissionsDTO.java
0 → 100644
浏览文件 @
e50158bc
package
io
.
dataease
.
dto
.
dataset
;
import
io.dataease.base.domain.DatasetRowPermissions
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* @Author gin
* @Date 2021/3/9 3:19 下午
*/
@Getter
@Setter
public
class
DataSetRowPermissionsDTO
extends
DatasetRowPermissions
{
@ApiModelProperty
(
"数据集名称"
)
private
String
datasetName
;
@ApiModelProperty
(
"字段名称"
)
private
String
fieldName
;
@ApiModelProperty
(
"授权对象名称"
)
private
String
authTargetName
;
}
backend/src/main/java/io/dataease/provider/query/QueryProvider.java
浏览文件 @
e50158bc
...
@@ -23,17 +23,17 @@ public abstract class QueryProvider {
...
@@ -23,17 +23,17 @@ public abstract class QueryProvider {
public
abstract
String
createSQLPreview
(
String
sql
,
String
orderBy
);
public
abstract
String
createSQLPreview
(
String
sql
,
String
orderBy
);
public
abstract
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
);
public
abstract
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
);
public
abstract
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
);
public
abstract
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
);
public
abstract
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
);
public
abstract
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
);
public
abstract
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
);
public
abstract
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
);
public
abstract
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
);
public
abstract
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
);
public
abstract
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
);
public
abstract
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
);
public
abstract
String
getSQL
(
String
table
,
List
<
ChartViewFieldDTO
>
xAxis
,
List
<
ChartViewFieldDTO
>
yAxis
,
List
<
ChartCustomFilterDTO
>
customFilter
,
List
<
ChartExtFilterRequest
>
extFilterRequestList
,
Datasource
ds
,
ChartViewWithBLOBs
view
);
public
abstract
String
getSQL
(
String
table
,
List
<
ChartViewFieldDTO
>
xAxis
,
List
<
ChartViewFieldDTO
>
yAxis
,
List
<
ChartCustomFilterDTO
>
customFilter
,
List
<
ChartExtFilterRequest
>
extFilterRequestList
,
Datasource
ds
,
ChartViewWithBLOBs
view
);
...
...
backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java
浏览文件 @
e50158bc
...
@@ -107,7 +107,7 @@ public class CKQueryProvider extends QueryProvider {
...
@@ -107,7 +107,7 @@ public class CKQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
CKConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
CKConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -170,32 +170,36 @@ public class CKQueryProvider extends QueryProvider {
...
@@ -170,32 +170,36 @@ public class CKQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/doris/DorisQueryProvider.java
浏览文件 @
e50158bc
...
@@ -78,7 +78,7 @@ public class DorisQueryProvider extends QueryProvider {
...
@@ -78,7 +78,7 @@ public class DorisQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
DorisConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
DorisConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -140,6 +140,11 @@ public class DorisQueryProvider extends QueryProvider {
...
@@ -140,6 +140,11 @@ public class DorisQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
if
((
fields
.
size
()
>
0
))
{
if
((
fields
.
size
()
>
0
))
{
xOrders
.
add
(
SQLObj
.
builder
()
xOrders
.
add
(
SQLObj
.
builder
()
.
orderDirection
(
"asc"
)
.
orderDirection
(
"asc"
)
...
@@ -152,28 +157,28 @@ public class DorisQueryProvider extends QueryProvider {
...
@@ -152,28 +157,28 @@ public class DorisQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sql
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sql
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java
浏览文件 @
e50158bc
...
@@ -110,7 +110,7 @@ public class EsQueryProvider extends QueryProvider {
...
@@ -110,7 +110,7 @@ public class EsQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
EsSqlLConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
EsSqlLConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -169,32 +169,38 @@ public class EsQueryProvider extends QueryProvider {
...
@@ -169,32 +169,38 @@ public class EsQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
);
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
);
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
);
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
);
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java
浏览文件 @
e50158bc
...
@@ -69,7 +69,7 @@ public class HiveQueryProvider extends QueryProvider {
...
@@ -69,7 +69,7 @@ public class HiveQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
HiveConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
HiveConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -128,32 +128,36 @@ public class HiveQueryProvider extends QueryProvider {
...
@@ -128,32 +128,36 @@ public class HiveQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java
浏览文件 @
e50158bc
...
@@ -81,7 +81,7 @@ public class MongoQueryProvider extends QueryProvider {
...
@@ -81,7 +81,7 @@ public class MongoQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
MongoConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
MongoConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -114,32 +114,36 @@ public class MongoQueryProvider extends QueryProvider {
...
@@ -114,32 +114,36 @@ public class MongoQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java
浏览文件 @
e50158bc
...
@@ -78,7 +78,7 @@ public class MysqlQueryProvider extends QueryProvider {
...
@@ -78,7 +78,7 @@ public class MysqlQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
MySQLConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
MySQLConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -137,32 +137,38 @@ public class MysqlQueryProvider extends QueryProvider {
...
@@ -137,32 +137,38 @@ public class MysqlQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT 0,"
+
limit
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT 0,"
+
limit
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
(
page
-
1
)
*
pageSize
+
","
+
realSize
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java
浏览文件 @
e50158bc
...
@@ -93,7 +93,7 @@ public class OracleQueryProvider extends QueryProvider {
...
@@ -93,7 +93,7 @@ public class OracleQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
OracleConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
OracleConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
OracleConstants
.
ALIAS_FIX
,
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
)))
.
tableAlias
(
String
.
format
(
OracleConstants
.
ALIAS_FIX
,
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
)))
...
@@ -107,6 +107,10 @@ public class OracleQueryProvider extends QueryProvider {
...
@@ -107,6 +107,10 @@ public class OracleQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
...
@@ -182,33 +186,33 @@ public class OracleQueryProvider extends QueryProvider {
...
@@ -182,33 +186,33 @@ public class OracleQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
List
<
SQLObj
>
xFields
=
xFields
(
table
,
fields
);
List
<
SQLObj
>
xFields
=
xFields
(
table
,
fields
);
return
MessageFormat
.
format
(
"SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} "
,
return
MessageFormat
.
format
(
"SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} "
,
sqlColumn
(
xFields
),
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
),
Integer
.
valueOf
(
page
*
realSize
).
toString
(),
Integer
.
valueOf
((
page
-
1
)
*
pageSize
).
toString
());
sqlColumn
(
xFields
),
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
,
customFilter
),
Integer
.
valueOf
(
page
*
realSize
).
toString
(),
Integer
.
valueOf
((
page
-
1
)
*
pageSize
).
toString
());
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
List
<
SQLObj
>
xFields
=
xFields
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
);
List
<
SQLObj
>
xFields
=
xFields
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
);
return
MessageFormat
.
format
(
"SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} "
,
return
MessageFormat
.
format
(
"SELECT {0} FROM ( SELECT DE_TMP.*, rownum r FROM ( {1} ) DE_TMP WHERE rownum <= {2} ) WHERE r > {3} "
,
sqlColumn
(
xFields
),
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
),
Integer
.
valueOf
(
page
*
realSize
).
toString
(),
Integer
.
valueOf
((
page
-
1
)
*
pageSize
).
toString
());
sqlColumn
(
xFields
),
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
),
Integer
.
valueOf
(
page
*
realSize
).
toString
(),
Integer
.
valueOf
((
page
-
1
)
*
pageSize
).
toString
());
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
String
schema
=
new
Gson
().
fromJson
(
ds
.
getConfiguration
(),
JdbcConfiguration
.
class
).
getSchema
();
String
schema
=
new
Gson
().
fromJson
(
ds
.
getConfiguration
(),
JdbcConfiguration
.
class
).
getSchema
();
return
String
.
format
(
"SELECT * from %s WHERE rownum <= %s "
,
schema
+
"."
+
String
.
format
(
OracleConstants
.
KEYWORD_TABLE
,
table
),
limit
.
toString
());
return
String
.
format
(
"SELECT * from %s WHERE rownum <= %s "
,
schema
+
"."
+
String
.
format
(
OracleConstants
.
KEYWORD_TABLE
,
table
),
limit
.
toString
());
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
String
.
format
(
"SELECT * from %s WHERE rownum <= %s "
,
"("
+
sqlFix
(
sql
)
+
")"
,
limit
.
toString
());
return
String
.
format
(
"SELECT * from %s WHERE rownum <= %s "
,
"("
+
sqlFix
(
sql
)
+
")"
,
limit
.
toString
());
}
}
...
...
backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java
浏览文件 @
e50158bc
...
@@ -98,7 +98,7 @@ public class PgQueryProvider extends QueryProvider {
...
@@ -98,7 +98,7 @@ public class PgQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
PgConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
PgConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -159,32 +159,36 @@ public class PgQueryProvider extends QueryProvider {
...
@@ -159,32 +159,36 @@ public class PgQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
,
customFilter
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
)
+
" LIMIT "
+
limit
+
" offset 0"
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
,
customFilter
)
+
" LIMIT "
+
limit
+
" offset 0"
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
limit
+
" offset 0"
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
limit
+
" offset 0"
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java
浏览文件 @
e50158bc
...
@@ -107,7 +107,7 @@ public class RedshiftQueryProvider extends QueryProvider {
...
@@ -107,7 +107,7 @@ public class RedshiftQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
PgConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
PgConstants
.
KEYWORD_TABLE
,
table
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
.
tableAlias
(
String
.
format
(
TABLE_ALIAS_PREFIX
,
0
))
...
@@ -168,32 +168,36 @@ public class RedshiftQueryProvider extends QueryProvider {
...
@@ -168,32 +168,36 @@ public class RedshiftQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
,
customFilter
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
realSize
+
" offset "
+
(
page
-
1
)
*
pageSize
;
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
)
+
" LIMIT "
+
limit
+
" offset 0"
;
return
createQuerySQL
(
table
,
fields
,
isGroup
,
null
,
customFilter
)
+
" LIMIT "
+
limit
+
" offset 0"
;
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
)
+
" LIMIT "
+
limit
+
" offset 0"
;
return
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
)
+
" LIMIT "
+
limit
+
" offset 0"
;
}
}
@Override
@Override
...
...
backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java
浏览文件 @
e50158bc
...
@@ -86,7 +86,7 @@ public class SqlserverQueryProvider extends QueryProvider {
...
@@ -86,7 +86,7 @@ public class SqlserverQueryProvider extends QueryProvider {
}
}
@Override
@Override
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQuerySQL
(
String
table
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
SQLObj
tableObj
=
SQLObj
.
builder
()
SQLObj
tableObj
=
SQLObj
.
builder
()
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
SqlServerSQLConstants
.
KEYWORD_TABLE
,
table
))
.
tableName
((
table
.
startsWith
(
"("
)
&&
table
.
endsWith
(
")"
))
?
table
:
String
.
format
(
SqlServerSQLConstants
.
KEYWORD_TABLE
,
table
))
...
@@ -140,35 +140,39 @@ public class SqlserverQueryProvider extends QueryProvider {
...
@@ -140,35 +140,39 @@ public class SqlserverQueryProvider extends QueryProvider {
st_sql
.
add
(
"isGroup"
,
isGroup
);
st_sql
.
add
(
"isGroup"
,
isGroup
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
CollectionUtils
.
isNotEmpty
(
xFields
))
st_sql
.
add
(
"groups"
,
xFields
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
if
(
ObjectUtils
.
isNotEmpty
(
tableObj
))
st_sql
.
add
(
"table"
,
tableObj
);
List
<
SQLObj
>
customWheres
=
transCustomFilterList
(
tableObj
,
customFilter
);
List
<
SQLObj
>
wheres
=
new
ArrayList
<>();
if
(
customWheres
!=
null
)
wheres
.
addAll
(
customWheres
);
if
(
CollectionUtils
.
isNotEmpty
(
wheres
))
st_sql
.
add
(
"filters"
,
wheres
);
return
st_sql
.
render
();
return
st_sql
.
render
();
}
}
@Override
@Override
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
)
{
public
String
createQuerySQLAsTmp
(
String
sql
,
List
<
DatasetTableField
>
fields
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
);
return
createQuerySQL
(
"("
+
sqlFix
(
sql
)
+
")"
,
fields
,
isGroup
,
null
,
customFilter
);
}
}
@Override
@Override
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithPage
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
Integer
size
=
(
page
-
1
)
*
pageSize
+
realSize
;
Integer
size
=
(
page
-
1
)
*
pageSize
+
realSize
;
return
String
.
format
(
"SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP "
,
size
.
toString
(),
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
));
return
String
.
format
(
"SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP "
,
size
.
toString
(),
createQuerySQL
(
table
,
fields
,
isGroup
,
ds
,
customFilter
));
}
}
@Override
@Override
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
)
{
public
String
createQueryTableWithLimit
(
String
table
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
Datasource
ds
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
String
schema
=
new
Gson
().
fromJson
(
ds
.
getConfiguration
(),
JdbcConfiguration
.
class
).
getSchema
();
String
schema
=
new
Gson
().
fromJson
(
ds
.
getConfiguration
(),
JdbcConfiguration
.
class
).
getSchema
();
return
String
.
format
(
"SELECT top %s * from %s "
,
limit
.
toString
(),
schema
+
"."
+
table
);
return
String
.
format
(
"SELECT top %s * from %s "
,
limit
.
toString
(),
schema
+
"."
+
table
);
}
}
@Override
@Override
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
)
{
public
String
createQuerySQLWithPage
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
page
,
Integer
pageSize
,
Integer
realSize
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
Integer
size
=
(
page
-
1
)
*
pageSize
+
realSize
;
Integer
size
=
(
page
-
1
)
*
pageSize
+
realSize
;
return
String
.
format
(
"SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP "
,
size
.
toString
(),
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
));
return
String
.
format
(
"SELECT top %s * from ( %s ) AS DE_SQLSERVER_TMP "
,
size
.
toString
(),
createQuerySQLAsTmp
(
sql
,
fields
,
isGroup
,
customFilter
));
}
}
@Override
@Override
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
)
{
public
String
createQuerySqlWithLimit
(
String
sql
,
List
<
DatasetTableField
>
fields
,
Integer
limit
,
boolean
isGroup
,
List
<
ChartCustomFilterDTO
>
customFilter
)
{
return
String
.
format
(
"SELECT top %s * from ( %s ) as DE_SQLSERVER_TMP "
,
limit
.
toString
(),
sqlFix
(
sql
));
return
String
.
format
(
"SELECT top %s * from ( %s ) as DE_SQLSERVER_TMP "
,
limit
.
toString
(),
sqlFix
(
sql
));
}
}
...
...
backend/src/main/java/io/dataease/service/dataset/DataSetTableRowPermissionsService.java
0 → 100644
浏览文件 @
e50158bc
package
io
.
dataease
.
service
.
dataset
;
import
io.dataease.base.domain.DatasetRowPermissions
;
import
io.dataease.base.domain.DatasetRowPermissionsExample
;
import
io.dataease.base.mapper.DatasetRowPermissionsMapper
;
import
io.dataease.base.mapper.SysDeptMapper
;
import
io.dataease.base.mapper.SysRoleMapper
;
import
io.dataease.base.mapper.SysUserMapper
;
import
io.dataease.base.mapper.ext.ExtDataSetTableMapper
;
import
io.dataease.base.mapper.ext.query.GridExample
;
import
io.dataease.commons.utils.AuthUtils
;
import
io.dataease.controller.sys.base.BaseGridRequest
;
import
io.dataease.controller.sys.base.ConditionEntity
;
import
io.dataease.dto.dataset.DataSetRowPermissionsDTO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.UUID
;
@Service
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
class
DataSetTableRowPermissionsService
{
@Resource
private
ExtDataSetTableMapper
extDataSetTableMapper
;
@Resource
private
DatasetRowPermissionsMapper
datasetRowPermissionsMapper
;
@Resource
private
SysUserMapper
sysUserMapper
;
@Resource
private
SysRoleMapper
sysRoleMapper
;
@Resource
private
SysDeptMapper
sysDeptMapper
;
public
List
<
DataSetRowPermissionsDTO
>
searchRowPermissions
(
BaseGridRequest
request
,
String
datasetId
){
List
<
ConditionEntity
>
conditionEntities
=
request
.
getConditions
()
==
null
?
new
ArrayList
<>()
:
request
.
getConditions
();
ConditionEntity
entity
=
new
ConditionEntity
();
entity
.
setField
(
"dataset_row_permissions.dataset_id"
);
entity
.
setOperator
(
"eq"
);
entity
.
setValue
(
datasetId
);
conditionEntities
.
add
(
entity
);
request
.
setConditions
(
conditionEntities
);
GridExample
gridExample
=
request
.
convertExample
();
gridExample
.
setExtendCondition
(
AuthUtils
.
getUser
().
getUserId
().
toString
());
return
extDataSetTableMapper
.
searchRowPermissons
(
gridExample
);
}
public
List
<?
extends
Object
>
authObjs
(
DataSetRowPermissionsDTO
request
){
switch
(
request
.
getAuthTargetType
())
{
case
"user"
:
return
extDataSetTableMapper
.
searchAuthUsers
(
request
);
case
"role"
:
return
extDataSetTableMapper
.
searchAuthRoles
(
request
);
case
"dept"
:
return
extDataSetTableMapper
.
searchAuthDepts
(
request
);
default
:
return
new
ArrayList
<>();
}
}
public
void
save
(
DatasetRowPermissions
datasetRowPermissions
){
if
(
StringUtils
.
isEmpty
(
datasetRowPermissions
.
getId
())){
datasetRowPermissions
.
setId
(
UUID
.
randomUUID
().
toString
());
datasetRowPermissions
.
setUpdateTime
(
System
.
currentTimeMillis
());
datasetRowPermissionsMapper
.
insert
(
datasetRowPermissions
);
}
else
{
datasetRowPermissions
.
setUpdateTime
(
System
.
currentTimeMillis
());
datasetRowPermissionsMapper
.
updateByPrimaryKey
(
datasetRowPermissions
);
}
}
public
DataSetRowPermissionsDTO
dataSetRowPermissionInfo
(
DataSetRowPermissionsDTO
datasetRowPermissions
){
switch
(
datasetRowPermissions
.
getAuthTargetType
())
{
case
"user"
:
datasetRowPermissions
.
setAuthTargetName
(
Optional
.
ofNullable
(
sysUserMapper
.
selectByPrimaryKey
(
datasetRowPermissions
.
getAuthTargetId
())).
get
().
getUsername
());
break
;
case
"role"
:
datasetRowPermissions
.
setAuthTargetName
(
Optional
.
ofNullable
(
sysRoleMapper
.
selectByPrimaryKey
(
datasetRowPermissions
.
getAuthTargetId
())).
get
().
getName
());
break
;
case
"dept"
:
datasetRowPermissions
.
setAuthTargetName
(
Optional
.
ofNullable
(
sysDeptMapper
.
selectByPrimaryKey
(
datasetRowPermissions
.
getAuthTargetId
())).
get
().
getName
());
break
;
default
:
break
;
}
return
datasetRowPermissions
;
}
public
void
delete
(
String
id
){
datasetRowPermissionsMapper
.
deleteByPrimaryKey
(
id
);
}
public
List
<
DatasetRowPermissions
>
listDatasetRowPermissions
(
String
datasetId
,
List
<
Long
>
authTargetIds
,
String
authTargetType
){
if
(
CollectionUtils
.
isEmpty
(
authTargetIds
)){
return
new
ArrayList
<>();
}
DatasetRowPermissionsExample
example
=
new
DatasetRowPermissionsExample
();
example
.
createCriteria
().
andDatasetIdEqualTo
(
datasetId
).
andAuthTargetTypeEqualTo
(
authTargetType
).
andAuthTargetIdIn
(
authTargetIds
);
return
datasetRowPermissionsMapper
.
selectByExample
(
example
);
}
}
backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
浏览文件 @
e50158bc
差异被折叠。
点击展开。
backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java
浏览文件 @
e50158bc
...
@@ -5,6 +5,7 @@ import io.dataease.base.domain.DatasetTable;
...
@@ -5,6 +5,7 @@ import io.dataease.base.domain.DatasetTable;
import
io.dataease.base.domain.DatasetTableField
;
import
io.dataease.base.domain.DatasetTableField
;
import
io.dataease.base.domain.Datasource
;
import
io.dataease.base.domain.Datasource
;
import
io.dataease.commons.utils.CommonBeanFactory
;
import
io.dataease.commons.utils.CommonBeanFactory
;
import
io.dataease.dto.chart.ChartCustomFilterDTO
;
import
io.dataease.provider.datasource.DatasourceProvider
;
import
io.dataease.provider.datasource.DatasourceProvider
;
import
io.dataease.provider.ProviderFactory
;
import
io.dataease.provider.ProviderFactory
;
import
io.dataease.controller.request.datasource.DatasourceRequest
;
import
io.dataease.controller.request.datasource.DatasourceRequest
;
...
@@ -41,8 +42,6 @@ public class DirectFieldService implements DataSetFieldService {
...
@@ -41,8 +42,6 @@ public class DirectFieldService implements DataSetFieldService {
@Override
@Override
public
List
<
Object
>
fieldValues
(
String
fieldId
)
{
public
List
<
Object
>
fieldValues
(
String
fieldId
)
{
List
<
DatasetTableField
>
list
=
dataSetTableFieldsService
.
getListByIds
(
new
ArrayList
<
String
>()
{{
List
<
DatasetTableField
>
list
=
dataSetTableFieldsService
.
getListByIds
(
new
ArrayList
<
String
>()
{{
add
(
fieldId
);
add
(
fieldId
);
}});
}});
...
@@ -51,9 +50,14 @@ public class DirectFieldService implements DataSetFieldService {
...
@@ -51,9 +50,14 @@ public class DirectFieldService implements DataSetFieldService {
DatasetTableField
field
=
list
.
get
(
0
);
DatasetTableField
field
=
list
.
get
(
0
);
String
tableId
=
field
.
getTableId
();
String
tableId
=
field
.
getTableId
();
if
(
StringUtils
.
isEmpty
(
tableId
))
return
null
;
if
(
StringUtils
.
isEmpty
(
tableId
))
return
null
;
DatasetTable
datasetTable
=
dataSetTableService
.
get
(
tableId
);
DatasetTable
datasetTable
=
dataSetTableService
.
get
(
tableId
);
if
(
ObjectUtils
.
isEmpty
(
datasetTable
)
||
StringUtils
.
isEmpty
(
datasetTable
.
getName
()))
return
null
;
if
(
ObjectUtils
.
isEmpty
(
datasetTable
)
||
StringUtils
.
isEmpty
(
datasetTable
.
getName
()))
return
null
;
String
tableName
=
datasetTable
.
getName
();
String
tableName
;
DatasetTableField
datasetTableField
=
DatasetTableField
.
builder
().
tableId
(
tableId
).
checked
(
Boolean
.
TRUE
).
build
();
List
<
DatasetTableField
>
fields
=
dataSetTableFieldsService
.
list
(
datasetTableField
);
List
<
ChartCustomFilterDTO
>
customFilter
=
dataSetTableService
.
getCustomFilters
(
fields
,
datasetTable
);
DatasourceRequest
datasourceRequest
=
new
DatasourceRequest
();
DatasourceRequest
datasourceRequest
=
new
DatasourceRequest
();
DatasourceProvider
datasourceProvider
=
null
;
DatasourceProvider
datasourceProvider
=
null
;
...
@@ -67,14 +71,14 @@ public class DirectFieldService implements DataSetFieldService {
...
@@ -67,14 +71,14 @@ public class DirectFieldService implements DataSetFieldService {
QueryProvider
qp
=
ProviderFactory
.
getQueryProvider
(
ds
.
getType
());
QueryProvider
qp
=
ProviderFactory
.
getQueryProvider
(
ds
.
getType
());
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"db"
))
{
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"db"
))
{
datasourceRequest
.
setTable
(
dataTableInfoDTO
.
getTable
());
datasourceRequest
.
setTable
(
dataTableInfoDTO
.
getTable
());
datasourceRequest
.
setQuery
(
qp
.
createQuerySQL
(
dataTableInfoDTO
.
getTable
(),
Collections
.
singletonList
(
field
),
true
,
ds
));
datasourceRequest
.
setQuery
(
qp
.
createQuerySQL
(
dataTableInfoDTO
.
getTable
(),
Collections
.
singletonList
(
field
),
true
,
ds
,
customFilter
));
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"sql"
))
{
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"sql"
))
{
datasourceRequest
.
setQuery
(
qp
.
createQuerySQLAsTmp
(
dataTableInfoDTO
.
getSql
(),
Collections
.
singletonList
(
field
),
true
));
datasourceRequest
.
setQuery
(
qp
.
createQuerySQLAsTmp
(
dataTableInfoDTO
.
getSql
(),
Collections
.
singletonList
(
field
),
true
,
customFilter
));
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"custom"
))
{
}
else
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"custom"
))
{
DataTableInfoDTO
dt
=
new
Gson
().
fromJson
(
datasetTable
.
getInfo
(),
DataTableInfoDTO
.
class
);
DataTableInfoDTO
dt
=
new
Gson
().
fromJson
(
datasetTable
.
getInfo
(),
DataTableInfoDTO
.
class
);
List
<
DataSetTableUnionDTO
>
listUnion
=
dataSetTableUnionService
.
listByTableId
(
dt
.
getList
().
get
(
0
).
getTableId
());
List
<
DataSetTableUnionDTO
>
listUnion
=
dataSetTableUnionService
.
listByTableId
(
dt
.
getList
().
get
(
0
).
getTableId
());
String
sql
=
dataSetTableService
.
getCustomSQLDatasource
(
dt
,
listUnion
,
ds
);
String
sql
=
dataSetTableService
.
getCustomSQLDatasource
(
dt
,
listUnion
,
ds
);
datasourceRequest
.
setQuery
(
qp
.
createQuerySQLAsTmp
(
sql
,
Collections
.
singletonList
(
field
),
true
));
datasourceRequest
.
setQuery
(
qp
.
createQuerySQLAsTmp
(
sql
,
Collections
.
singletonList
(
field
),
true
,
customFilter
));
}
}
}
else
if
(
datasetTable
.
getMode
()
==
1
)
{
// 抽取
}
else
if
(
datasetTable
.
getMode
()
==
1
)
{
// 抽取
// 连接doris,构建doris数据源查询
// 连接doris,构建doris数据源查询
...
@@ -85,7 +89,7 @@ public class DirectFieldService implements DataSetFieldService {
...
@@ -85,7 +89,7 @@ public class DirectFieldService implements DataSetFieldService {
tableName
=
"ds_"
+
datasetTable
.
getId
().
replaceAll
(
"-"
,
"_"
);
tableName
=
"ds_"
+
datasetTable
.
getId
().
replaceAll
(
"-"
,
"_"
);
datasourceRequest
.
setTable
(
tableName
);
datasourceRequest
.
setTable
(
tableName
);
QueryProvider
qp
=
ProviderFactory
.
getQueryProvider
(
ds
.
getType
());
QueryProvider
qp
=
ProviderFactory
.
getQueryProvider
(
ds
.
getType
());
datasourceRequest
.
setQuery
(
qp
.
createQuerySQL
(
tableName
,
Collections
.
singletonList
(
field
),
true
,
null
));
datasourceRequest
.
setQuery
(
qp
.
createQuerySQL
(
tableName
,
Collections
.
singletonList
(
field
),
true
,
null
,
customFilter
));
}
}
try
{
try
{
...
...
backend/src/main/resources/db/migration/V28__de1.5.sql
浏览文件 @
e50158bc
...
@@ -16,3 +16,15 @@ CREATE TABLE `panel_link_mapping` (
...
@@ -16,3 +16,15 @@ CREATE TABLE `panel_link_mapping` (
`resource_id`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'仪表板ID'
,
`resource_id`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'仪表板ID'
,
PRIMARY
KEY
(
`id`
)
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
DEFAULT
CHARSET
=
utf8
;
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
DEFAULT
CHARSET
=
utf8
;
CREATE
TABLE
`dataset_row_permissions`
(
`id`
varchar
(
64
)
NOT
NULL
COMMENT
'File ID'
,
`auth_target_type`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'权限类型:组织/角色/用户'
,
`auth_target_id`
bigint
(
20
)
DEFAULT
NULL
COMMENT
'权限对象ID'
,
`dataset_id`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'数据集ID'
,
`dataset_field_id`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'数据集字段ID'
,
`filter`
longtext
DEFAULT
NULL
COMMENT
'数值'
,
`update_time`
bigint
(
13
)
NULL
DEFAULT
NULL
,
PRIMARY
KEY
(
`id`
)
);
\ No newline at end of file
backend/src/main/resources/generatorConfig.xml
浏览文件 @
e50158bc
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
<!--配置数据库连接的位置-->
<!--配置数据库连接的位置-->
<properties
url=
"file:///opt/dataease/conf/dataease.properties"
/>
<properties
url=
"file:///opt/dataease/conf/dataease.properties"
/>
<!-- 设置mysql驱动路径 -->
<!-- 设置mysql驱动路径 -->
<!--<classPathEntry location="/Users/liuruibin/.m2/repository/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar"/>-->
<!-- 此处指定生成针对MyBatis3的DAO -->
<!-- 此处指定生成针对MyBatis3的DAO -->
<context
id=
"mysql"
targetRuntime=
"MyBatis3"
>
<context
id=
"mysql"
targetRuntime=
"MyBatis3"
>
<!-- 字段带`,解决列表跟关键字冲突问题 -->
<!-- 字段带`,解决列表跟关键字冲突问题 -->
...
@@ -37,8 +36,6 @@
...
@@ -37,8 +36,6 @@
</commentGenerator>
</commentGenerator>
<!-- jdbc连接信息 -->
<!-- EduLoanManage EduTestDataBase -->
<!-- jdbc连接信息 -->
<!-- EduLoanManage EduTestDataBase -->
<!--<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.20.180:3306/fit2cloud"-->
<!--userId="root" password="Fit2cloud2015!" />-->
<jdbcConnection
driverClass=
"com.mysql.cj.jdbc.Driver"
<jdbcConnection
driverClass=
"com.mysql.cj.jdbc.Driver"
connectionURL=
"${spring.datasource.url}&nullCatalogMeansCurrent=true"
connectionURL=
"${spring.datasource.url}&nullCatalogMeansCurrent=true"
userId=
"${spring.datasource.username}"
password=
"${spring.datasource.password}"
/>
userId=
"${spring.datasource.username}"
password=
"${spring.datasource.password}"
/>
...
@@ -63,24 +60,9 @@
...
@@ -63,24 +60,9 @@
</javaClientGenerator>
</javaClientGenerator>
<!--要生成的数据库表 -->
<!--要生成的数据库表 -->
<table
tableName=
"dataset_row_permissions"
>
<columnOverride
column=
"filter"
javaType=
"java.lang.String"
jdbcType=
"VARCHAR"
/>
<!-- <table tableName="panel_link_jump"/>-->
</table>
<!-- <table tableName="panel_link_jump_info"/>-->
<!-- <table tableName="panel_link_jump_target_view_info"/>-->
<table
tableName=
"v_auth_model"
/>
<table
tableName=
"panel_link_mapping"
/>
<!-- <table tableName="sys_dict_item"/>-->
<!-- <table tableName="dataset_table_field"/>-->
<!-- <table tableName="v_chart">-->
<!-- </table>-->
<!-- <table tableName="v_auth_model">-->
<!-- </table>-->
<!-- <table tableName="v_dataset"/>-->
<!-- <table tableName="sys_auth_detail"/>-->
<!-- <table tableName="dataset_table_task">-->
<!-- <columnOverride column="extra_data" javaType="java.lang.String" jdbcType="VARCHAR" />-->
<!-- </table>-->
</context>
</context>
...
...
frontend/src/api/dataset/dataset.js
浏览文件 @
e50158bc
...
@@ -163,4 +163,13 @@ export function datasetTaskList(page, size, data, loading) {
...
@@ -163,4 +163,13 @@ export function datasetTaskList(page, size, data, loading) {
})
})
}
}
export
function
datasetRowPermissionsList
(
datasetId
,
page
,
size
,
data
,
loading
)
{
return
request
({
url
:
'/dataset/rowpermissions/pageList/'
+
datasetId
+
'/'
+
page
+
'/'
+
size
,
method
:
'post'
,
data
,
loading
:
loading
})
}
export
default
{
loadTable
,
getScene
,
addGroup
,
delGroup
,
addTable
,
delTable
,
groupTree
}
export
default
{
loadTable
,
getScene
,
addGroup
,
delGroup
,
addTable
,
delTable
,
groupTree
}
frontend/src/lang/zh.js
浏览文件 @
e50158bc
...
@@ -1155,7 +1155,15 @@ export default {
...
@@ -1155,7 +1155,15 @@ export default {
confirm_sync_field
:
'确认同步'
,
confirm_sync_field
:
'确认同步'
,
confirm_sync_field_tips
:
'同步字段可能会导致已编辑字段发生变更,请确认'
,
confirm_sync_field_tips
:
'同步字段可能会导致已编辑字段发生变更,请确认'
,
sync_success
:
'同步成功'
,
sync_success
:
'同步成功'
,
sync_success_1
:
'同步成功,请对当前数据集重新执行数据同步操作'
sync_success_1
:
'同步成功,请对当前数据集重新执行数据同步操作'
,
row_permission
:
{
type
:
'类型'
,
name
:
'名称'
,
condition
:
'条件'
,
value
:
'值'
,
add
:
'添加行权限'
,
edit
:
'编辑行权限'
}
},
},
datasource
:
{
datasource
:
{
datasource
:
'数据源'
,
datasource
:
'数据源'
,
...
...
frontend/src/views/chart/components/filter/QuotaFilterEditor.vue
浏览文件 @
e50158bc
...
@@ -54,16 +54,6 @@ export default {
...
@@ -54,16 +54,6 @@ export default {
label
:
this
.
$t
(
'chart.filter_not_eq'
)
label
:
this
.
$t
(
'chart.filter_not_eq'
)
}]
}]
},
},
// {
// label: '',
// options: [{
// value: 'like',
// label: this.$t('chart.filter_like')
// }, {
// value: 'not like',
// label: this.$t('chart.filter_not_like')
// }]
// },
{
{
label
:
''
,
label
:
''
,
options
:
[{
options
:
[{
...
...
frontend/src/views/dataset/data/RowPermissions.vue
浏览文件 @
e50158bc
差异被折叠。
点击展开。
frontend/src/views/dataset/data/ViewTable.vue
浏览文件 @
e50158bc
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
<union-view
:param=
"param"
:table=
"table"
/>
<union-view
:param=
"param"
:table=
"table"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
:label=
"$t('dataset.row_permissions')"
name=
"rowPermissions"
>
<el-tab-pane
:label=
"$t('dataset.row_permissions')"
name=
"rowPermissions"
>
<row-permissions
:param=
"param"
:table=
"table"
/>
<row-permissions
v-if=
"tabActive=='rowPermissions'"
:param=
"param"
:table=
"table"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
v-if=
"table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql')"
:label=
"$t('dataset.update_info')"
name=
"updateInfo"
>
<el-tab-pane
v-if=
"table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql')"
:label=
"$t('dataset.update_info')"
name=
"updateInfo"
>
<update-info
v-if=
"tabActive=='updateInfo'"
:param=
"param"
:table=
"table"
/>
<update-info
v-if=
"tabActive=='updateInfo'"
:param=
"param"
:table=
"table"
/>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论