栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

大屏展示 Echarts数据统一处理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

大屏展示 Echarts数据统一处理

  echarts数据处理千篇一律,每次开发都要controller,service,mapper,一套流程走一遍,效率低,且重复代码多。所以有了一下想法,controller和service做一个统一处理。根据前端传参,决定执行那个mapper的那个方法,这样只需要写mapper,mybatis和前端即可。

通用方法

testController

import com.ruoyi.common.core.controller.baseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.BeansUtils;
import com.ruoyi.common.utils.EchartsUtils;
import org.springframework.web.bind.annotation.*;

import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.linkedHashMap;
import java.util.List;

@RestController
@RequestMapping("/test")
public class Test1Controller extends baseController {

    @GetMapping("/1")
    public AjaxResult test(@RequestParam HashMap map){
        try {
            Class aClass = Class.forName("com.ruoyi.system.mapper."+map.get("mapper"));
            Object mapper = BeansUtils.getBean(map.get("mapper"),aClass );
            Method method = aClass.getMethod(map.get("method"));
            Object obj = method.invoke(mapper);
            List> list = (List>) obj;
            return AjaxResult.success(EchartsUtils.serialize(list));
        } catch (Exception e) {
            return AjaxResult.error(e.getMessage());
        }

    }
}

echarts数据处理(echarts5已经可以行转列了,故这里不再处理);

EchsrtsUtils

import java.util.*;


public class EchartsUtils {
    
    public static List serialize(List> list) {
        List result = new ArrayList();
        List fieldNames = new ArrayList(list.get(0).keySet());
        fieldNames.remove(0);
        fieldNames.add(0,"product");
        result.add(fieldNames);
        for(HashMap map : list) {
            List result2 = new ArrayList(map.values());
            result.add(result2);
        }
        return result;
    }
}

mapper

注意!请使用linkedHashMap目的是为了排序,select 后字段的顺序就是查询出来的顺序。

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import java.util.linkedHashMap;
import java.util.List;

@DataSource(DataSourceType.SLAVE)
public interface bjczTestMapper {
    
    public List> test();

}

mybatis