diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java index e82b8aa48e..7162ea76d9 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetDataManage.java @@ -1,13 +1,11 @@ package io.dataease.dataset.manage; +import io.dataease.api.chart.dto.ChartExtFilterDTO; import io.dataease.api.chart.dto.ChartViewDTO; import io.dataease.api.chart.dto.ColumnPermissionItem; import io.dataease.api.chart.dto.DeSortField; import io.dataease.api.chart.request.ChartExtRequest; -import io.dataease.api.dataset.dto.DatasetTableDTO; -import io.dataease.api.dataset.dto.EnumValueRequest; -import io.dataease.api.dataset.dto.PreviewSqlDTO; -import io.dataease.api.dataset.dto.SqlLogDTO; +import io.dataease.api.dataset.dto.*; import io.dataease.api.dataset.union.DatasetGroupInfoDTO; import io.dataease.api.dataset.union.DatasetTableInfoDTO; import io.dataease.api.dataset.union.model.SQLMeta; @@ -33,10 +31,7 @@ import io.dataease.engine.constant.ExtFieldConstant; import io.dataease.engine.constant.SQLConstants; import io.dataease.engine.constant.SqlPlaceholderConstants; import io.dataease.engine.sql.SQLProvider; -import io.dataease.engine.trans.Field2SQLObj; -import io.dataease.engine.trans.Order2SQLObj; -import io.dataease.engine.trans.Table2SQLObj; -import io.dataease.engine.trans.WhereTree2Str; +import io.dataease.engine.trans.*; import io.dataease.engine.utils.SQLUtils; import io.dataease.engine.utils.Utils; import io.dataease.exception.DEException; @@ -55,6 +50,8 @@ import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; +import static io.dataease.chart.manage.ChartDataManage.START_END_SEPARATOR; + /** * @Author Junjun */ @@ -583,6 +580,87 @@ public class DatasetDataManage { rowPermissionsTree = permissionManage.getRowPermissionsTree(datasetGroupInfoDTO.getId(), user.getUserId()); } + //组件过滤条件 + List extFilterList = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(request.getFilter())) { + for (ChartExtFilterDTO filterDTO : request.getFilter()) { + // 解析多个fieldId,fieldId是一个逗号分隔的字符串 + String fieldId = filterDTO.getFieldId(); + if (filterDTO.getIsTree() == null) { + filterDTO.setIsTree(false); + } + + boolean hasParameters = false; + List sqlVariables = datasetGroupManage.getSqlParams(Arrays.asList(datasetGroupInfoDTO.getId())); + if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(sqlVariables)) { + for (SqlVariableDetails parameter : Optional.ofNullable(filterDTO.getParameters()).orElse(new ArrayList<>())) { + String parameterId = StringUtils.endsWith(parameter.getId(), START_END_SEPARATOR) ? parameter.getId().split(START_END_SEPARATOR)[0] : parameter.getId(); + if (sqlVariables.stream().map(SqlVariableDetails::getId).collect(Collectors.toList()).contains(parameterId)) { + hasParameters = true; + } + } + } + + if (hasParameters) { + continue; + } + + if (StringUtils.isNotEmpty(fieldId)) { + List fieldIds = Arrays.stream(fieldId.split(",")).map(Long::valueOf).collect(Collectors.toList()); + + if (filterDTO.getIsTree()) { + ChartExtFilterDTO filterRequest = new ChartExtFilterDTO(); + BeanUtils.copyBean(filterRequest, filterDTO); + filterRequest.setDatasetTableFieldList(new ArrayList<>()); + for (Long fId : fieldIds) { + DatasetTableFieldDTO datasetTableField = datasetTableFieldManage.selectById(fId); + if (datasetTableField == null) { + continue; + } + if (Objects.equals(datasetTableField.getDatasetGroupId(), datasetGroupInfoDTO.getId())) { + filterRequest.getDatasetTableFieldList().add(datasetTableField); + } + } + if (ObjectUtils.isNotEmpty(filterRequest.getDatasetTableFieldList())) { + extFilterList.add(filterRequest); + } + } else { + for (Long fId : fieldIds) { + ChartExtFilterDTO filterRequest = new ChartExtFilterDTO(); + BeanUtils.copyBean(filterRequest, filterDTO); + filterRequest.setFieldId(fId + ""); + + DatasetTableFieldDTO datasetTableField = datasetTableFieldManage.selectById(fId); + if (datasetTableField == null) { + continue; + } + filterRequest.setDatasetTableField(datasetTableField); + if (Objects.equals(datasetTableField.getDatasetGroupId(), datasetGroupInfoDTO.getId())) { + extFilterList.add(filterRequest); + } + } + } + } + } + } + + // 搜索备选项 + if (StringUtils.isNotEmpty(request.getSearchText())) { + ChartExtFilterDTO dto = new ChartExtFilterDTO(); + DatasetTableFieldDTO field = null; + if (ids.size() == 1) { + field = datasetTableFieldManage.selectById(ids.get(0)); + } else { + field = datasetTableFieldManage.selectById(ids.get(1)); + } + dto.setDatasetTableField(field); + dto.setFieldId(field.getId() + ""); + dto.setIsTree(false); + dto.setOperator("like"); + dto.setValue(List.of(request.getSearchText())); + extFilterList.add(dto); + } + // 排序 if (ObjectUtils.isNotEmpty(request.getSortId())) { DatasetTableFieldDTO field = datasetTableFieldManage.selectById(request.getSortId()); @@ -596,9 +674,10 @@ public class DatasetDataManage { } Field2SQLObj.field2sqlObj(sqlMeta, fields, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap); + ExtWhere2Str.extWhere2sqlOjb(sqlMeta, extFilterList, datasetGroupInfoDTO.getAllFields(), crossDs, dsMap); WhereTree2Str.transFilterTrees(sqlMeta, rowPermissionsTree, fields, crossDs, dsMap); Order2SQLObj.getOrders(sqlMeta, fields, datasetGroupInfoDTO.getSortFields(), crossDs, dsMap); - String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, false, 0, 1000); + String querySQL = SQLProvider.createQuerySQLWithLimit(sqlMeta, false, needOrder, ids.size() == 1, 0, 1000); querySQL = SqlUtils.rebuildSQL(querySQL, sqlMeta, crossDs, dsMap); logger.info("calcite data enum sql: " + querySQL); diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/PermissionManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/PermissionManage.java index 3667ede8de..1d8a0bdd25 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/PermissionManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/PermissionManage.java @@ -8,6 +8,8 @@ import io.dataease.api.permissions.dataset.api.ColumnPermissionsApi; import io.dataease.api.permissions.dataset.api.RowPermissionsApi; import io.dataease.api.permissions.dataset.dto.*; import io.dataease.api.permissions.user.vo.UserFormVO; +import io.dataease.api.permissions.variable.dto.SysVariableValueDto; +import io.dataease.api.permissions.variable.dto.SysVariableValueItem; import io.dataease.constant.ColumnPermissionConstants; import io.dataease.dto.dataset.DatasetTableFieldDTO; import io.dataease.utils.AuthUtils; @@ -188,18 +190,27 @@ public class PermissionManage { } // 替换系统变量 if (StringUtils.equalsIgnoreCase(record.getAuthTargetType(), "sysParams")) { - String expressionTree = record.getExpressionTree(); - if (StringUtils.isNotEmpty(userEntity.getAccount())) { - expressionTree = expressionTree.replaceAll("\\$\\{sysParams\\.userId}", userEntity.getAccount()); + DatasetRowPermissionsTreeObj tree = JsonUtil.parseObject(record.getExpressionTree(), DatasetRowPermissionsTreeObj.class); + List items = new ArrayList<>(); + for (DatasetRowPermissionsTreeItem datasetRowPermissionsTreeItem : tree.getItems()) { + if (StringUtils.isNotEmpty(userEntity.getAccount()) && datasetRowPermissionsTreeItem.getValue().equalsIgnoreCase("\\$\\{sysParams\\.userId}")) { + datasetRowPermissionsTreeItem.setValue(userEntity.getAccount()); + } + if (StringUtils.isNotEmpty(userEntity.getEmail()) && datasetRowPermissionsTreeItem.getValue().equalsIgnoreCase("\\$\\{sysParams\\.userEmail}")) { + datasetRowPermissionsTreeItem.setValue(userEntity.getEmail()); + } + if (StringUtils.isNotEmpty(userEntity.getName()) && datasetRowPermissionsTreeItem.getValue().equalsIgnoreCase("\\$\\{sysParams\\.userName}")) { + datasetRowPermissionsTreeItem.setValue(userEntity.getName()); + } + String value = handleSysVariable(userEntity, datasetRowPermissionsTreeItem.getValue()); + if (value == null) { + continue; + } else { + datasetRowPermissionsTreeItem.setValue(value); + } + items.add(datasetRowPermissionsTreeItem); } - if (StringUtils.isNotEmpty(userEntity.getEmail())) { - expressionTree = expressionTree.replaceAll("\\$\\{sysParams\\.userEmail}", userEntity.getEmail()); - } - if (StringUtils.isNotEmpty(userEntity.getName())) { - expressionTree = expressionTree.replaceAll("\\$\\{sysParams\\.userName}", userEntity.getName()); - } - record.setExpressionTree(expressionTree); - DatasetRowPermissionsTreeObj tree = JsonUtil.parseObject(expressionTree, DatasetRowPermissionsTreeObj.class); + tree.setItems(items); record.setTree(tree); } result.add(record); @@ -207,6 +218,28 @@ public class PermissionManage { return result; } + private String handleSysVariable(UserFormVO userEntity, String sysVariable) { + String value = null; + if (StringUtils.isNotBlank(sysVariable) && sysVariable.startsWith("${") && sysVariable.endsWith("}")) { + String variableId = sysVariable.substring(2, sysVariable.length() - 1); + for (SysVariableValueItem variable : userEntity.getVariables()) { + if (variableId.equalsIgnoreCase(variable.getVariableId())) { + if (variable.getSysVariableDto().getType().equalsIgnoreCase("text")) { + for (SysVariableValueDto sysVariableValueDto : variable.getValueList()) { + if (sysVariableValueDto.getId().toString().equals(variable.getVariableValueId())) { + value = sysVariableValueDto.getValue(); + } + } + } else { + value = variable.getVariableValue(); + } + + } + } + } + return value; + } + private List intersectionForList(List list1, List list2) { List result = new ArrayList<>(); for (Long id : list1) { diff --git a/core/core-backend/src/main/java/io/dataease/engine/sql/SQLProvider.java b/core/core-backend/src/main/java/io/dataease/engine/sql/SQLProvider.java index c2fa39f1d3..a5ea329019 100644 --- a/core/core-backend/src/main/java/io/dataease/engine/sql/SQLProvider.java +++ b/core/core-backend/src/main/java/io/dataease/engine/sql/SQLProvider.java @@ -45,9 +45,11 @@ public class SQLProvider { if (ObjectUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); String customWheres = sqlMeta.getCustomWheres(); + String extWheres = sqlMeta.getExtWheres(); String whereTrees = sqlMeta.getWhereTrees(); List wheres = new ArrayList<>(); if (customWheres != null) wheres.add(customWheres); + if (extWheres != null) wheres.add(extWheres); if (whereTrees != null) wheres.add(whereTrees); if (ObjectUtils.isNotEmpty(wheres)) st_sql.add("filters", wheres); diff --git a/core/core-backend/src/main/resources/i18n/core_en_US.properties b/core/core-backend/src/main/resources/i18n/core_en_US.properties index 44535ed761..2953f7520b 100644 --- a/core/core-backend/src/main/resources/i18n/core_en_US.properties +++ b/core/core-backend/src/main/resources/i18n/core_en_US.properties @@ -16,6 +16,7 @@ i18n_menu.datasource=datasource i18n_menu.user=User i18n_menu.org=Organization i18n_menu.auth=Authority +i18n_menu.sysVariable=System Variables i18n_field_name_repeat=has duplicate field names: i18n_pid_not_eq_id=Target is error i18n_ds_name_exists=Name is exists diff --git a/core/core-backend/src/main/resources/i18n/core_zh_CN.properties b/core/core-backend/src/main/resources/i18n/core_zh_CN.properties index 02954f501e..402ecb52db 100644 --- a/core/core-backend/src/main/resources/i18n/core_zh_CN.properties +++ b/core/core-backend/src/main/resources/i18n/core_zh_CN.properties @@ -26,6 +26,7 @@ i18n_menu.task=\u4EFB\u52A1\u7BA1\u7406 i18n_menu.embedded=\u5D4C\u5165\u5F0F\u7BA1\u7406 i18n_menu.platform=\u5E73\u53F0\u5BF9\u63A5 i18n_menu.appearance=\u5916\u89C2\u914D\u7F6E +i18n_menu.sysVariable=\u7cfb\u7edf\u53d8\u91cf i18n_field_name_repeat=\u6709\u91CD\u590D\u5B57\u6BB5\u540D\uFF1A i18n_pid_not_eq_id=\u79FB\u52A8\u76EE\u6807\u4E0D\u80FD\u662F\u81EA\u5DF1\u6216\u5B50\u76EE\u5F55 i18n_ds_name_exists=\u8BE5\u5206\u7EC4\u4E0B\u540D\u79F0\u91CD\u590D diff --git a/core/core-backend/src/main/resources/i18n/core_zh_TW.properties b/core/core-backend/src/main/resources/i18n/core_zh_TW.properties index 4dac5fb8d4..3a648f76ae 100644 --- a/core/core-backend/src/main/resources/i18n/core_zh_TW.properties +++ b/core/core-backend/src/main/resources/i18n/core_zh_TW.properties @@ -17,6 +17,7 @@ i18n_menu.datasource=\u6578\u64DA\u6E90 i18n_menu.user=\u7528\u6236\u7BA1\u7406 i18n_menu.org=\u7D44\u7E54\u7BA1\u7406 i18n_menu.auth=\u6B0A\u9650\u914D\u7F6E +i18n_menu.sysVariable=\u7cfb\u7edf\u53d8\u91cf i18n_field_name_repeat=\u5177\u6709\u91CD\u8907\u7684\u6B04\u4F4D\u540D\u7A31\uFF1A i18n_pid_not_eq_id=\u79FB\u52D5\u76EE\u6A19\u4E0D\u80FD\u662F\u81EA\u5DF1\u6216\u5B50\u76EE\u9304 i18n_ds_name_exists=\u8A72\u5206\u7D44\u4E0B\u540D\u7A31\u91CD\u5FA9 diff --git a/core/core-frontend/src/api/variable.ts b/core/core-frontend/src/api/variable.ts new file mode 100644 index 0000000000..c44786665d --- /dev/null +++ b/core/core-frontend/src/api/variable.ts @@ -0,0 +1,25 @@ +import request from '@/config/axios' + +export const variableCreateApi = data => request.post({ url: '/sysVariable/create', data }) + +export const variableEditApi = data => request.post({ url: '/sysVariable/edit', data }) + +export const variableDetailApi = id => request.get({ url: '/sysVariable/detail/' + id }) + +export const variableDeletelApi = id => request.get({ url: '/sysVariable/delete/' + id }) + +export const searchVariableApi = async data => request.post({ url: '/sysVariable/query', data }) + +export const valueSelectedForVariableApi = (page: number, limit: number, data) => + request.post({ url: `/sysVariable/value/selected/${page}/${limit}`, data }) + +export const valueForVariable = id => request.get({ url: '/sysVariable/value/selected/' + id }) + +export const variableValueCreateApi = data => + request.post({ url: '/sysVariable/value/create', data }) + +export const variableValueDeletelApi = id => request.get({ url: '/sysVariable/value/delete/' + id }) + +export const variableValueEditApi = data => request.post({ url: '/sysVariable/value/edit', data }) + +export const batchDelApi = data => request.post({ url: '/sysVariable/value/batchDel', data }) diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 6611a865c3..08cc0e679d 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -2316,5 +2316,9 @@ export default { last_status_running: '运行中', last_status_fail: '失败', last_status_success: '成功' + }, + variable: { + give_up: 's', + save_apply: '保存并应用' } } diff --git a/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue b/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue index 18a3b5da59..4e0e1ae57c 100644 --- a/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue +++ b/core/core-frontend/src/views/chart/components/editor/editor-style/components/BasicStyleSelector.vue @@ -202,23 +202,6 @@ onMounted(() => { - - - {{ t('chart.horizontal') }} - {{ t('chart.vertical') }} - - - { + + + {{ t('chart.horizontal') }} + {{ t('chart.vertical') }} + + + diff --git a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bidirectional-bar.ts b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bidirectional-bar.ts index bc716bef67..1e3953984c 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bidirectional-bar.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/charts/bar/bidirectional-bar.ts @@ -53,6 +53,7 @@ export class BidirectionalHorizontalBar extends G2PlotChartView< 'legend-selector', 'label-selector', 'tooltip-selector', + 'function-cfg', 'jump-set', 'linkage' ] @@ -84,7 +85,7 @@ export class BidirectionalHorizontalBar extends G2PlotChartView< 'fontShadow' ], 'legend-selector': ['icon', 'orient', 'fontSize', 'color', 'hPosition', 'vPosition'], - 'function-cfg': ['slider', 'emptyDataStrategy'], + 'function-cfg': ['emptyDataStrategy'], 'label-selector': ['hPosition', 'seriesLabelFormatter'], 'tooltip-selector': ['fontSize', 'color', 'backgroundColor', 'seriesTooltipFormatter'] } @@ -201,6 +202,7 @@ export class BidirectionalHorizontalBar extends G2PlotChartView< pre[next.seriesId] = next return pre }, {}) as Record + const optionsData = cloneDeep(options.data) const yaxisObj = item => { const param = item.data let yaxis = yAxis[0] @@ -236,6 +238,19 @@ export class BidirectionalHorizontalBar extends G2PlotChartView< const name = isEmpty(formatter.chartShowName) ? formatter.name : formatter.chartShowName result.push({ ...item, name, value }) }) + const dynamicTooltipValue = optionsData.find( + d => d.field === originalItems[0]['title'] + )?.dynamicTooltipValue + if (dynamicTooltipValue.length > 0) { + dynamicTooltipValue.forEach(dy => { + const q = tooltipAttr.seriesTooltipFormatter.filter(i => i.id === dy.fieldId) + if (q && q.length > 0) { + const value = valueFormatter(parseFloat(dy.value as string), q[0].formatterCfg) + const name = isEmpty(q[0].chartShowName) ? q[0].name : q[0].chartShowName + result.push({ color: 'grey', name, value }) + } + }) + } return result } } @@ -413,7 +428,8 @@ export class BidirectionalHorizontalBar extends G2PlotChartView< this.configXAxis, this.configYAxis, this.configAnalyse, - this.configSlider + this.configSlider, + this.configEmptyDataStrategy )(chart, options) } diff --git a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java index 25dc8e2598..acc327ed25 100644 --- a/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java +++ b/sdk/api/api-base/src/main/java/io/dataease/api/dataset/dto/EnumValueRequest.java @@ -1,14 +1,19 @@ package io.dataease.api.dataset.dto; +import io.dataease.api.chart.dto.ChartExtFilterDTO; import lombok.Data; +import java.util.List; + /** * @Author Junjun */ @Data public class EnumValueRequest { - private Long queryId; - private Long displayId; - private Long sortId; - private String sort; + private Long queryId;// 查询字段 + private Long displayId;// 显示字段 + private Long sortId;// 排序字段 + private String sort;// 排序 asc||desc + private String searchText;// 搜索内容,以 field like '%text%' 拼接到SQL + private List filter;// 级联查询条件,多个条件之间用and拼接到SQL } diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/dto/UserCreator.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/dto/UserCreator.java index e97d13e952..970a9ae8d5 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/dto/UserCreator.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/dto/UserCreator.java @@ -1,6 +1,7 @@ package io.dataease.api.permissions.user.dto; import com.fasterxml.jackson.annotation.JsonIgnore; +import io.dataease.api.permissions.variable.dto.SysVariableValueItem; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -31,4 +32,6 @@ public class UserCreator implements Serializable { @Schema(hidden = true) @JsonIgnore private Long uid; + @Schema(description = "系统变量") + private List variables; } diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserFormVO.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserFormVO.java index 851ab91999..4c5fed52da 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserFormVO.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserFormVO.java @@ -2,6 +2,7 @@ package io.dataease.api.permissions.user.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.dataease.api.permissions.variable.dto.SysVariableValueItem; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -42,4 +43,10 @@ public class UserFormVO implements Serializable { @Schema(description = "模式") private String model; + + @Schema(description = "系统变量") + private String sysVariable; + + @Schema(description = "系统变量") + private List variables; } diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserGridVO.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserGridVO.java index 4326ebbe41..35f8f1d886 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserGridVO.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/user/vo/UserGridVO.java @@ -2,6 +2,7 @@ package io.dataease.api.permissions.user.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.dataease.api.permissions.variable.dto.SysVariableValueItem; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -26,4 +27,6 @@ public class UserGridVO { private Boolean enable; @Schema(description = "创建时间") private Long createTime; + @Schema(description = "系统变量") + private List variables; } diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/api/SysVariablesApi.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/api/SysVariablesApi.java new file mode 100644 index 0000000000..35c9753775 --- /dev/null +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/api/SysVariablesApi.java @@ -0,0 +1,67 @@ +package io.dataease.api.permissions.variable.api; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiSupport; +import io.dataease.api.permissions.variable.dto.SysVariableDto; +import io.dataease.api.permissions.variable.dto.SysVariableValueDto; +import io.dataease.auth.DeApiPath; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +import static io.dataease.constant.AuthResourceEnum.SYSTEM; + +@Tag(name = "系统变量") +@ApiSupport(order = 881, author = "fit2cloud-someone") +@DeApiPath(value = "/sysVariable", rt = SYSTEM) +public interface SysVariablesApi { + + @Operation(summary = "创建") + @PostMapping("/create") + SysVariableDto create(@RequestBody SysVariableDto sysVariableDto); + + @Operation(summary = "编辑") + @PostMapping("/edit") + SysVariableDto edit(@RequestBody SysVariableDto sysVariableDto); + + @Operation(summary = "删除") + @GetMapping("/delete/{id}") + void delete(@PathVariable String id); + + @Operation(summary = "详细信息") + @GetMapping("/detail/{id}") + SysVariableDto detail(@PathVariable String id); + + @Operation(summary = "查询") + @PostMapping("/query") + List query(@RequestBody SysVariableDto sysVariableDto); + + @Operation(summary = "创建") + @PostMapping("/value/create") + SysVariableValueDto createValue(@RequestBody SysVariableValueDto sysVariableDto); + + @Operation(summary = "编辑") + @PostMapping("/value/edit") + SysVariableValueDto editValue(@RequestBody SysVariableValueDto sysVariableDto); + + @Operation(summary = "删除") + @GetMapping("/value/delete/{id}") + void deleteValue(@PathVariable String id); + + @GetMapping("/value/selected/{id}") + List selectVariableValue(@PathVariable("id") String id); + + @PostMapping("/value/selected/{goPage}/{pageSize}") + IPage selectPage(@PathVariable("goPage") int goPage, @PathVariable("pageSize") int pageSize, @RequestBody SysVariableValueDto sysVariableValueDto); + + @Operation(summary = "批量删除") + @PostMapping("/value/batchDel") + void batchDel(@RequestBody List ids); + +} diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableDto.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableDto.java new file mode 100644 index 0000000000..6aea6da2f7 --- /dev/null +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableDto.java @@ -0,0 +1,20 @@ +package io.dataease.api.permissions.variable.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +@Data +public class SysVariableDto { + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + private String type; + private String name; + private Long min; + private Long max; + private String startTime; + private String endTime; + private boolean root = false; + private boolean disabled = false; +} + diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableValueDto.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableValueDto.java new file mode 100644 index 0000000000..3dbe0bc695 --- /dev/null +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableValueDto.java @@ -0,0 +1,16 @@ +package io.dataease.api.permissions.variable.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +@Data +public class SysVariableValueDto { + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + @JsonSerialize(using = ToStringSerializer.class) + private Long sysVariableId; + private String value; + private String begin; + private String end; +} diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableValueItem.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableValueItem.java new file mode 100644 index 0000000000..3e96ed2d45 --- /dev/null +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/variable/dto/SysVariableValueItem.java @@ -0,0 +1,19 @@ +package io.dataease.api.permissions.variable.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +import java.util.List; + +@Data +public class SysVariableValueItem { + private SysVariableDto sysVariableDto; + @JsonSerialize(using = ToStringSerializer.class) + private String variableId; + @JsonSerialize(using = ToStringSerializer.class) + private String variableValueId; + @JsonSerialize(using = ToStringSerializer.class) + private String variableValue; + private List valueList; +}