fix: 1.普通仪表盘可转为默认仪表盘同时增加默认仪表盘全新 2.仪表盘,视图,数据集加载慢的问题 3.上传大图片不成功的问题,4.仪表盘页面整体加上loading 5.编辑仪表盘预览改为全屏弹框模式

This commit is contained in:
wangjiahao
2021-05-24 17:28:03 +08:00
parent f4b4dac8ef
commit b59c4967f7
30 changed files with 628 additions and 144 deletions

View File

@@ -21,5 +21,13 @@ public class PanelGroup implements Serializable {
private String panelType;
private String source;
private String extend1;
private String extend2;
private String remark;
private static final long serialVersionUID = 1L;
}

View File

@@ -643,6 +643,286 @@ public class PanelGroupExample {
addCriterion("panel_type not between", value1, value2, "panelType");
return (Criteria) this;
}
public Criteria andSourceIsNull() {
addCriterion("`source` is null");
return (Criteria) this;
}
public Criteria andSourceIsNotNull() {
addCriterion("`source` is not null");
return (Criteria) this;
}
public Criteria andSourceEqualTo(String value) {
addCriterion("`source` =", value, "source");
return (Criteria) this;
}
public Criteria andSourceNotEqualTo(String value) {
addCriterion("`source` <>", value, "source");
return (Criteria) this;
}
public Criteria andSourceGreaterThan(String value) {
addCriterion("`source` >", value, "source");
return (Criteria) this;
}
public Criteria andSourceGreaterThanOrEqualTo(String value) {
addCriterion("`source` >=", value, "source");
return (Criteria) this;
}
public Criteria andSourceLessThan(String value) {
addCriterion("`source` <", value, "source");
return (Criteria) this;
}
public Criteria andSourceLessThanOrEqualTo(String value) {
addCriterion("`source` <=", value, "source");
return (Criteria) this;
}
public Criteria andSourceLike(String value) {
addCriterion("`source` like", value, "source");
return (Criteria) this;
}
public Criteria andSourceNotLike(String value) {
addCriterion("`source` not like", value, "source");
return (Criteria) this;
}
public Criteria andSourceIn(List<String> values) {
addCriterion("`source` in", values, "source");
return (Criteria) this;
}
public Criteria andSourceNotIn(List<String> values) {
addCriterion("`source` not in", values, "source");
return (Criteria) this;
}
public Criteria andSourceBetween(String value1, String value2) {
addCriterion("`source` between", value1, value2, "source");
return (Criteria) this;
}
public Criteria andSourceNotBetween(String value1, String value2) {
addCriterion("`source` not between", value1, value2, "source");
return (Criteria) this;
}
public Criteria andExtend1IsNull() {
addCriterion("extend1 is null");
return (Criteria) this;
}
public Criteria andExtend1IsNotNull() {
addCriterion("extend1 is not null");
return (Criteria) this;
}
public Criteria andExtend1EqualTo(String value) {
addCriterion("extend1 =", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1NotEqualTo(String value) {
addCriterion("extend1 <>", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1GreaterThan(String value) {
addCriterion("extend1 >", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1GreaterThanOrEqualTo(String value) {
addCriterion("extend1 >=", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1LessThan(String value) {
addCriterion("extend1 <", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1LessThanOrEqualTo(String value) {
addCriterion("extend1 <=", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1Like(String value) {
addCriterion("extend1 like", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1NotLike(String value) {
addCriterion("extend1 not like", value, "extend1");
return (Criteria) this;
}
public Criteria andExtend1In(List<String> values) {
addCriterion("extend1 in", values, "extend1");
return (Criteria) this;
}
public Criteria andExtend1NotIn(List<String> values) {
addCriterion("extend1 not in", values, "extend1");
return (Criteria) this;
}
public Criteria andExtend1Between(String value1, String value2) {
addCriterion("extend1 between", value1, value2, "extend1");
return (Criteria) this;
}
public Criteria andExtend1NotBetween(String value1, String value2) {
addCriterion("extend1 not between", value1, value2, "extend1");
return (Criteria) this;
}
public Criteria andExtend2IsNull() {
addCriterion("extend2 is null");
return (Criteria) this;
}
public Criteria andExtend2IsNotNull() {
addCriterion("extend2 is not null");
return (Criteria) this;
}
public Criteria andExtend2EqualTo(String value) {
addCriterion("extend2 =", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2NotEqualTo(String value) {
addCriterion("extend2 <>", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2GreaterThan(String value) {
addCriterion("extend2 >", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2GreaterThanOrEqualTo(String value) {
addCriterion("extend2 >=", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2LessThan(String value) {
addCriterion("extend2 <", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2LessThanOrEqualTo(String value) {
addCriterion("extend2 <=", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2Like(String value) {
addCriterion("extend2 like", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2NotLike(String value) {
addCriterion("extend2 not like", value, "extend2");
return (Criteria) this;
}
public Criteria andExtend2In(List<String> values) {
addCriterion("extend2 in", values, "extend2");
return (Criteria) this;
}
public Criteria andExtend2NotIn(List<String> values) {
addCriterion("extend2 not in", values, "extend2");
return (Criteria) this;
}
public Criteria andExtend2Between(String value1, String value2) {
addCriterion("extend2 between", value1, value2, "extend2");
return (Criteria) this;
}
public Criteria andExtend2NotBetween(String value1, String value2) {
addCriterion("extend2 not between", value1, value2, "extend2");
return (Criteria) this;
}
public Criteria andRemarkIsNull() {
addCriterion("remark is null");
return (Criteria) this;
}
public Criteria andRemarkIsNotNull() {
addCriterion("remark is not null");
return (Criteria) this;
}
public Criteria andRemarkEqualTo(String value) {
addCriterion("remark =", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotEqualTo(String value) {
addCriterion("remark <>", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThan(String value) {
addCriterion("remark >", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkGreaterThanOrEqualTo(String value) {
addCriterion("remark >=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThan(String value) {
addCriterion("remark <", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLessThanOrEqualTo(String value) {
addCriterion("remark <=", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkLike(String value) {
addCriterion("remark like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotLike(String value) {
addCriterion("remark not like", value, "remark");
return (Criteria) this;
}
public Criteria andRemarkIn(List<String> values) {
addCriterion("remark in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotIn(List<String> values) {
addCriterion("remark not in", values, "remark");
return (Criteria) this;
}
public Criteria andRemarkBetween(String value1, String value2) {
addCriterion("remark between", value1, value2, "remark");
return (Criteria) this;
}
public Criteria andRemarkNotBetween(String value1, String value2) {
addCriterion("remark not between", value1, value2, "remark");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

View File

@@ -10,6 +10,10 @@
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
<result column="create_time" jdbcType="BIGINT" property="createTime" />
<result column="panel_type" jdbcType="VARCHAR" property="panelType" />
<result column="source" jdbcType="VARCHAR" property="source" />
<result column="extend1" jdbcType="VARCHAR" property="extend1" />
<result column="extend2" jdbcType="VARCHAR" property="extend2" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="io.dataease.base.domain.PanelGroupWithBLOBs">
<result column="panel_style" jdbcType="LONGVARCHAR" property="panelStyle" />
@@ -74,7 +78,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, `name`, pid, `level`, node_type, create_by, create_time, panel_type
id, `name`, pid, `level`, node_type, create_by, create_time, panel_type, `source`,
extend1, extend2, remark
</sql>
<sql id="Blob_Column_List">
panel_style, panel_data
@@ -130,12 +135,14 @@
<insert id="insert" parameterType="io.dataease.base.domain.PanelGroupWithBLOBs">
insert into panel_group (id, `name`, pid,
`level`, node_type, create_by,
create_time, panel_type, panel_style,
panel_data)
create_time, panel_type, `source`,
extend1, extend2, remark,
panel_style, panel_data)
values (#{id,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{pid,jdbcType=VARCHAR},
#{level,jdbcType=INTEGER}, #{nodeType,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR},
#{createTime,jdbcType=BIGINT}, #{panelType,jdbcType=VARCHAR}, #{panelStyle,jdbcType=LONGVARCHAR},
#{panelData,jdbcType=LONGVARCHAR})
#{createTime,jdbcType=BIGINT}, #{panelType,jdbcType=VARCHAR}, #{source,jdbcType=VARCHAR},
#{extend1,jdbcType=VARCHAR}, #{extend2,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR},
#{panelStyle,jdbcType=LONGVARCHAR}, #{panelData,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="io.dataease.base.domain.PanelGroupWithBLOBs">
insert into panel_group
@@ -164,6 +171,18 @@
<if test="panelType != null">
panel_type,
</if>
<if test="source != null">
`source`,
</if>
<if test="extend1 != null">
extend1,
</if>
<if test="extend2 != null">
extend2,
</if>
<if test="remark != null">
remark,
</if>
<if test="panelStyle != null">
panel_style,
</if>
@@ -196,6 +215,18 @@
<if test="panelType != null">
#{panelType,jdbcType=VARCHAR},
</if>
<if test="source != null">
#{source,jdbcType=VARCHAR},
</if>
<if test="extend1 != null">
#{extend1,jdbcType=VARCHAR},
</if>
<if test="extend2 != null">
#{extend2,jdbcType=VARCHAR},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
<if test="panelStyle != null">
#{panelStyle,jdbcType=LONGVARCHAR},
</if>
@@ -237,6 +268,18 @@
<if test="record.panelType != null">
panel_type = #{record.panelType,jdbcType=VARCHAR},
</if>
<if test="record.source != null">
`source` = #{record.source,jdbcType=VARCHAR},
</if>
<if test="record.extend1 != null">
extend1 = #{record.extend1,jdbcType=VARCHAR},
</if>
<if test="record.extend2 != null">
extend2 = #{record.extend2,jdbcType=VARCHAR},
</if>
<if test="record.remark != null">
remark = #{record.remark,jdbcType=VARCHAR},
</if>
<if test="record.panelStyle != null">
panel_style = #{record.panelStyle,jdbcType=LONGVARCHAR},
</if>
@@ -258,6 +301,10 @@
create_by = #{record.createBy,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=BIGINT},
panel_type = #{record.panelType,jdbcType=VARCHAR},
`source` = #{record.source,jdbcType=VARCHAR},
extend1 = #{record.extend1,jdbcType=VARCHAR},
extend2 = #{record.extend2,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR},
panel_style = #{record.panelStyle,jdbcType=LONGVARCHAR},
panel_data = #{record.panelData,jdbcType=LONGVARCHAR}
<if test="_parameter != null">
@@ -273,7 +320,11 @@
node_type = #{record.nodeType,jdbcType=VARCHAR},
create_by = #{record.createBy,jdbcType=VARCHAR},
create_time = #{record.createTime,jdbcType=BIGINT},
panel_type = #{record.panelType,jdbcType=VARCHAR}
panel_type = #{record.panelType,jdbcType=VARCHAR},
`source` = #{record.source,jdbcType=VARCHAR},
extend1 = #{record.extend1,jdbcType=VARCHAR},
extend2 = #{record.extend2,jdbcType=VARCHAR},
remark = #{record.remark,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@@ -302,6 +353,18 @@
<if test="panelType != null">
panel_type = #{panelType,jdbcType=VARCHAR},
</if>
<if test="source != null">
`source` = #{source,jdbcType=VARCHAR},
</if>
<if test="extend1 != null">
extend1 = #{extend1,jdbcType=VARCHAR},
</if>
<if test="extend2 != null">
extend2 = #{extend2,jdbcType=VARCHAR},
</if>
<if test="remark != null">
remark = #{remark,jdbcType=VARCHAR},
</if>
<if test="panelStyle != null">
panel_style = #{panelStyle,jdbcType=LONGVARCHAR},
</if>
@@ -320,6 +383,10 @@
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=BIGINT},
panel_type = #{panelType,jdbcType=VARCHAR},
`source` = #{source,jdbcType=VARCHAR},
extend1 = #{extend1,jdbcType=VARCHAR},
extend2 = #{extend2,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR},
panel_style = #{panelStyle,jdbcType=LONGVARCHAR},
panel_data = #{panelData,jdbcType=LONGVARCHAR}
where id = #{id,jdbcType=VARCHAR}
@@ -332,7 +399,11 @@
node_type = #{nodeType,jdbcType=VARCHAR},
create_by = #{createBy,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=BIGINT},
panel_type = #{panelType,jdbcType=VARCHAR}
panel_type = #{panelType,jdbcType=VARCHAR},
`source` = #{source,jdbcType=VARCHAR},
extend1 = #{extend1,jdbcType=VARCHAR},
extend2 = #{extend2,jdbcType=VARCHAR},
remark = #{remark,jdbcType=VARCHAR}
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>

View File

@@ -11,7 +11,7 @@
<select id="search" resultMap="BaseResultMapDTO">
select
id, `name`, pid, `level`, `type`, create_by, create_time,`name` as label,
id, `name`, ifnull(pid,0) as pid, `level`, `type`, create_by, create_time,`name` as label,
get_auths(id,'chart',#{userId}) as `privileges`
from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'chart') cids) t,chart_group
<where>

View File

@@ -11,7 +11,7 @@
<select id="search" resultMap="BaseResultMapDTO">
select
id, `name`, pid, `level`, `type`, create_by, create_time,`name` as label,
id, `name`, ifnull(pid,0) as pid, `level`, `type`, create_by, create_time,`name` as label,
get_auths(id,'dataset',#{userId}) as `privileges`
from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'dataset') cids) t,dataset_group
<where>

View File

@@ -24,5 +24,14 @@ public class PanelConstants {
public final static String PANEL_NODE_TYPE_PANEL = "panel";
public final static String OPT_TYPE_INSERT="insert";
public final static String OPT_TYPE_UPDATE="update";
public final static String PANEL_GATHER_DEFAULT_PANEL = "default_panel";
public final static String PANEL_GATHER_PANEL_LIST = "panel_list";
}

View File

@@ -0,0 +1,23 @@
package io.dataease.commons.model;
import java.util.List;
/**
* Author: wangjiahao
* Date: 2021-05-24
* Description:
*/
public interface ITreeBase<T> {
String getId();
void setId(String id);
String getPid();
void setPid(String pid);
List<T> getChildren();
void setChildren(List<T> children);
}

View File

@@ -0,0 +1,53 @@
package io.dataease.commons.utils;
import io.dataease.commons.model.ITreeBase;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.Assert;
import java.util.*;
import java.util.stream.Collectors;
/**
* Author: wangjiahao
* Date: 2021-05-24
* Description:树构建工具
*/
public class TreeUtils{
/**
* Description: rootPid 是根节点PID
*/
public static<T extends ITreeBase> List<T> mergeTree(List<T> tree,String ... rootPid) {
Assert.notNull(rootPid, "Root Pid cannot be null");
List<T> result = new ArrayList<>();
// 构建id-节点map映射
Map<String, T> treePidMap = tree.stream().collect(Collectors.toMap(T::getId, t -> t));
tree.stream().forEach(node -> {
// 判断根节点
if (Arrays.asList(rootPid).contains(node.getPid())) {
result.add(node);
} else {
//找到父元素
T parentNode = treePidMap.get(node.getPid());
if(parentNode==null){
// 可能出现 rootPid 更高的节点 这个操作相当于截断
return;
}
if (parentNode.getChildren() == null) {
parentNode.setChildren(new ArrayList());
}
parentNode.getChildren().add(node);
}
});
return result;
}
/**
* Description: rootPid 是根节点PID 档期那默认是0
*/
public static<T extends ITreeBase> List<T> mergeTree(List<T> tree) {
return mergeTree(tree,"0");
}
}

View File

@@ -1,7 +1,9 @@
package io.dataease.controller.panel;
import io.dataease.base.domain.DatasetGroup;
import io.dataease.base.domain.PanelGroup;
import io.dataease.base.domain.PanelGroupWithBLOBs;
import io.dataease.controller.handler.annotation.I18n;
import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.controller.request.panel.PanelGroupRequest;
import io.dataease.dto.dataset.DataSetGroupDTO;
@@ -28,18 +30,18 @@ public class PanelGroupController {
@PostMapping("/tree")
public List<PanelGroupDTO> tree(@RequestBody PanelGroupRequest request) {
request.setLevel(0);
return panelGroupService.tree(request);
}
@PostMapping("/defaultTree")
public List<PanelGroupDTO> defaultTree(@RequestBody PanelGroupRequest request) {
return panelGroupService.getDefaultTree(request);
return panelGroupService.defaultTree(request);
}
@PostMapping("/save")
public PanelGroupDTO save(@RequestBody PanelGroupRequest request) {
return panelGroupService.save(request);
@I18n
public PanelGroup saveOrUpdate(@RequestBody PanelGroupRequest request) {
return panelGroupService.saveOrUpdate(request);
}
@PostMapping("/deleteCircle/{id}")

View File

@@ -36,6 +36,7 @@ public class SysAuthController {
@ApiOperation("查询视图")
@PostMapping("/authModels")
@I18n
public List<VAuthModelDTO> authModels(@RequestBody BaseTreeRequest request){
return sysAuthService.searchAuthModelTree(request);
}

View File

@@ -1,13 +1,14 @@
package io.dataease.dto.chart;
import io.dataease.base.domain.DatasetGroup;
import io.dataease.commons.model.ITreeBase;
import lombok.Data;
import java.util.List;
@Data
public class ChartGroupDTO extends DatasetGroup {
public class ChartGroupDTO extends DatasetGroup implements ITreeBase<ChartGroupDTO> {
private String label;
private List<ChartGroupDTO> children;

View File

@@ -1,6 +1,7 @@
package io.dataease.dto.dataset;
import io.dataease.base.domain.DatasetGroup;
import io.dataease.commons.model.ITreeBase;
import lombok.Data;
import java.util.List;
@@ -10,7 +11,7 @@ import java.util.List;
* @Date 2021/2/20 8:17 下午
*/
@Data
public class DataSetGroupDTO extends DatasetGroup {
public class DataSetGroupDTO extends DatasetGroup implements ITreeBase<DataSetGroupDTO> {
private String label;
private List<DataSetGroupDTO> children;

View File

@@ -1,8 +1,7 @@
package io.dataease.dto.panel;
import io.dataease.base.domain.PanelGroup;
import io.dataease.base.domain.PanelGroupWithBLOBs;
import io.dataease.dto.chart.ChartViewDTO;
import io.dataease.commons.model.ITreeBase;
import lombok.Data;
import java.util.ArrayList;
@@ -14,14 +13,15 @@ import java.util.List;
* Description:
*/
@Data
public class PanelGroupDTO extends PanelGroupWithBLOBs {
public class PanelGroupDTO extends PanelGroupWithBLOBs implements ITreeBase<PanelGroupDTO> {
private String label;
private List<PanelGroupDTO> children;
private Boolean leaf;
private String privileges;
private List<PanelGroupDTO> children = new ArrayList<>();
}

View File

@@ -5,6 +5,7 @@ import io.dataease.base.mapper.ChartGroupMapper;
import io.dataease.base.mapper.ext.ExtChartGroupMapper;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.TreeUtils;
import io.dataease.controller.request.chart.ChartGroupRequest;
import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.dto.chart.ChartGroupDTO;
@@ -71,28 +72,9 @@ public class ChartGroupService {
public List<ChartGroupDTO> tree(ChartGroupRequest chartGroup) {
chartGroup.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
if (chartGroup.getLevel() == null) {
chartGroup.setLevel(0);
}
List<ChartGroupDTO> treeInfo = extChartGroupMapper.search(chartGroup);
getAll(treeInfo, chartGroup);
return treeInfo;
}
public void getAll(List<ChartGroupDTO> list, ChartGroupRequest chartGroup) {
for (ChartGroupDTO obj : list) {
ChartGroupRequest newChartGroup = new ChartGroupRequest();
newChartGroup.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
newChartGroup.setName(chartGroup.getName());
newChartGroup.setType(chartGroup.getType());
newChartGroup.setPid(obj.getId());
newChartGroup.setSort(chartGroup.getSort());
List<ChartGroupDTO> treeInfo = extChartGroupMapper.search(newChartGroup);
obj.setChildren(treeInfo);
if (CollectionUtils.isNotEmpty(treeInfo)) {
getAll(treeInfo, chartGroup);
}
}
List<ChartGroupDTO> result = TreeUtils.mergeTree(treeInfo);
return result;
}
public List<String> getAllId(List<ChartGroupDTO> list, List<String> ids) {

View File

@@ -7,6 +7,7 @@ import io.dataease.base.mapper.DatasetGroupMapper;
import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.TreeUtils;
import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.dto.dataset.DataSetGroupDTO;
@@ -82,28 +83,9 @@ public class DataSetGroupService {
public List<DataSetGroupDTO> tree(DataSetGroupRequest datasetGroup) {
datasetGroup.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
if (datasetGroup.getLevel() == null) {
datasetGroup.setLevel(0);
}
List<DataSetGroupDTO> treeInfo = extDataSetGroupMapper.search(datasetGroup);
getAll(treeInfo, datasetGroup);
return treeInfo;
}
public void getAll(List<DataSetGroupDTO> list, DataSetGroupRequest datasetGroup) {
for (DataSetGroupDTO obj : list) {
DataSetGroupRequest newDataSetGroup = new DataSetGroupRequest();
newDataSetGroup.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
newDataSetGroup.setName(datasetGroup.getName());
newDataSetGroup.setType(datasetGroup.getType());
newDataSetGroup.setPid(obj.getId());
newDataSetGroup.setSort(datasetGroup.getSort());
List<DataSetGroupDTO> treeInfo = extDataSetGroupMapper.search(newDataSetGroup);
obj.setChildren(treeInfo);
if (CollectionUtils.isNotEmpty(treeInfo)) {
getAll(treeInfo, datasetGroup);
}
}
List<DataSetGroupDTO> result = TreeUtils.mergeTree(treeInfo);
return result;
}
public List<String> getAllId(List<DataSetGroupDTO> list, List<String> ids) {

View File

@@ -9,11 +9,13 @@ import io.dataease.base.mapper.ext.ExtPanelGroupMapper;
import io.dataease.commons.constants.PanelConstants;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.TreeUtils;
import io.dataease.controller.request.panel.PanelGroupRequest;
import io.dataease.dto.chart.ChartViewDTO;
import io.dataease.dto.dataset.DataSetGroupDTO;
import io.dataease.dto.panel.PanelDesignDTO;
import io.dataease.dto.panel.PanelGroupDTO;
import io.dataease.i18n.Translator;
import io.dataease.service.chart.ChartViewService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -55,52 +57,69 @@ public class PanelGroupService {
private ShareService shareService;
@Resource
private PanelLinkService panelLinkService;
public List<PanelGroupDTO> tree(PanelGroupRequest panelGroupRequest) {
String userId = String.valueOf(AuthUtils.getUser().getUserId());
panelGroupRequest.setUserId(userId);
List<PanelGroupDTO> panelGroupDTOList = extPanelGroupMapper.panelGroupList(panelGroupRequest);
getTreeChildren(panelGroupDTOList,userId);
return panelGroupDTOList;
List<PanelGroupDTO> result = TreeUtils.mergeTree(panelGroupDTOList,"panel_list");
return result;
}
public void getTreeChildren(List<PanelGroupDTO> parentPanelGroupDTO,String userId) {
Optional.ofNullable(parentPanelGroupDTO).ifPresent(parent -> parent.forEach(panelGroupDTO -> {
List<PanelGroupDTO> panelGroupDTOChildren = extPanelGroupMapper.panelGroupList(new PanelGroupRequest(panelGroupDTO.getId(),userId));
panelGroupDTO.setChildren(panelGroupDTOChildren);
getTreeChildren(panelGroupDTOChildren,userId);
}));
public List<PanelGroupDTO> defaultTree(PanelGroupRequest panelGroupRequest) {
String userId = String.valueOf(AuthUtils.getUser().getUserId());
panelGroupRequest.setUserId(userId);
List<PanelGroupDTO> panelGroupDTOList = extPanelGroupMapper.panelGroupList(panelGroupRequest);
List<PanelGroupDTO> result = TreeUtils.mergeTree(panelGroupDTOList,"default_panel");
return result;
}
public List<PanelGroupDTO> getDefaultTree(PanelGroupRequest panelGroupRequest) {
return extPanelGroupMapper.panelGroupListDefault(panelGroupRequest);
}
public PanelGroupDTO save(PanelGroupRequest request) {
if (StringUtils.isEmpty(request.getId())) {
request.setId(UUID.randomUUID().toString());
public PanelGroup saveOrUpdate(PanelGroupRequest request) {
String panelId = request.getId();
if (StringUtils.isEmpty(panelId)) {
// 新建
checkPanelName(request.getName(), request.getPid(), PanelConstants.OPT_TYPE_INSERT, null);
panelId = UUID.randomUUID().toString();
request.setId(panelId);
request.setCreateTime(System.currentTimeMillis());
request.setCreateBy(AuthUtils.getUser().getUsername());
panelGroupMapper.insert(request);
} 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);
newDefaultPanel.setName(request.getName());
newDefaultPanel.setId(panelId);
newDefaultPanel.setPid(PanelConstants.PANEL_GATHER_DEFAULT_PANEL);
newDefaultPanel.setLevel(0);
newDefaultPanel.setSource(request.getId());
checkPanelName(newDefaultPanel.getName(), newDefaultPanel.getPid(), PanelConstants.OPT_TYPE_INSERT, newDefaultPanel.getId());
panelGroupMapper.insertSelective(newDefaultPanel);
} else {
// 复制为默认仪表盘
if("toDefaultPanel".equals(request.getOptType())){
PanelGroupWithBLOBs newDefaultPanel = panelGroupMapper.selectByPrimaryKey(request.getId());
newDefaultPanel.setPanelType(PanelConstants.PANEL_TYPE_SYSTEM);
newDefaultPanel.setNodeType(PanelConstants.PANEL_NODE_TYPE_PANEL);
newDefaultPanel.setName(request.getName());
newDefaultPanel.setId(UUID.randomUUID().toString());
newDefaultPanel.setPid(null);
newDefaultPanel.setLevel(0);
panelGroupMapper.insertSelective(newDefaultPanel);
}else{
panelGroupMapper.updateByPrimaryKeySelective(request);
// 更新
if (StringUtils.isNotEmpty(request.getName())) {
checkPanelName(request.getName(), request.getPid(), PanelConstants.OPT_TYPE_UPDATE, request.getId());
}
panelGroupMapper.updateByPrimaryKeySelective(request);
}
return panelGroupMapper.selectByPrimaryKey(panelId);
}
private void checkPanelName(String name, String pid, String optType, String id) {
PanelGroupExample groupExample = new PanelGroupExample();
if (PanelConstants.OPT_TYPE_INSERT.equalsIgnoreCase(optType)) {
groupExample.createCriteria().andPidEqualTo(pid).andNameEqualTo(name);
} else if (PanelConstants.OPT_TYPE_UPDATE.equalsIgnoreCase(optType)) {
groupExample.createCriteria().andPidEqualTo(pid).andNameEqualTo(name).andIdNotEqualTo(id);
}
List<PanelGroup> checkResult = panelGroupMapper.selectByExample(groupExample);
if (CollectionUtils.isNotEmpty(checkResult)) {
throw new RuntimeException(Translator.get("i18n_same_folder_can_not_repeat"));
}
PanelGroupDTO panelGroupDTO = new PanelGroupDTO();
BeanUtils.copyBean(panelGroupDTO, request);
panelGroupDTO.setLabel(request.getName());
return panelGroupDTO;
}
@@ -118,7 +137,6 @@ public class PanelGroupService {
}
public List<ChartViewDTO> getUsableViews(String panelId) throws Exception {
List<ChartViewDTO> chartViewDTOList = new ArrayList<>();
List<ChartView> allChartView = chartViewMapper.selectByExample(null);