Merge branch 'dev' into pr@dev_memory_component

This commit is contained in:
dataeaseShu 2023-03-30 13:58:24 +08:00
commit 4c0d2b0820
15 changed files with 2802 additions and 2776 deletions

View File

@ -1,9 +1,12 @@
package io.dataease.controller.panel; package io.dataease.controller.panel;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DePermission; import io.dataease.auth.annotation.DePermission;
import io.dataease.auth.annotation.DePermissionProxy; import io.dataease.auth.annotation.DePermissionProxy;
import io.dataease.auth.annotation.DePermissions; import io.dataease.auth.annotation.DePermissions;
import io.dataease.auth.filter.F2CLinkFilter;
import io.dataease.auth.service.impl.ExtAuthServiceImpl; import io.dataease.auth.service.impl.ExtAuthServiceImpl;
import io.dataease.commons.constants.DePermissionType; import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.PanelConstants; import io.dataease.commons.constants.PanelConstants;
@ -21,9 +24,12 @@ import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.Logical;
import org.pentaho.di.core.util.UUIDUtil; import org.pentaho.di.core.util.UUIDUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -141,6 +147,12 @@ public class PanelGroupController {
@PostMapping("/exportDetails") @PostMapping("/exportDetails")
@I18n @I18n
public void exportDetails(@RequestBody PanelViewDetailsRequest request, HttpServletResponse response) throws IOException { public void exportDetails(@RequestBody PanelViewDetailsRequest request, HttpServletResponse response) throws IOException {
HttpServletRequest httpServletRequest = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String linkToken = httpServletRequest.getHeader(F2CLinkFilter.LINK_TOKEN_KEY);
DecodedJWT jwt = JWT.decode(linkToken);
Long userId = jwt.getClaim("userId").asLong();
request.setUserId(userId);
panelGroupService.exportPanelViewDetails(request, response); panelGroupService.exportPanelViewDetails(request, response);
} }

View File

@ -40,4 +40,6 @@ public class PanelViewDetailsRequest {
@ApiModelProperty(hidden = true) @ApiModelProperty(hidden = true)
private PermissionProxy proxy; private PermissionProxy proxy;
private Long userId;
} }

View File

@ -147,7 +147,7 @@ public class DataSetTableService {
public static final String regex = "\\$\\{(.*?)\\}"; public static final String regex = "\\$\\{(.*?)\\}";
private static final String SubstitutedParams = "DATAEASE_PATAMS_BI"; private static final String SubstitutedParams = "DATAEASE_PATAMS_BI";
private static final String SubstitutedSql = " 'BI' = 'BI' "; private static final String SubstitutedSql = " 'BI' = 'BI' ";
private static final String SubstitutedSqlVirtualData = " 1 < 2 "; private static final String SubstitutedSqlVirtualData = " 1 > 2 ";
@Value("${upload.file.path}") @Value("${upload.file.path}")
private String path; private String path;
@ -1272,7 +1272,7 @@ public class DataSetTableService {
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(ds); datasourceRequest.setDatasource(ds);
sql = realData ? handleVariableDefaultValue(sql, dataSetTableRequest.getSqlVariableDetails(), ds.getType(), true) : removeVariables(sql, ds.getType()).replaceAll(SubstitutedSql, SubstitutedSqlVirtualData); sql = realData ? handleVariableDefaultValue(sql, dataSetTableRequest.getSqlVariableDetails(), ds.getType(), true) : removeVariables(sql, ds.getType()).replaceAll(SubstitutedSql.trim(), SubstitutedSqlVirtualData);
if (StringUtils.isEmpty(sql)) { if (StringUtils.isEmpty(sql)) {
DataEaseException.throwException(Translator.get("i18n_sql_not_empty")); DataEaseException.throwException(Translator.get("i18n_sql_not_empty"));
} }
@ -1942,7 +1942,7 @@ public class DataSetTableService {
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
DataTableInfoDTO dataTableInfo = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class); DataTableInfoDTO dataTableInfo = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
String sql = dataTableInfo.isBase64Encryption() ? new String(java.util.Base64.getDecoder().decode(dataTableInfo.getSql())) : dataTableInfo.getSql(); String sql = dataTableInfo.isBase64Encryption() ? new String(java.util.Base64.getDecoder().decode(dataTableInfo.getSql())) : dataTableInfo.getSql();
sql = removeVariables(sql, ds.getType()).replaceAll(SubstitutedSql, SubstitutedSqlVirtualData); sql = removeVariables(sql, ds.getType()).replaceAll(SubstitutedSql.trim(), SubstitutedSqlVirtualData);
String sqlAsTable = qp.createSQLPreview(sql, null); String sqlAsTable = qp.createSQLPreview(sql, null);
datasourceRequest.setQuery(sqlAsTable); datasourceRequest.setQuery(sqlAsTable);
fields = datasourceProvider.fetchResultField(datasourceRequest); fields = datasourceProvider.fetchResultField(datasourceRequest);

View File

@ -1161,6 +1161,8 @@ public class PanelGroupService {
componentFilterInfo.setGoPage(1l); componentFilterInfo.setGoPage(1l);
componentFilterInfo.setPageSize(1000000l); componentFilterInfo.setPageSize(1000000l);
componentFilterInfo.setExcelExportFlag(true); componentFilterInfo.setExcelExportFlag(true);
componentFilterInfo.setProxy(request.getProxy());
componentFilterInfo.setUser(request.getUserId());
ChartViewDTO chartViewInfo = chartViewService.getData(request.getViewId(), componentFilterInfo); ChartViewDTO chartViewInfo = chartViewService.getData(request.getViewId(), componentFilterInfo);
List<Map> tableRow = (List) chartViewInfo.getData().get("tableRow"); List<Map> tableRow = (List) chartViewInfo.getData().get("tableRow");
List<Object[]> result = new ArrayList<>(); List<Object[]> result = new ArrayList<>();

View File

@ -0,0 +1,4 @@
UPDATE `my_plugin`
SET `version` = '1.18.6'
where `plugin_id` > 0
and `version` = '1.18.5';

View File

@ -1,6 +1,6 @@
{ {
"name": "dataease", "name": "dataease",
"version": "1.18.5", "version": "1.18.6",
"description": "dataease front", "description": "dataease front",
"private": true, "private": true,
"scripts": { "scripts": {

View File

@ -373,7 +373,12 @@ export function insertBatchTreeNode(nodeInfoArray, tree) {
} }
} }
export function updateCacheTree(opt, treeName, nodeInfo, tree) { export function updateCacheTree(opt, treeName, nodeInfoFull, tree) {
const nodeInfo = {
...nodeInfoFull,
panelData: null,
panelStyle: null
}
if (opt === 'new' || opt === 'copy') { if (opt === 'new' || opt === 'copy') {
insertTreeNode(nodeInfo, tree) insertTreeNode(nodeInfo, tree)
} else if (opt === 'move') { } else if (opt === 'move') {

View File

@ -607,7 +607,8 @@ export default {
oidc: 'OIDC Setting', oidc: 'OIDC Setting',
theme: 'Theme Setting', theme: 'Theme Setting',
cas: 'CAS Setting', cas: 'CAS Setting',
map: 'MAP Setting' map: 'MAP Setting',
select_left: 'Please select a region on the left'
}, },
license: { license: {
i18n_no_license_record: 'No License Record', i18n_no_license_record: 'No License Record',

View File

@ -607,7 +607,8 @@ export default {
oidc: 'OIDC設置', oidc: 'OIDC設置',
theme: '主題設置', theme: '主題設置',
cas: 'CAS設置', cas: 'CAS設置',
map: '地圖設置' map: '地圖設置',
select_left: '請在左側選擇區域'
}, },
license: { license: {
i18n_no_license_record: '沒有 License 記錄', i18n_no_license_record: '沒有 License 記錄',

View File

@ -608,7 +608,8 @@ export default {
oidc: 'OIDC设置', oidc: 'OIDC设置',
theme: '主题设置', theme: '主题设置',
cas: 'CAS设置', cas: 'CAS设置',
map: '地图设置' map: '地图设置',
select_left: '请在左侧选择区域'
}, },
license: { license: {
i18n_no_license_record: '没有 License 记录', i18n_no_license_record: '没有 License 记录',

View File

@ -138,7 +138,7 @@
<el-empty <el-empty
v-else-if="status === 'empty'" v-else-if="status === 'empty'"
description="请在左侧选择区域" :description="$t('sysParams.select_left')"
/> />
</div> </div>
</template> </template>

View File

@ -1,6 +1,6 @@
{ {
"name": "dataease-mobile", "name": "dataease-mobile",
"version": "1.18.5", "version": "1.18.6",
"private": true, "private": true,
"scripts": { "scripts": {
"serve": "npm run dev:h5", "serve": "npm run dev:h5",

View File

@ -16,7 +16,7 @@
</parent> </parent>
<properties> <properties>
<dataease.version>1.18.5</dataease.version> <dataease.version>1.18.6</dataease.version>
</properties> </properties>
<name>dataease</name> <name>dataease</name>