Add chart business block data model
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BusinessBlockConfigField
|
||||
{
|
||||
private String key;
|
||||
private String label;
|
||||
private String type;
|
||||
private String table;
|
||||
private Boolean required;
|
||||
private List<String> options;
|
||||
|
||||
public String getKey() { return key; }
|
||||
public void setKey(String key) { this.key = key; }
|
||||
public String getLabel() { return label; }
|
||||
public void setLabel(String label) { this.label = label; }
|
||||
public String getType() { return type; }
|
||||
public void setType(String type) { this.type = type; }
|
||||
public String getTable() { return table; }
|
||||
public void setTable(String table) { this.table = table; }
|
||||
public Boolean getRequired() { return required; }
|
||||
public void setRequired(Boolean required) { this.required = required; }
|
||||
public List<String> getOptions() { return options; }
|
||||
public void setOptions(List<String> options) { this.options = options; }
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class BusinessBlockInstance
|
||||
{
|
||||
private String id;
|
||||
private String blockCode;
|
||||
private String name;
|
||||
private Map<String, String> config;
|
||||
private Integer span;
|
||||
private ChartDatasetConfig dataset;
|
||||
private Map<String, Object> display;
|
||||
|
||||
public String getId() { return id; }
|
||||
public void setId(String id) { this.id = id; }
|
||||
public String getBlockCode() { return blockCode; }
|
||||
public void setBlockCode(String blockCode) { this.blockCode = blockCode; }
|
||||
public String getName() { return name; }
|
||||
public void setName(String name) { this.name = name; }
|
||||
public Map<String, String> getConfig() { return config; }
|
||||
public void setConfig(Map<String, String> config) { this.config = config; }
|
||||
public Integer getSpan() { return span; }
|
||||
public void setSpan(Integer span) { this.span = span; }
|
||||
public ChartDatasetConfig getDataset() { return dataset; }
|
||||
public void setDataset(ChartDatasetConfig dataset) { this.dataset = dataset; }
|
||||
public Map<String, Object> getDisplay() { return display; }
|
||||
public void setDisplay(Map<String, Object> display) { this.display = display; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
public class BusinessBlockTemplateFile
|
||||
{
|
||||
private String key;
|
||||
private String template;
|
||||
private String outputPath;
|
||||
|
||||
public String getKey() { return key; }
|
||||
public void setKey(String key) { this.key = key; }
|
||||
public String getTemplate() { return template; }
|
||||
public void setTemplate(String template) { this.template = template; }
|
||||
public String getOutputPath() { return outputPath; }
|
||||
public void setOutputPath(String outputPath) { this.outputPath = outputPath; }
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ChartDatasetConfig
|
||||
{
|
||||
private String schema;
|
||||
private String table;
|
||||
private ChartDimensionConfig dimension;
|
||||
private List<ChartMetricConfig> metrics;
|
||||
private List<ChartFilterConfig> filters;
|
||||
private ChartDateRangeConfig dateRange;
|
||||
private ChartSortConfig sort;
|
||||
private Integer limit;
|
||||
|
||||
public String getSchema() { return schema; }
|
||||
public void setSchema(String schema) { this.schema = schema; }
|
||||
public String getTable() { return table; }
|
||||
public void setTable(String table) { this.table = table; }
|
||||
public ChartDimensionConfig getDimension() { return dimension; }
|
||||
public void setDimension(ChartDimensionConfig dimension) { this.dimension = dimension; }
|
||||
public List<ChartMetricConfig> getMetrics() { return metrics; }
|
||||
public void setMetrics(List<ChartMetricConfig> metrics) { this.metrics = metrics; }
|
||||
public List<ChartFilterConfig> getFilters() { return filters; }
|
||||
public void setFilters(List<ChartFilterConfig> filters) { this.filters = filters; }
|
||||
public ChartDateRangeConfig getDateRange() { return dateRange; }
|
||||
public void setDateRange(ChartDateRangeConfig dateRange) { this.dateRange = dateRange; }
|
||||
public ChartSortConfig getSort() { return sort; }
|
||||
public void setSort(ChartSortConfig sort) { this.sort = sort; }
|
||||
public Integer getLimit() { return limit; }
|
||||
public void setLimit(Integer limit) { this.limit = limit; }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
public class ChartDateRangeConfig
|
||||
{
|
||||
private String field;
|
||||
private String preset;
|
||||
private String start;
|
||||
private String end;
|
||||
|
||||
public String getField() { return field; }
|
||||
public void setField(String field) { this.field = field; }
|
||||
public String getPreset() { return preset; }
|
||||
public void setPreset(String preset) { this.preset = preset; }
|
||||
public String getStart() { return start; }
|
||||
public void setStart(String start) { this.start = start; }
|
||||
public String getEnd() { return end; }
|
||||
public void setEnd(String end) { this.end = end; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
public class ChartDimensionConfig
|
||||
{
|
||||
private String field;
|
||||
private String timeUnit;
|
||||
|
||||
public String getField() { return field; }
|
||||
public void setField(String field) { this.field = field; }
|
||||
public String getTimeUnit() { return timeUnit; }
|
||||
public void setTimeUnit(String timeUnit) { this.timeUnit = timeUnit; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
public class ChartFilterConfig
|
||||
{
|
||||
private String field;
|
||||
private String operator;
|
||||
private Object value;
|
||||
|
||||
public String getField() { return field; }
|
||||
public void setField(String field) { this.field = field; }
|
||||
public String getOperator() { return operator; }
|
||||
public void setOperator(String operator) { this.operator = operator; }
|
||||
public Object getValue() { return value; }
|
||||
public void setValue(Object value) { this.value = value; }
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
public class ChartMetricConfig
|
||||
{
|
||||
private String field;
|
||||
private String aggregate;
|
||||
private String alias;
|
||||
private String label;
|
||||
|
||||
public String getField() { return field; }
|
||||
public void setField(String field) { this.field = field; }
|
||||
public String getAggregate() { return aggregate; }
|
||||
public void setAggregate(String aggregate) { this.aggregate = aggregate; }
|
||||
public String getAlias() { return alias; }
|
||||
public void setAlias(String alias) { this.alias = alias; }
|
||||
public String getLabel() { return label; }
|
||||
public void setLabel(String label) { this.label = label; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
public class ChartSortConfig
|
||||
{
|
||||
private String by;
|
||||
private String order;
|
||||
|
||||
public String getBy() { return by; }
|
||||
public void setBy(String by) { this.by = by; }
|
||||
public String getOrder() { return order; }
|
||||
public void setOrder(String order) { this.order = order; }
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.generator.domain.front.dto.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PageBusinessBlockLayout
|
||||
{
|
||||
private String canvas;
|
||||
private List<BusinessBlockInstance> blocks;
|
||||
|
||||
public String getCanvas() { return canvas; }
|
||||
public void setCanvas(String canvas) { this.canvas = canvas; }
|
||||
public List<BusinessBlockInstance> getBlocks() { return blocks; }
|
||||
public void setBlocks(List<BusinessBlockInstance> blocks) { this.blocks = blocks; }
|
||||
}
|
||||
@@ -81,6 +81,24 @@ public class BusinessBlockRegistryServiceTest
|
||||
assertEquals("cart", layout.getBlocks().get(0).getBlockCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseLayoutReadsChartDatasetAndSpan()
|
||||
{
|
||||
PageBusinessBlockLayout layout = service.parseLayout(
|
||||
"{\"canvas\":\"business-blocks-v1\",\"blocks\":[{"
|
||||
+ "\"id\":\"line_001\",\"blockCode\":\"admin_line_chart\",\"span\":6,"
|
||||
+ "\"dataset\":{\"schema\":\"single-table-aggregate-v1\",\"table\":\"shop_order\","
|
||||
+ "\"dimension\":{\"field\":\"create_time\",\"timeUnit\":\"day\"},"
|
||||
+ "\"metrics\":[{\"field\":\"amount\",\"aggregate\":\"sum\",\"alias\":\"salesAmount\"}]},"
|
||||
+ "\"display\":{\"showLegend\":true}}]}");
|
||||
|
||||
BusinessBlockInstance instance = layout.getBlocks().get(0);
|
||||
assertEquals(Integer.valueOf(6), instance.getSpan());
|
||||
assertEquals("shop_order", instance.getDataset().getTable());
|
||||
assertEquals("amount", instance.getDataset().getMetrics().get(0).getField());
|
||||
assertEquals(Boolean.TRUE, instance.getDisplay().get("showLegend"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void validateInstanceConfigRejectsMissingRequiredConfig()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user