diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.java index 82667c44a0..d35a55d2fd 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.java @@ -45,4 +45,7 @@ public interface ExtChartViewMapper { void copyCacheToView(@Param("viewIds") List viewIds ); + int updateToCache(@Param("viewId") String viewId ); + + void copyCache(@Param("sourceViewId") String sourceViewId,@Param("newViewId") String newViewId); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml index 7a638314fa..531b19914b 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtChartViewMapper.xml @@ -89,6 +89,69 @@ chart_view.id = #{id} + + INSERT INTO chart_view_cache ( + id, + `name`, + title, + scene_id, + table_id, + `type`, + render, + result_count, + result_mode, + create_by, + create_time, + update_time, + style_priority, + chart_type, + is_plugin, + x_axis, + x_axis_ext, + y_axis, + y_axis_ext, + ext_stack, + ext_bubble, + custom_attr, + custom_style, + custom_filter, + drill_fields, + senior, + SNAPSHOT, + data_from + ) SELECT + #{newViewId} as id, + `name`, + title, + scene_id, + table_id, + `type`, + render, + result_count, + result_mode, + create_by, + create_time, + update_time, + style_priority, + chart_type, + is_plugin, + x_axis, + x_axis_ext, + y_axis, + y_axis_ext, + ext_stack, + ext_bubble, + custom_attr, + custom_style, + custom_filter, + drill_fields, + senior, + SNAPSHOT, + data_from from chart_view_cache + WHERE + chart_view_cache.id = #{sourceViewId} + + @@ -200,8 +263,8 @@ `custom_filter`, `drill_fields`, `create_by`, - `create_time`, - `update_time`, + unix_timestamp()*1000 as `create_time`, + unix_timestamp()*1000 as `update_time`, `snapshot`, `style_priority`, `ext_stack`, @@ -404,4 +467,37 @@ #{viewId} + + + UPDATE chart_view_cache cv, + chart_view cve + SET cv.`name` = cve.`name`, + cv.title = cve.title, + cv.scene_id = cve.scene_id, + cv.table_id = cve.table_id, + cv.`type` = cve.`type`, + cv.render = cve.render, + cv.result_count = cve.result_count, + cv.result_mode = cve.result_mode, + cv.create_by = cve.create_by, + cv.create_time = cve.create_time, + cv.update_time = cve.update_time, + cv.style_priority = cve.style_priority, + cv.chart_type = cve.chart_type, + cv.is_plugin = cve.is_plugin, + cv.x_axis = cve.x_axis, + cv.x_axis_ext = cve.x_axis_ext, + cv.y_axis = cve.y_axis, + cv.y_axis_ext = cve.y_axis_ext, + cv.ext_stack = cve.ext_stack, + cv.ext_bubble = cve.ext_bubble, + cv.custom_attr = cve.custom_attr, + cv.custom_style = cve.custom_style, + cv.custom_filter = cve.custom_filter, + cv.drill_fields = cve.drill_fields, + cv.senior = cve.senior, + cv.SNAPSHOT = cve.SNAPSHOT, + cv.data_from = cve.data_from + where cve.id = cv.id and cv.id =#{viewId} + diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.java index d0018e5069..ccfc9857f2 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.java @@ -5,8 +5,8 @@ import org.apache.ibatis.annotations.Param; public interface ExtSysAuthMapper { - Boolean checkTreeNoManageCount(@Param("userId") Long userId , @Param("modelType") String modelType, @Param("nodeId") String nodeId); - + Boolean checkTreeNoManageCount(@Param("userId") Long userId, @Param("modelType") String modelType, @Param("nodeId") String nodeId); + String copyAuth(@Param("authSource") String authSource, @Param("authSourceType") String authSourceType, @Param("authUser") String authUser); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.xml index 7386356dfe..16a50c7997 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysAuthMapper.xml @@ -14,4 +14,8 @@ select if(CHECK_TREE_NO_MANAGE_PRIVILEGE(#{userId},#{modelType},#{nodeId})>0,1,0) + + diff --git a/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java b/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java new file mode 100644 index 0000000000..a541e0f488 --- /dev/null +++ b/backend/src/main/java/io/dataease/commons/constants/SysAuthConstants.java @@ -0,0 +1,16 @@ +package io.dataease.commons.constants; + +/** + * Author: wangjiahao + * Date: 2022/4/2 + * Description: + */ +public class SysAuthConstants { + + public final static String AUTH_SOURCE_TYPE_PANEL = "panel"; + + public final static String AUTH_SOURCE_TYPE_DATASET = "dataset"; + + public final static String AUTH_SOURCE_TYPE_DATASOURCE = "link"; + +} diff --git a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java index 2f1bd97c90..e23370eb14 100644 --- a/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java +++ b/backend/src/main/java/io/dataease/controller/chart/ChartViewController.java @@ -13,6 +13,7 @@ import io.dataease.controller.request.chart.ChartViewCacheRequest; import io.dataease.controller.request.chart.ChartViewRequest; import io.dataease.controller.response.ChartDetail; import io.dataease.dto.chart.ChartViewDTO; +import io.dataease.service.chart.ChartViewCacheService; import io.dataease.service.chart.ChartViewService; import io.dataease.service.panel.PanelViewService; import io.swagger.annotations.Api; @@ -34,8 +35,9 @@ import java.util.List; public class ChartViewController { @Resource private ChartViewService chartViewService; + @Resource - private PanelViewService panelViewService; + private ChartViewCacheService chartViewCacheService; @DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANNEL_LEVEL_MANAGE) @ApiOperation("保存") @@ -150,7 +152,7 @@ public class ChartViewController { @ApiOperation("重置视图缓存") @PostMapping("/resetViewCache/{id}/{panelId}") public void resetViewCache(@PathVariable String id, @PathVariable String panelId) { - chartViewService.resetViewCache(id); + chartViewCacheService.refreshCache(id); } } diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewCacheService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewCacheService.java new file mode 100644 index 0000000000..07426943e3 --- /dev/null +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewCacheService.java @@ -0,0 +1,28 @@ +package io.dataease.service.chart; + +import io.dataease.base.mapper.ChartViewCacheMapper; +import io.dataease.base.mapper.ext.ExtChartViewMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * Author: wangjiahao + * Date: 2022/4/2 + * Description: + */ +@Service +public class ChartViewCacheService { + + @Resource + private ExtChartViewMapper extChartViewMapper; + + @Transactional + public void refreshCache(String viewId){ + if(extChartViewMapper.updateToCache(viewId)==0){ + extChartViewMapper.copyToCache(viewId); + } + } + +} diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index b57e8c0d8d..8b17f545af 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -97,6 +97,8 @@ public class ChartViewService { private PanelGroupExtendDataService extendDataService; @Resource private ExtPanelGroupExtendDataMapper extPanelGroupExtendDataMapper; + @Resource + private ChartViewCacheService chartViewCacheService; //默认使用非公平 @@ -130,7 +132,7 @@ public class ChartViewService { chartView.setUpdateTime(timestamp); chartViewMapper.insertSelective(chartView); // 新建的视图也存入缓存表中 - extChartViewMapper.copyToCache(chartView.getId()); + chartViewCacheService.refreshCache(chartView.getId()); PanelView newPanelView = new PanelView(); newPanelView.setId(UUIDUtil.getUUIDAsString()); @@ -154,27 +156,6 @@ public class ChartViewService { }); } - -// // 直接保存统一到缓存表 -// public ChartViewWithBLOBs save(ChartViewRequest chartView) { -// checkName(chartView); -// long timestamp = System.currentTimeMillis(); -// chartView.setUpdateTime(timestamp); -// if (ObjectUtils.isEmpty(chartView.getId())) { -// chartView.setId(UUID.randomUUID().toString()); -// chartView.setCreateBy(AuthUtils.getUser().getUsername()); -// chartView.setCreateTime(timestamp); -// chartView.setUpdateTime(timestamp); -// chartViewMapper.insertSelective(chartView); -// } else { -// chartViewMapper.updateByPrimaryKeySelective(chartView); -// } -// Optional.ofNullable(chartView.getId()).ifPresent(id -> { -// CacheUtils.remove(JdbcConstants.VIEW_CACHE_KEY, id); -// }); -// return getOneWithPermission(chartView.getId()); -// } - public List list(ChartViewRequest chartViewRequest) { chartViewRequest.setUserId(String.valueOf(AuthUtils.getUser().getUserId())); return extChartViewMapper.search(chartViewRequest); @@ -268,7 +249,7 @@ public class ChartViewService { //仪表板编辑页面 从缓存表中取数据 缓存表中没有数据则进行插入 result = extChartViewMapper.searchOneFromCache(id); if (result == null) { - extChartViewMapper.copyToCache(id); + chartViewCacheService.refreshCache(id); result = extChartViewMapper.searchOneFromCache(id); } } else { @@ -1047,8 +1028,9 @@ public class ChartViewService { public String chartCopy(String id, String panelId) { String newChartId = UUID.randomUUID().toString(); extChartViewMapper.chartCopy(newChartId, id, panelId); + extChartViewMapper.copyCache(id,newChartId); extPanelGroupExtendDataMapper.copyExtendData(id,newChartId,panelId); - extChartViewMapper.copyToCache(newChartId); + chartViewCacheService.refreshCache(id); return newChartId; } @@ -1082,9 +1064,4 @@ public class ChartViewService { extChartViewMapper.deleteCacheWithPanel(panelId); } - public void resetViewCache(String viewId) { - extChartViewMapper.deleteViewCache(viewId); - - extChartViewMapper.copyToCache(viewId); - } } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java index 1b07685c82..cdc13d7d74 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetGroupService.java @@ -7,6 +7,7 @@ import io.dataease.base.mapper.DatasetGroupMapper; import io.dataease.base.mapper.ext.ExtDataSetGroupMapper; import io.dataease.commons.constants.AuthConstants; import io.dataease.commons.constants.DePermissionType; +import io.dataease.commons.constants.SysAuthConstants; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.TreeUtils; @@ -54,8 +55,10 @@ public class DataSetGroupService { datasetGroup.setCreateBy(AuthUtils.getUser().getUsername()); datasetGroup.setCreateTime(System.currentTimeMillis()); datasetGroupMapper.insert(datasetGroup); + String userName = AuthUtils.getUser().getUsername(); // 清理权限缓存 CacheUtils.removeAll(AuthConstants.USER_PERMISSION_CACHE_NAME); + sysAuthService.copyAuth(datasetGroup.getId(), SysAuthConstants.AUTH_SOURCE_TYPE_DATASET); } else { datasetGroupMapper.updateByPrimaryKeySelective(datasetGroup); } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 48cf75ce9d..f4ae1d03d2 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -33,6 +33,7 @@ import io.dataease.provider.datasource.JdbcProvider; import io.dataease.provider.DDLProvider; import io.dataease.provider.QueryProvider; import io.dataease.service.engine.EngineService; +import io.dataease.service.sys.SysAuthService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -102,6 +103,8 @@ public class DataSetTableService { private PermissionService permissionService; @Resource private EngineService engineService; + @Resource + private SysAuthService sysAuthService; private static boolean isUpdatingDatasetTableStatus = false; private static final String lastUpdateTime = "${__last_update_time__}"; @@ -261,6 +264,10 @@ public class DataSetTableService { datasetTable.setCreateBy(AuthUtils.getUser().getUsername()); datasetTable.setCreateTime(System.currentTimeMillis()); int insert = datasetTableMapper.insert(datasetTable); + // 清理权限缓存 + CacheUtils.removeAll(AuthConstants.USER_PERMISSION_CACHE_NAME); + sysAuthService.copyAuth(datasetTable.getId(), SysAuthConstants.AUTH_SOURCE_TYPE_DATASET); + // 添加表成功后,获取当前表字段和类型,抽象到dataease数据库 if (insert == 1) { saveTableField(datasetTable); diff --git a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java index ee31edf8c3..4d20e3c26b 100644 --- a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -11,6 +11,7 @@ import io.dataease.base.mapper.DatasourceMapper; import io.dataease.base.mapper.ext.ExtDataSourceMapper; import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.commons.constants.DePermissionType; +import io.dataease.commons.constants.SysAuthConstants; import io.dataease.commons.exception.DEException; import io.dataease.commons.model.AuthURD; import io.dataease.commons.utils.AuthUtils; @@ -34,6 +35,7 @@ import io.dataease.provider.datasource.ApiProvider; import io.dataease.provider.datasource.DatasourceProvider; import io.dataease.service.dataset.DataSetGroupService; import io.dataease.service.message.DeMsgutil; +import io.dataease.service.sys.SysAuthService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -57,6 +59,8 @@ public class DatasourceService { private DataSetGroupService dataSetGroupService; @Resource private CommonThreadPool commonThreadPool; + @Resource + private SysAuthService sysAuthService; private static List dsTypes = Arrays.asList("TiDB", "StarRocks", "excel", "mysql", "hive", "impala", "mariadb", "ds_doris", "pg", "sqlServer", "oracle", "mongo", "ck", "db2", "es", "redshift", "api"); @DeCleaner(DePermissionType.DATASOURCE) @@ -73,6 +77,7 @@ public class DatasourceService { checkAndUpdateDatasourceStatus(datasource); datasourceMapper.insertSelective(datasource); handleConnectionPool(datasource, "add"); + sysAuthService.copyAuth(datasource.getId(), SysAuthConstants.AUTH_SOURCE_TYPE_DATASOURCE); return datasource; } diff --git a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java index 1f1c51a8f0..f9f869f5fa 100644 --- a/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java +++ b/backend/src/main/java/io/dataease/service/panel/PanelGroupService.java @@ -6,10 +6,7 @@ import io.dataease.auth.annotation.DeCleaner; import io.dataease.base.domain.*; import io.dataease.base.mapper.*; import io.dataease.base.mapper.ext.*; -import io.dataease.commons.constants.AuthConstants; -import io.dataease.commons.constants.CommonConstants; -import io.dataease.commons.constants.DePermissionType; -import io.dataease.commons.constants.PanelConstants; +import io.dataease.commons.constants.*; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.LogUtil; import io.dataease.commons.utils.TreeUtils; @@ -31,6 +28,7 @@ import io.dataease.service.dataset.DataSetTableService; import io.dataease.service.sys.SysAuthService; import io.swagger.annotations.ApiModelProperty; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.pentaho.di.core.util.UUIDUtil; import org.slf4j.Logger; @@ -94,7 +92,6 @@ public class PanelGroupService { @Resource private ExtPanelGroupExtendDataMapper extPanelGroupExtendDataMapper; - public List tree(PanelGroupRequest panelGroupRequest) { String userId = String.valueOf(AuthUtils.getUser().getUserId()); panelGroupRequest.setUserId(userId); @@ -110,22 +107,21 @@ public class PanelGroupService { } @DeCleaner(DePermissionType.PANEL) -// @Transactional public PanelGroup saveOrUpdate(PanelGroupRequest request) { + String userName = AuthUtils.getUser().getUsername(); String panelId = request.getId(); if(StringUtils.isNotEmpty(panelId)){ panelViewService.syncPanelViews(request); } - if (StringUtils.isEmpty(panelId)) { - // 新建 + if (StringUtils.isEmpty(panelId)) { // 新建 checkPanelName(request.getName(), request.getPid(), PanelConstants.OPT_TYPE_INSERT, null, request.getNodeType()); panelId = newPanel(request); panelGroupMapper.insert(request); // 清理权限缓存 clearPermissionCache(); - } else if ("toDefaultPanel".equals(request.getOptType())) { + sysAuthService.copyAuth(panelId, SysAuthConstants.AUTH_SOURCE_TYPE_PANEL); + } else if ("toDefaultPanel".equals(request.getOptType())) { // 转存为默认仪表板 panelId = UUID.randomUUID().toString(); - // 转存为默认仪表板 PanelGroupWithBLOBs newDefaultPanel = panelGroupMapper.selectByPrimaryKey(request.getId()); newDefaultPanel.setPanelType(PanelConstants.PANEL_TYPE_SYSTEM); newDefaultPanel.setNodeType(PanelConstants.PANEL_NODE_TYPE_PANEL); @@ -139,10 +135,12 @@ public class PanelGroupService { panelGroupMapper.insertSelective(newDefaultPanel); // 清理权限缓存 clearPermissionCache(); + sysAuthService.copyAuth(panelId, SysAuthConstants.AUTH_SOURCE_TYPE_PANEL); } else if ("copy".equals(request.getOptType())) { panelId = this.panelGroupCopy(request, null, true); // 清理权限缓存 clearPermissionCache(); + sysAuthService.copyAuth(panelId, SysAuthConstants.AUTH_SOURCE_TYPE_PANEL); } else if ("move".equals(request.getOptType())) { PanelGroupWithBLOBs panelInfo = panelGroupMapper.selectByPrimaryKey(request.getId()); if (panelInfo.getPid().equalsIgnoreCase(request.getPid())) { @@ -447,5 +445,4 @@ public class PanelGroupService { CacheUtils.removeAll(AuthConstants.DEPT_PANEL_NAME); } - } diff --git a/backend/src/main/java/io/dataease/service/sys/SysAuthService.java b/backend/src/main/java/io/dataease/service/sys/SysAuthService.java index 43478aaa32..f2d440b67c 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysAuthService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysAuthService.java @@ -20,4 +20,9 @@ public class SysAuthService { } } + public void copyAuth(String authSource,String authSourceType){ + String userName = AuthUtils.getUser().getUsername(); + extSysAuthMapper.copyAuth(authSource,authSourceType,userName); + } + } diff --git a/backend/src/main/resources/db/migration/V33__1.9.sql b/backend/src/main/resources/db/migration/V33__1.9.sql index 8a7956f258..8cc46a3726 100644 --- a/backend/src/main/resources/db/migration/V33__1.9.sql +++ b/backend/src/main/resources/db/migration/V33__1.9.sql @@ -101,9 +101,7 @@ ADD COLUMN `copy_from` varchar(255) NULL COMMENT '复制来源' AFTER `update_ti ADD COLUMN `copy_id` varchar(255) NULL COMMENT '复制ID' AFTER `copy_from`; --- ---------------------------- --- Function structure for copy_auth --- ---------------------------- + DROP FUNCTION IF EXISTS `copy_auth`; delimiter ;; CREATE FUNCTION `copy_auth`(authSource varchar(255),authSourceType varchar(255),authUser varchar(255)) @@ -130,25 +128,25 @@ select id from sys_auth where sys_auth.auth_source=authSource and sys_auth.auth delete from sys_auth where sys_auth.auth_source=authSource and sys_auth.auth_source_type=authSourceType; INSERT INTO sys_auth ( - id, - auth_source, - auth_source_type, - auth_target, - auth_target_type, - auth_time, - auth_user + id, + auth_source, + auth_source_type, + auth_target, + auth_target_type, + auth_time, + auth_user ) VALUES - ( - authId, - authSource, - authSourceType, - userId, - 'user', - unix_timestamp( - now())* 1000,'auto'); + ( + authId, + authSource, + authSourceType, + userId, + 'user', + unix_timestamp( + now())* 1000,'auto'); - INSERT INTO sys_auth_detail ( + INSERT INTO sys_auth_detail ( id, auth_id, privilege_name, @@ -175,50 +173,52 @@ VALUES insert into sys_auth( id, - auth_source, - auth_source_type, - auth_target, - auth_target_type, - auth_time, - auth_user, - copy_from, - copy_id + auth_source, + auth_source_type, + auth_target, + auth_target_type, + auth_time, + auth_user, + copy_from, + copy_id ) SELECT - uuid() as id, - authSource as auth_source, - authSourceType as auth_source_type, - auth_target, - auth_target_type, - NOW()* 1000 as auth_time, - 'auto' as auth_user, - id as copy_from, - copyId as copy_id + uuid() as id, + authSource as auth_source, + authSourceType as auth_source_type, + auth_target, + auth_target_type, + NOW()* 1000 as auth_time, + 'auto' as auth_user, + id as copy_from, + copyId as copy_id FROM - sys_auth + sys_auth WHERE - auth_source IN ( - SELECT - pid - FROM - v_auth_model - WHERE - id = authSource - AND model_type = authSourceType - ) - AND auth_source_type = authSourceType; + auth_source = ( + SELECT + pid + FROM + v_auth_model + WHERE + id = authSource + AND model_type = authSourceType + ) + AND auth_source_type = authSourceType + and concat(auth_target,'-',auth_target_type) !=CONCAT(userId,'-','user'); + INSERT INTO sys_auth_detail ( - id, - auth_id, - privilege_name, - privilege_type, - privilege_value, - privilege_extend, - remark, - create_user, - create_time, - copy_from, - copy_id + id, + auth_id, + privilege_name, + privilege_type, + privilege_value, + privilege_extend, + remark, + create_user, + create_time, + copy_from, + copy_id ) SELECT uuid() AS id, sa_copy.t_id AS auth_id, @@ -233,16 +233,38 @@ now())* 1000 AS create_time, id AS copy_from, copyId AS copy_id FROM - sys_auth_detail - INNER JOIN ( - SELECT - id AS t_id, - copy_from AS s_id - FROM - sys_auth - WHERE - copy_id = copyId - ) sa_copy ON sys_auth_detail.auth_id = sa_copy.s_id; + sys_auth_detail + INNER JOIN ( + SELECT + id AS t_id, + copy_from AS s_id + FROM + sys_auth + WHERE + copy_id = copyId + ) sa_copy ON sys_auth_detail.auth_id = sa_copy.s_id; + +RETURN 'success'; + +END +;; +delimiter ; + +-- ---------------------------- +-- Function structure for delete_auth_source +-- ---------------------------- +DROP FUNCTION IF EXISTS `delete_auth_source`; +delimiter ;; +CREATE FUNCTION `delete_auth_source`(authSource varchar(255),authSourceType varchar(255)) + RETURNS varchar(255) CHARSET utf8mb4 + READS SQL DATA +BEGIN + +delete from sys_auth_detail where auth_id in ( +select id from sys_auth where sys_auth.auth_source=authSource and sys_auth.auth_source_type=authSourceType +); + +delete from sys_auth where sys_auth.auth_source=authSource and sys_auth.auth_source_type=authSourceType; RETURN 'success'; @@ -336,3 +358,8 @@ CREATE TABLE `panel_outer_params_target_view_info` ( SET FOREIGN_KEY_CHECKS = 1; update `my_plugin` set `name` = 'X-Pack默认插件' where `plugin_id` = 1; update `my_plugin` set `module_name` = 'view-bubblemap-backend' where `plugin_id` = 2; + +DROP TRIGGER `new_auth_panel`; +DROP TRIGGER `new_auth_dataset_group`; +DROP TRIGGER `new_auth_dataset_table`; +DROP TRIGGER `new_auth_link`; diff --git a/frontend/src/components/canvas/components/TextAttr.vue b/frontend/src/components/canvas/components/TextAttr.vue index ec18af4c13..8b3c8d8278 100644 --- a/frontend/src/components/canvas/components/TextAttr.vue +++ b/frontend/src/components/canvas/components/TextAttr.vue @@ -244,8 +244,6 @@ export default { 'picture-add': [ 'borderStyle', 'borderWidth', - 'borderRadius', - 'opacity', 'borderColor', 'hyperlinks' ], @@ -254,15 +252,12 @@ export default { 'fontSize', 'fontWeight', 'letterSpacing', - 'color', - 'backgroundColor' + 'color' ], // tab组件显示的属性 'de-tabs': [ 'borderStyle', 'borderWidth', - 'borderRadius', - 'opacity', 'borderColor', 'deTabStyle' ], @@ -270,20 +265,14 @@ export default { 'rect-shape': [ 'borderStyle', 'borderWidth', - 'borderRadius', - 'opacity', - 'borderColor', - 'backgroundColor' + 'borderColor' ], // 时间组件显示的属性 'de-show-date': [ 'textAlign', 'fontSize', 'fontWeight', - 'opacity', - 'borderRadius', 'color', - 'backgroundColor', 'date-format', 'time_margin', 'padding' @@ -295,10 +284,7 @@ export default { 'fontSize', 'fontWeight', 'letterSpacing', - 'opacity', - 'borderRadius', 'color', - 'backgroundColor', 'hyperlinks' ], 'de-video': [ @@ -405,9 +391,9 @@ export default { this.innerOpacity = this.styleInfo['opacity'] * 100 } if (this.curComponent.type === 'v-text') { - this.mainWidthOffset = 600 + this.mainWidthOffset = 400 } else if (this.curComponent.type === 'de-show-date') { - this.mainWidthOffset = 600 + this.mainWidthOffset = 350 } else { this.mainWidthOffset = document.getElementById('main-attr').offsetWidth - 50 } diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue index cfb9e7c787..6beddbea39 100644 --- a/frontend/src/components/canvas/custom-component/UserView.vue +++ b/frontend/src/components/canvas/custom-component/UserView.vue @@ -264,7 +264,7 @@ export default { return this.canvasStyleData.panel.resultCount }, innerPadding() { - return this.element.commonBackground.innerPadding || 0 + return this.element.commonBackground && this.element.commonBackground.innerPadding || 0 }, ...mapState([ 'canvasStyleData', @@ -758,9 +758,11 @@ export default { this.chart.customStyle = param.viewInfo.customStyle this.chart.senior = param.viewInfo.senior this.chart.title = param.viewInfo.title + this.chart.stylePriority = param.viewInfo.stylePriority this.sourceCustomAttrStr = this.chart.customAttr this.sourceCustomStyleStr = this.chart.customStyle this.mergeScale() + this.mergeStyle() } } } diff --git a/frontend/src/components/canvas/custom-component/component-list.js b/frontend/src/components/canvas/custom-component/component-list.js index 397f696cbf..b05b616d1c 100644 --- a/frontend/src/components/canvas/custom-component/component-list.js +++ b/frontend/src/components/canvas/custom-component/component-list.js @@ -208,9 +208,7 @@ const list = [ letterSpacing: 0, textAlign: 'center', color: '#000000', - verticalAlign: 'middle', - backgroundColor: '#ffffff', - borderRadius: 0 + verticalAlign: 'middle' }, hyperlinks: HYPERLINKS, x: 1, @@ -255,8 +253,7 @@ const list = [ mobileStyle: BASE_MOBILE_STYLE, style: { width: 300, - height: 200, - borderRadius: '' + height: 200 }, x: 1, y: 1, @@ -296,9 +293,7 @@ const list = [ height: 200, borderStyle: 'solid', borderWidth: 0, - borderColor: '#000000', - backgroundColor: '#ffffff', - borderRadius: 0 + borderColor: '#000000' }, x: 1, y: 1, @@ -317,8 +312,7 @@ const list = [ mobileStyle: BASE_MOBILE_STYLE, style: { width: 300, - height: 200, - borderRadius: '' + height: 200 }, x: 1, y: 36, @@ -341,9 +335,7 @@ const list = [ height: 200, borderStyle: 'solid', borderWidth: 0, - borderColor: '#000000', - backgroundColor: '#ffffff', - borderRadius: 0 + borderColor: '#000000' }, options: { tabList: [{ @@ -377,10 +369,8 @@ const list = [ textAlign: 'center', color: '#000000', verticalAlign: 'middle', - backgroundColor: '#ffffff', borderStyle: 'solid', borderColor: '#000000', - borderRadius: 0, time_margin: 0, padding: 10 }, @@ -408,8 +398,7 @@ const list = [ mobileStyle: BASE_MOBILE_STYLE, style: { width: 400, - height: 200, - borderRadius: '' + height: 200 }, frameLinks: FRAMELINKS, x: 1, @@ -430,8 +419,7 @@ const list = [ hyperlinks: HYPERLINKS, style: { width: 400, - height: 200, - borderRadius: '' + height: 200 }, x: 1, y: 1, @@ -450,8 +438,7 @@ const list = [ mobileStyle: BASE_MOBILE_STYLE, style: { width: 400, - height: 200, - borderRadius: '' + height: 200 }, videoLinks: VIDEOLINKS, x: 1, @@ -471,8 +458,7 @@ const list = [ mobileStyle: BASE_MOBILE_STYLE, style: { width: 400, - height: 200, - borderRadius: '' + height: 200 }, streamMediaLinks: STREAMMEDIALINKS, x: 1, diff --git a/frontend/src/views/chart/components/shape-attr/SizeSelector.vue b/frontend/src/views/chart/components/shape-attr/SizeSelector.vue index 05180d7227..28fed28c05 100644 --- a/frontend/src/views/chart/components/shape-attr/SizeSelector.vue +++ b/frontend/src/views/chart/components/shape-attr/SizeSelector.vue @@ -142,7 +142,7 @@ - + diff --git a/frontend/src/views/chart/components/shape-attr/SizeSelectorAntV.vue b/frontend/src/views/chart/components/shape-attr/SizeSelectorAntV.vue index 7b1d2c576c..fdc96396d9 100644 --- a/frontend/src/views/chart/components/shape-attr/SizeSelectorAntV.vue +++ b/frontend/src/views/chart/components/shape-attr/SizeSelectorAntV.vue @@ -168,7 +168,7 @@ - + diff --git a/frontend/src/views/chart/view/ChartEdit.vue b/frontend/src/views/chart/view/ChartEdit.vue index a4a6b3a638..384714b667 100644 --- a/frontend/src/views/chart/view/ChartEdit.vue +++ b/frontend/src/views/chart/view/ChartEdit.vue @@ -1749,6 +1749,7 @@ export default { view.customFilter = JSON.stringify(this.view.customFilter) view.senior = JSON.stringify(this.view.senior) view.title = this.view.title + view.stylePriority = this.view.stylePriority // view.data = this.data this.chart = view diff --git a/frontend/src/views/panel/ViewSelect/index.vue b/frontend/src/views/panel/ViewSelect/index.vue index c6ac23043d..defcda2f76 100644 --- a/frontend/src/views/panel/ViewSelect/index.vue +++ b/frontend/src/views/panel/ViewSelect/index.vue @@ -46,7 +46,6 @@ - {{ data.name }}