forked from github/dataease
perf(X-Pack): 阈值告警任务
This commit is contained in:
commit
5b055801cb
@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import io.dataease.api.dataset.union.DatasetGroupInfoDTO;
|
||||
import io.dataease.api.dataset.union.UnionDTO;
|
||||
import io.dataease.api.dataset.vo.DataSetBarVO;
|
||||
import io.dataease.api.permissions.relation.api.RelationApi;
|
||||
import io.dataease.commons.constants.OptConstants;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetGroup;
|
||||
import io.dataease.dataset.dao.auto.entity.CoreDatasetTable;
|
||||
@ -35,6 +36,7 @@ import jakarta.annotation.Resource;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@ -43,6 +45,8 @@ import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static io.dataease.result.ResultCode.DV_RESOURCE_UNCHECKED;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
@ -75,6 +79,9 @@ public class DatasetGroupManage {
|
||||
@Resource
|
||||
private CoreOptRecentManage coreOptRecentManage;
|
||||
|
||||
@Autowired(required = false)
|
||||
private RelationApi relationManage;
|
||||
|
||||
private static final String leafType = "dataset";
|
||||
|
||||
private Lock lock = new ReentrantLock();
|
||||
@ -176,6 +183,21 @@ public class DatasetGroupManage {
|
||||
return datasetGroupInfoDTO;
|
||||
}
|
||||
|
||||
public boolean perDelete(Long id) {
|
||||
if (LicenseUtil.licenseValid()) {
|
||||
try {
|
||||
relationManage.checkAuth();
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
Long count = relationManage.getDatasetResource(id);
|
||||
if (count > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@XpackInteract(value = "authResourceTree", before = false)
|
||||
public void delete(Long id) {
|
||||
CoreDatasetGroup coreDatasetGroup = coreDatasetGroupMapper.selectById(id);
|
||||
|
@ -49,6 +49,11 @@ public class DatasetTreeServer implements DatasetTreeApi {
|
||||
return datasetGroupManage.move(dto);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean perDelete(Long id) {
|
||||
return datasetGroupManage.perDelete(id);
|
||||
}
|
||||
|
||||
@DeLog(id = "#p0", ot = LogOT.DELETE, st = LogST.DATASET)
|
||||
@Override
|
||||
public void delete(Long id) {
|
||||
|
@ -13,6 +13,7 @@ import io.dataease.api.ds.vo.ApiDefinition;
|
||||
import io.dataease.api.ds.vo.CoreDatasourceTaskLogDTO;
|
||||
import io.dataease.api.ds.vo.ExcelFileData;
|
||||
import io.dataease.api.ds.vo.ExcelSheetData;
|
||||
import io.dataease.api.permissions.relation.api.RelationApi;
|
||||
import io.dataease.commons.constants.TaskStatus;
|
||||
import io.dataease.constant.LogOT;
|
||||
import io.dataease.constant.LogST;
|
||||
@ -69,6 +70,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
import static io.dataease.datasource.server.DatasourceTaskServer.ScheduleType.MANUAL;
|
||||
import static io.dataease.datasource.server.DatasourceTaskServer.ScheduleType.RIGHTNOW;
|
||||
import static io.dataease.result.ResultCode.DS_RESOURCE_UNCHECKED;
|
||||
|
||||
|
||||
@RestController
|
||||
@ -106,6 +108,8 @@ public class DatasourceServer implements DatasourceApi {
|
||||
|
||||
@Autowired(required = false)
|
||||
private PluginManageApi pluginManage;
|
||||
@Autowired(required = false)
|
||||
private RelationApi relationManage;
|
||||
|
||||
@Override
|
||||
public List<DatasourceDTO> query(String keyWord) {
|
||||
@ -627,6 +631,22 @@ public class DatasourceServer implements DatasourceApi {
|
||||
return datasourceDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean perDelete(Long id) {
|
||||
if (LicenseUtil.licenseValid()) {
|
||||
try {
|
||||
relationManage.checkAuth();
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
Long count = relationManage.getDsResource(id);
|
||||
if (count > 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@DeLog(id = "#p0", ot = LogOT.DELETE, st = LogST.DATASOURCE)
|
||||
@Override
|
||||
|
@ -94,4 +94,6 @@ public class SQLConstants {
|
||||
public static final String QUARTER = "QUARTER(%s)";
|
||||
|
||||
public static final String EMPTY_SIGN = "_empty_$";
|
||||
|
||||
public static final String CONCAT = "CONCAT(%s, %s)";
|
||||
}
|
||||
|
3
core/core-frontend/public/svg/icon_app_outlined.svg
Normal file
3
core/core-frontend/public/svg/icon_app_outlined.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1 7.64384C1 7.2517 1.2292 6.89575 1.5862 6.73348L11.5862 2.18802C11.8491 2.06851 12.1509 2.06851 12.4138 2.18802L22.4138 6.73348C22.7708 6.89575 23 7.2517 23 7.64384V17.3819C23 17.7607 22.786 18.1069 22.4472 18.2763L12.4472 23.2763C12.1657 23.4171 11.8343 23.4171 11.5528 23.2763L1.55279 18.2763C1.214 18.1069 1 17.7607 1 17.3819V7.64384ZM19.2178 7.47768L12 4.19685L4.7432 7.49539L11.96 10.6042L19.2178 7.47768ZM13 12.3338V20.7639L21 16.7639V8.88765L13 12.3338ZM3 8.92215V16.7639L11 20.7639V12.3683L3 8.92215Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 614 B |
@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.5 20V11.5455C2.5 10.9681 2.97969 10.5 3.57143 10.5H8V3.05263C8 2.47128 8.51167 2 9.14286 2H14.8571C15.4883 2 16 2.47128 16 3.05263V8H20.4286C21.0203 8 21.5 8.44772 21.5 9V20H22C22.2761 20 22.5 20.2239 22.5 20.5V21.5C22.5 21.7761 22.2761 22 22 22H2C1.72386 22 1.5 21.7761 1.5 21.5V20.5C1.5 20.2239 1.72386 20 2 20H2.5ZM19.5 20V10H16V20H19.5ZM14 20V4H10V20H14ZM8 20V12.5H4.5V20H8Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 485 B |
3
core/core-frontend/public/svg/icon_database_outlined.svg
Normal file
3
core/core-frontend/public/svg/icon_database_outlined.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.9117 19.9531C21.4811 19.5044 22 18.8519 22 18V6C22 5.14805 21.4811 4.49559 20.9117 4.04685C20.331 3.58923 19.5528 3.22085 18.6802 2.93C16.9246 2.3448 14.5629 2 12 2C9.43715 2 7.07541 2.3448 5.31981 2.93C4.44724 3.22085 3.66896 3.58923 3.08829 4.04685C2.51889 4.49559 2 5.14805 2 6V18C2 18.8519 2.51889 19.5044 3.08829 19.9531C3.66896 20.4108 4.44724 20.7791 5.31981 21.07C7.07541 21.6552 9.43715 22 12 22C14.5629 22 16.9246 21.6552 18.6802 21.07C19.5528 20.7791 20.331 20.4108 20.9117 19.9531ZM4 5.99973C4.00058 4.89529 7.58208 4 12 4C16.4183 4 20 4.89543 20 6C20 7.10457 16.4183 8 12 8C7.58172 8 4 7.10457 4 6C4 5.99998 4 5.99996 4 5.99994C4 5.99987 4 5.9998 4 5.99973ZM18.6802 9.07C19.1533 8.91229 19.5988 8.73177 20 8.5266V12.0002C20 12.0014 19.9999 12.0057 19.9969 12.0153C19.9935 12.0264 19.9852 12.0485 19.9649 12.0814C19.9225 12.1506 19.8359 12.2545 19.6738 12.3823C19.3436 12.6425 18.8038 12.9206 18.0477 13.1726C16.546 13.6732 14.4077 14 12 14C9.59229 14 7.45402 13.6732 5.95227 13.1726C5.19616 12.9206 4.65642 12.6425 4.32624 12.3823C4.16408 12.2545 4.07752 12.1506 4.03507 12.0814C4.01483 12.0485 4.00645 12.0264 4.00305 12.0153C4.00016 12.0058 4.00001 12.0012 4 12V8.5266C4.40123 8.73177 4.84666 8.91229 5.31981 9.07C7.07541 9.6552 9.43715 10 12 10C14.5629 10 16.9246 9.6552 18.6802 9.07ZM18.6802 15.07C19.1533 14.9123 19.5988 14.7318 20 14.5266V18.0001C20 18.001 20 18.0052 19.9969 18.0153C19.9935 18.0264 19.9852 18.0485 19.9649 18.0814C19.9225 18.1506 19.8359 18.2545 19.6738 18.3823C19.3436 18.6425 18.8038 18.9206 18.0477 19.1726C16.546 19.6732 14.4077 20 12 20C9.59229 20 7.45402 19.6732 5.95227 19.1726C5.19616 18.9206 4.65642 18.6425 4.32624 18.3823C4.16408 18.2545 4.07752 18.1506 4.03507 18.0814C4.01483 18.0485 4.00645 18.0264 4.00305 18.0153C3.99998 18.0052 4 18.0009 4 18V14.5266C4.40123 14.7318 4.84666 14.9123 5.31981 15.07C7.07541 15.6552 9.43715 16 12 16C14.5629 16 16.9246 15.6552 18.6802 15.07Z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" >
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.33329 2.33332V9.33332H11.6666V2.33332H2.33329ZM1.16663 1.74999C1.16663 1.4277 1.42913 1.16666 1.74996 1.16666H12.25C12.5708 1.16666 12.8333 1.4277 12.8333 1.74999V9.91666C12.8333 10.2389 12.5708 10.5 12.25 10.5H1.74996C1.42913 10.5 1.16663 10.2389 1.16663 9.91666V1.74999Z" />
|
||||
<path d="M9.00573 3.96255L9.83057 4.78739L7.06848 7.54947L5.72157 6.20285L4.78736 7.13735L3.96252 6.31222L5.72157 4.55318L7.06819 5.89981L9.00573 3.96255Z" />
|
||||
<path d="M9.91671 11.6667H4.08337V12.8333H9.91671V11.6667Z" />
|
||||
</svg>
|
After Width: | Height: | Size: 648 B |
@ -28,6 +28,7 @@ import DeFullscreen from '@/components/visualization/common/DeFullscreen.vue'
|
||||
import DeAppApply from '@/views/common/DeAppApply.vue'
|
||||
import { useEmitt } from '@/hooks/web/useEmitt'
|
||||
import { useUserStoreWithOut } from '@/store/modules/user'
|
||||
import TabsGroup from '@/custom-component/component-group/TabsGroup.vue'
|
||||
let nameEdit = ref(false)
|
||||
let inputName = ref('')
|
||||
let nameInput = ref(null)
|
||||
@ -332,6 +333,9 @@ const fullScreenPreview = () => {
|
||||
>
|
||||
<media-group></media-group>
|
||||
</component-group>
|
||||
<component-group is-label :base-width="115" icon-name="dv-tab" title="Tab">
|
||||
<tabs-group :dv-model="dvModel"></tabs-group>
|
||||
</component-group>
|
||||
<component-group is-label :base-width="215" icon-name="dv-more-com" title="更多">
|
||||
<more-com-group></more-com-group>
|
||||
</component-group>
|
||||
|
@ -576,7 +576,7 @@ const editStyle = computed(() => {
|
||||
}
|
||||
} else {
|
||||
const result = {
|
||||
...getCanvasStyle(canvasStyleData.value),
|
||||
...getCanvasStyle(canvasStyleData.value, canvasId.value),
|
||||
width: changeStyleWithScale(canvasStyleData.value.width) + 'px',
|
||||
height: changeStyleWithScale(canvasStyleData.value.height) + 'px'
|
||||
}
|
||||
|
@ -530,7 +530,7 @@ const handleMouseDownOnShape = e => {
|
||||
contentDisplay.value = true
|
||||
}
|
||||
// 仪表板进行Tab碰撞检查
|
||||
dashboardActive.value && tabMoveInCheck()
|
||||
tabMoveInCheck()
|
||||
// 仪表板模式 会造成移动现象 当检测组件正在碰撞有效区内或者移入有效区内 则周边组件不进行移动
|
||||
if (
|
||||
dashboardActive.value &&
|
||||
|
@ -2,7 +2,7 @@
|
||||
<div
|
||||
v-if="state.tabShow"
|
||||
style="width: 100%; height: 100%"
|
||||
:class="headClass"
|
||||
:class="[headClass, `ed-tabs-${curThemes}`]"
|
||||
class="custom-tabs-head"
|
||||
ref="tabComponentRef"
|
||||
>
|
||||
@ -26,6 +26,7 @@
|
||||
<span :style="titleStyle(tabItem.name)">{{ tabItem.title }}</span>
|
||||
<el-dropdown
|
||||
v-if="isEditMode"
|
||||
:effect="curThemes"
|
||||
style="line-height: 4 !important"
|
||||
trigger="click"
|
||||
@command="handleCommand"
|
||||
@ -180,7 +181,7 @@ const noBorderColor = ref('none')
|
||||
let currentInstance
|
||||
|
||||
const isEditMode = computed(() => editMode.value === 'edit' && isEdit.value && !mobileInPc.value)
|
||||
|
||||
const curThemes = isDashboard() ? 'light' : 'dark'
|
||||
const calcTabLength = () => {
|
||||
setTimeout(() => {
|
||||
if (element.value.propValue.length > 1) {
|
||||
@ -456,10 +457,21 @@ onBeforeMount(() => {
|
||||
:deep(.ed-tabs__content) {
|
||||
height: calc(100% - 46px) !important;
|
||||
}
|
||||
.ed-tabs-dark {
|
||||
:deep(.ed-tabs__new-tab) {
|
||||
margin-right: 25px;
|
||||
color: #fff;
|
||||
}
|
||||
:deep(.el-dropdown-link) {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.ed-tabs-light {
|
||||
:deep(.ed-tabs__new-tab) {
|
||||
margin-right: 25px;
|
||||
background-color: #fff;
|
||||
}
|
||||
}
|
||||
.el-tab-pane-custom {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -2,6 +2,7 @@ import { sin, cos } from '@/utils/translate'
|
||||
import { imgUrlTrans } from '@/utils/imgUtils'
|
||||
import { hexColorToRGBA } from '@/views/chart/components/js/util'
|
||||
import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain'
|
||||
import { isMainCanvas } from '@/utils/canvasUtils'
|
||||
const dvMainStore = dvMainStoreWithOut()
|
||||
export function getShapeStyle(style) {
|
||||
const result = {}
|
||||
@ -181,7 +182,7 @@ export function getComponentRotatedStyle(style) {
|
||||
return style
|
||||
}
|
||||
|
||||
export function getCanvasStyle(canvasStyleData) {
|
||||
export function getCanvasStyle(canvasStyleData, canvasId = 'canvasMain') {
|
||||
const {
|
||||
backgroundColorSelect,
|
||||
background,
|
||||
@ -191,6 +192,7 @@ export function getCanvasStyle(canvasStyleData) {
|
||||
mobileSetting
|
||||
} = canvasStyleData
|
||||
const style = { fontSize: fontSize + 'px', color: canvasStyleData.color }
|
||||
if (isMainCanvas(canvasId)) {
|
||||
// 仪表板默认色#f5f6f7 大屏默认配色 #1a1a1a
|
||||
let colorRGBA = dvMainStore.dvInfo.type === 'dashboard' ? '#f5f6f7' : '#1a1a1a'
|
||||
if (backgroundColorSelect && backgroundColor) {
|
||||
@ -212,6 +214,8 @@ export function getCanvasStyle(canvasStyleData) {
|
||||
style['background'] = `url(${imgUrlTrans(background)}) no-repeat`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return style
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,8 @@ export const CHART_MIX_EDITOR_PROPERTY_INNER: EditorPropertyInner = {
|
||||
'lineSymbolSize',
|
||||
'lineSmooth',
|
||||
'radiusColumnBar',
|
||||
'subSeriesColor'
|
||||
'subSeriesColor',
|
||||
'seriesColor'
|
||||
],
|
||||
'x-axis-selector': [
|
||||
'name',
|
||||
|
@ -279,6 +279,25 @@ export class ColumnLineMix extends G2PlotChartView<DualAxesOptions, DualAxes> {
|
||||
...options
|
||||
}
|
||||
const basicStyle = parseJson(chart.customAttr).basicStyle as MixChartBasicStyle
|
||||
|
||||
const { seriesColor } = basicStyle
|
||||
if (seriesColor?.length) {
|
||||
const seriesMap = seriesColor.reduce((p, n) => {
|
||||
p[n.id] = n
|
||||
return p
|
||||
}, {})
|
||||
const { yAxis } = chart
|
||||
yAxis?.forEach((axis, index) => {
|
||||
const curAxisColor = seriesMap[axis.id]
|
||||
if (curAxisColor) {
|
||||
if (index + 1 > basicStyle.colors.length) {
|
||||
basicStyle.colors.push(curAxisColor.color)
|
||||
} else {
|
||||
basicStyle.colors[index] = curAxisColor.color
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
//左轴
|
||||
const color = basicStyle.colors.map(ele => {
|
||||
const tmp = hexColorToRGBA(ele, basicStyle.alpha)
|
||||
@ -568,10 +587,6 @@ export class GroupColumnLineMix extends ColumnLineMix {
|
||||
axis: AxisType[] = [...this['axis'], 'xAxisExt']
|
||||
propertyInner = {
|
||||
...CHART_MIX_EDITOR_PROPERTY_INNER,
|
||||
'dual-basic-style-selector': [
|
||||
...CHART_MIX_EDITOR_PROPERTY_INNER['dual-basic-style-selector'],
|
||||
'seriesColor'
|
||||
],
|
||||
'label-selector': ['vPosition', 'seriesLabelFormatter'],
|
||||
'tooltip-selector': [
|
||||
...CHART_MIX_EDITOR_PROPERTY_INNER['tooltip-selector'],
|
||||
@ -683,10 +698,6 @@ export class StackColumnLineMix extends ColumnLineMix {
|
||||
axis: AxisType[] = [...this['axis'], 'extStack']
|
||||
propertyInner = {
|
||||
...CHART_MIX_EDITOR_PROPERTY_INNER,
|
||||
'dual-basic-style-selector': [
|
||||
...CHART_MIX_EDITOR_PROPERTY_INNER['dual-basic-style-selector'],
|
||||
'seriesColor'
|
||||
],
|
||||
'label-selector': ['vPosition', 'seriesLabelFormatter'],
|
||||
'tooltip-selector': [
|
||||
...CHART_MIX_EDITOR_PROPERTY_INNER['tooltip-selector'],
|
||||
|
@ -60,6 +60,10 @@ public interface DatasetTreeApi {
|
||||
@PostMapping("move")
|
||||
DatasetNodeDTO move(@RequestBody DatasetGroupInfoDTO dto) throws Exception;
|
||||
|
||||
@DePermit({"#p0+':manage'"})
|
||||
@PostMapping("perDelete/{id}")
|
||||
boolean perDelete(@PathVariable("id") Long id);
|
||||
|
||||
@Operation(summary = "删除数据集")
|
||||
@DePermit({"#p0+':manage'"})
|
||||
@PostMapping("delete/{id}")
|
||||
|
@ -66,6 +66,10 @@ public interface DatasourceApi {
|
||||
@GetMapping("/validate/{datasourceId}")
|
||||
DatasourceDTO validate(@PathVariable("datasourceId") Long datasourceId) throws DEException;
|
||||
|
||||
@DePermit({"#p0+':manage'"})
|
||||
@PostMapping("/perDelete/{datasourceId}")
|
||||
boolean perDelete(@PathVariable("datasourceId") Long datasourceId);
|
||||
|
||||
@DePermit({"#p0+':manage'"})
|
||||
@GetMapping("/delete/{datasourceId}")
|
||||
void delete(@PathVariable("datasourceId") Long datasourceId) throws DEException;
|
||||
|
@ -0,0 +1,14 @@
|
||||
package io.dataease.api.permissions.relation.api;
|
||||
|
||||
import io.dataease.exception.DEException;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
public interface RelationApi {
|
||||
Long getDsResource(Long id);
|
||||
|
||||
Long getDatasetResource(Long id);
|
||||
|
||||
void checkAuth() throws DEException;
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package io.dataease.api.permissions.relation.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
@Data
|
||||
public class RelationDTO {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
private String name;
|
||||
private String auths;
|
||||
private String type;
|
||||
private String creator;
|
||||
private Long updateTime;
|
||||
private List<RelationDTO> subRelation;
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package io.dataease.api.permissions.relation.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Author Junjun
|
||||
*/
|
||||
@Data
|
||||
public class RelationListDTO implements Serializable {
|
||||
private Long dsId;
|
||||
private String dsName;
|
||||
private String dsCreator;
|
||||
private Long dsUpdateTime;
|
||||
|
||||
private Long datasetId;
|
||||
private String datasetName;
|
||||
private String datasetCreator;
|
||||
private Long datasetUpdateTime;
|
||||
|
||||
private Long dashboardId;
|
||||
private String dashboardName;
|
||||
private String dashboardCreator;
|
||||
private Long dashboardUpdateTime;
|
||||
|
||||
private Long dvId;
|
||||
private String dvName;
|
||||
private String dvCreator;
|
||||
private Long dvUpdateTime;
|
||||
}
|
@ -27,6 +27,9 @@ public enum ResultCode {
|
||||
RESULE_DATA_NONE(50001, "数据未找到"),
|
||||
DATA_IS_WRONG(50002, "数据有误"),
|
||||
DATA_ALREADY_EXISTED(50003, "数据已存在"),
|
||||
DS_RESOURCE_UNCHECKED(50004, "%s个数据集正在使用此数据源,无法删除"),
|
||||
|
||||
DV_RESOURCE_UNCHECKED(50004, "%s个仪表板或数据大屏正在使用此数据集,无法删除"),
|
||||
|
||||
/* 接口错误:60001-69999 */
|
||||
INTERFACE_INNER_INVOKE_ERROR(60001, "内部系统接口调用异常"),
|
||||
|
Loading…
Reference in New Issue
Block a user