diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/EChartsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/EChartsController.java new file mode 100644 index 0000000..697aea5 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/EChartsController.java @@ -0,0 +1,40 @@ +package com.ruoyi.web.controller; + +import com.github.abel533.echarts.Option; +import com.github.abel533.echarts.axis.CategoryAxis; +import com.github.abel533.echarts.axis.ValueAxis; +import com.github.abel533.echarts.code.AxisType; +import com.github.abel533.echarts.series.Bar; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +public class EChartsController { + /* + * 获取柱状图 json数据 + * */ + @GetMapping("/getOption") + @ResponseBody + public Option getOption() + { + Option option = new Option(); + option.tooltip().show(true); + option.legend().data("销量"); + + ValueAxis valueAxis = new ValueAxis(); + valueAxis.type(AxisType.category); + valueAxis.data("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月","13","14"); + option.xAxis(valueAxis); + + CategoryAxis categoryAxis = new CategoryAxis(); + categoryAxis.type(AxisType.value); + option.yAxis(categoryAxis); + + Bar bar = new Bar(); + bar.name("女性").data(36.5, 37.9, 37.0, 40.2, 39.6, 36.7, 35.6, 36.2, 36.6, 40.0, 36.4, 38.3, 36.4, 38.3); + Bar bar2 = new Bar(); + bar2.name("男性").data(36.5, 37.9, 36.0, 38.2, 36.6, 37.7, 39.6, 36.2, 36.6, 40.0, 36.9, 37.3, 36.4, 38.3); + option.series(bar2); + + return option; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java new file mode 100644 index 0000000..c948236 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/JacksonConfig.java @@ -0,0 +1,42 @@ +package com.ruoyi.framework.config; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; + + +import java.io.IOException; + +@Configuration +public class JacksonConfig { + @Bean + @Primary + @ConditionalOnMissingBean(ObjectMapper.class) + public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) { + ObjectMapper objectMapper = builder.createXmlMapper(false).build(); + + // 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化 + // Include.Include.ALWAYS 默认 + // Include.NON_DEFAULT 属性为默认值不序列化 + // Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量 + // Include.NON_NULL 属性为NULL 不序列化 + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY); + + // 字段保留,将null值转为"" + objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer() { + @Override + public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + jsonGenerator.writeString(""); + } + }); + return objectMapper; + } +}