SSM+echart实现销售视图

Posted 彭祥.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSM+echart实现销售视图相关的知识,希望对你有一定的参考价值。

在开发SSM网上书城的过程中,博主想让该项目的订单查看页面更加直观,因此便想到了使用视图进行显示,博主使用了一个前端插件echart,我们要做的就是将查询的结果放入相应接口中,效果图如下:
在这里插入图片描述
博主设计了四个视图,用到了折线图,柱状图,饼状图三种视图类型,下面便以饼状图为例给大家介绍下具体实现
首先我们找到echart对饼状图的介绍以及实现代码
在这里插入图片描述

demo解析

<div id="main" style="width: 500px; height: 360px;"></div>//盛放视图的盒子
var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);
var option;

option = {
    title: {
        text: '某站点用户访问来源',
        subtext: '纯属虚构',
        left: 'center'
    },
    tooltip: {
        trigger: 'item'
    },
    legend: {
        orient: 'vertical',
        left: 'left',
    },
    series: [
        {
            name: '访问来源',
            type: 'pie',
            radius: '50%',
            data: [//我们传入的数据
                {value: 1048, name: '搜索引擎'},
                {value: 735, name: '直接访问'},
                {value: 580, name: '邮件营销'},
                {value: 484, name: '联盟广告'},
                {value: 300, name: '视频广告'}
            ],
            emphasis: {
                itemStyle: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

option && myChart.setOption(option);

那么看懂了以上方法后,我们便可以进行调用了
饼状图盛放的盒子
html代码

<div id="pieview" style="width: 500px; height: 360px;"></div>

我们对生成视图与请求数据的前端代码进行了封装
javascript代码

function pieview(){
	var chartDom = document.getElementById('pieview');
	var myChart = echarts.init(chartDom);
	var option;//我们使用ajax进行请求数据
	$.ajax({
		type : "get",
		url : "goodview.action", //请求链接
		dataType : "json", //返回数据形式为json
		success : function(result) {
			//请求成功时执行该函数内容,result即为服务器返回的json对象
			 var servicedata=[];//根据上面分析可知,其传入的数据是json的格式,那么我们获取到的数据也要是相同格式
             for(var i=0;i<result.length;i++){//将获取的json内容进行拆分
                 var obj=new Object();
                 obj.name=result[i].gid; //获取商品名称
                 obj.value=result[i].price;//获取销售额
                 servicedata[i]=obj;
             }
	option = {
	    title: {
	        text: '网上书城销售额/元',
	        subtext: '仅供参考',
	        left: 'center'
	    },
	    tooltip: {
	        trigger: 'item'
	    },
	    legend: {
	        orient: 'vertical',
	        left: 'left',
	    },
	    series: [
	        {
	            name: '访问来源',
	            type: 'pie',
	            radius: '50%',
	            data: servicedata, //将我们的数据替换原来的静态数据
	            emphasis: {
	                itemStyle: {
	                    shadowBlur: 10,
	                    shadowOffsetX: 0,
	                    shadowColor: 'rgba(0, 0, 0, 0.5)'
	                }
	            }
	        }
	    ]
	};

	option && myChart.setOption(option);}});
}

至此,echart的接口封装部分便完成了,接下来便是数据请求了
博主的后端使用的是SSM,现在介绍下数据请求过程
使用ajax发送数据请求后,我们进入Controller

	@RequestMapping(value="/goodview")
	@ResponseBody//用于转换为json
	public  List<Orders> goodview(){
		List<Orders> list= os.goodView();//调用服务层查询
		return list;	
	}

服务层代码

@Override
	public List<Orders> goodView() {
		// TODO Auto-generated method stub
		return om.goodView();//调用dao层的OrderMapper接口进而调用mybatis的方法
	}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.OrderMapper">
	<select id="goodView" resultType="domain.Orders">
	select goods.gname as
	gid,SUM(goods.price*orders.sum)as price from orders 
	inner join goods on
	orders.gid=goods.id group by goods.gname
	</select>
</mapper>

sql语句的实现效果:
在这里插入图片描述

我们通过三表联立查询将我们的数据查询结果进行返回。
至此,我们的echart饼状图便实现了
其余的视图实现方法也是如法炮制,便不一 一赘述了。
码字不易,给个赞呗!

以上是关于SSM+echart实现销售视图的主要内容,如果未能解决你的问题,请参考以下文章

基于SSM实现手机销售商城系统

基于SSM实现手机销售商城系统

用SSM框架实现第一个echarts的例子及一个调用百度开发者工具的例子

期未课程设计:使用SSM开发产品销售管理系统

ssm框架下的JAVA音像销售系统

基于SSM实现农产品销售管理平台