根据各种动态参数,解析查询条件,获取查询结果。
@Service public class DataSetServiceImpl implements DataSetService { @Resource private DataSetMapper dataSetMapper ; // 分析任务划分 @Override public Map<Integer, List<ChartParam>> analyData(List<ChartParam> chartParamList) { Map<Integer, List<ChartParam>> dataMap = chartParamList.stream() .collect(Collectors .groupingBy(ChartParam::getDataType)); for (Integer dataType:dataMap.keySet()){ switch (dataType){ case 1: // Count 风格数据 taskCount(dataMap.get(dataType)); break; case 2: // Sum 风格数据 taskSum(dataMap.get(dataType)); break; case 3: // Percent 风格数据 taskPercent(dataMap.get(dataType)); break; default: break; } } return dataMap ; } // Count 数据执行 private void taskCount (List<ChartParam> chartParamList){ for (ChartParam chartParam:chartParamList){ chartParam.setResultNum(dataSetMapper.taskCount(chartParam.getColumnName(), chartParam.getTableName())); } } // Sum 数据执行 private void taskSum (List<ChartParam> chartParamList){ for (ChartParam chartParam:chartParamList){ chartParam.setResultNum(dataSetMapper.taskSum(chartParam.getColumnName(), chartParam.getTableName())); } } // Percent 数据执行 private void taskPercent (List<ChartParam> chartParamList){ for (ChartParam chartParam:chartParamList){ chartParam.setResultNum(dataSetMapper.taskPercent(chartParam.getColumnName(), chartParam.getTableName(), chartParam.getProductId())); } } }总结一句:数据可视化工具建设是个漫长过程,不仅仅可以分析自己公司的业务,也可以作为开放BI工具产生价值。
五、源代码地址 GitHub·地址 https://github.com/cicadasmile/data-manage-parent GitEE·地址 https://gitee.com/cicadasmile/data-manage-parent推荐阅读:《架构设计系列》,萝卜青菜,各有所需
序号 标题01 架构设计:单服务.集群.分布式,基本区别和联系
02 架构设计:分布式业务系统中,全局ID生成策略
03 架构设计:分布式系统调度,Zookeeper集群化管理
04 架构设计:接口幂等性原则,防重复提交Token管理
05 架构设计:缓存管理模式,监控和内存回收策略