Browse Source

管理平台增加数据统计

hejq 7 years ago
parent
commit
cdbfcf064a

+ 40 - 0
src/main/java/com/uas/platform/b2b/manage/controller/StatisticsController.java

@@ -0,0 +1,40 @@
+package com.uas.platform.b2b.manage.controller;
+
+import com.uas.platform.b2b.manage.controller.support.ResultBean;
+import com.uas.platform.b2b.manage.model.Statistics;
+import com.uas.platform.b2b.manage.service.StatisticsService;
+import com.uas.platform.b2b.manage.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 数据统计
+ *
+ * @author hejq
+ * @date 2018-10-17 9:21
+ */
+@RequestMapping("/statistics")
+@RestController
+public class StatisticsController extends BaseController {
+
+    @Autowired
+    private StatisticsService statisticsService;
+
+    /**
+     * 统计B2B企业注册信息
+     *
+     * @param groupType 分组形式
+     * @param key 关键字
+     * @return ResultBean
+     */
+    @RequestMapping(value = "/regist/enterprise", method = RequestMethod.GET)
+    public ResultBean enterpriseCount(@RequestParam(value = "groupType", defaultValue = "year") String groupType, Integer... key) {
+        List<Statistics> statistics = statisticsService.getEnterpriseCount(groupType, key);
+        return ResultBean.success(statistics, "B2B企业注册统计");
+    }
+}

+ 89 - 0
src/main/java/com/uas/platform/b2b/manage/controller/support/ResultBean.java

@@ -42,6 +42,63 @@ public class ResultBean<T> implements Serializable {
      */
     private T data;
 
+    public static String getSUCCESS() {
+        return SUCCESS;
+    }
+
+    public static int getSuccessCode() {
+        return SUCCESS_CODE;
+    }
+
+    public static int getFailCode() {
+        return FAIL_CODE;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    public ResultBean(int status, T data) {
+        if (SUCCESS_CODE == status) {
+            this.code = SUCCESS_CODE;
+        } else {
+            this.code = FAIL_CODE;
+        }
+        this.code = status;
+        this.data = data;
+    }
+
+    public ResultBean(int status, T data, String msg) {
+        if (SUCCESS_CODE == status) {
+            this.code = SUCCESS_CODE;
+        } else {
+            this.code = FAIL_CODE;
+        }
+        this.code = status;
+        this.data = data;
+        this.msg = msg;
+    }
+
     public ResultBean() {
         super();
     }
@@ -56,4 +113,36 @@ public class ResultBean<T> implements Serializable {
         this.msg = e.toString();
         this.code = FAIL_CODE;
     }
+
+    /**
+     * 操作成功返回结果
+     *
+     * @param data 数据
+     * @return ResultBean
+     * @see ResultBean
+     */
+    public static ResultBean success(Object data) {
+        return new ResultBean(SUCCESS_CODE, data);
+    }
+
+    /**
+     * 操作成功返回结果
+     *
+     * @return ResultBean
+     * @see ResultBean
+     */
+    public static ResultBean success() {
+        return new ResultBean(SUCCESS_CODE, null);
+    }
+
+    /**
+     * 操作成功返回结果
+     *
+     * @param data 数据
+     * @param msg 信息
+     * @return ResultBean
+     */
+    public static ResultBean success(Object data, String msg) {
+        return new ResultBean(SUCCESS_CODE, data, msg);
+    }
 }

+ 141 - 0
src/main/java/com/uas/platform/b2b/manage/dao/CommonDao.java

@@ -0,0 +1,141 @@
+package com.uas.platform.b2b.manage.dao;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.EmptyResultDataAccessException;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
+import org.springframework.jdbc.core.namedparam.SqlParameterSource;
+import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author hejq
+ * @date 2018-10-17 10:00
+ */
+@Repository
+public class CommonDao {
+
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    public List<Map<String, Object>> queryForList(String sql) {
+        return this.jdbcTemplate.queryForList(sql);
+    }
+
+    public <T> List<T> queryForList(String sql, Class<T> elementType) {
+        return this.jdbcTemplate.queryForList(sql, elementType);
+    }
+
+    public List<Map<String, Object>> queryForList(String sql, Object... args) {
+        return this.jdbcTemplate.queryForList(sql, args);
+    }
+
+    public <T> List<T> queryForList(String sql, Object[] args, Class<T> elementType) {
+        return this.jdbcTemplate.queryForList(sql, args, elementType);
+    }
+
+    public <T> List<T> queryForList(String sql, Class<T> elementType, Object... args) {
+        return this.jdbcTemplate.queryForList(sql, elementType, args);
+    }
+
+    public <T> List<T> query(String sql, Object[] args, Class<T> elementType) {
+        return this.jdbcTemplate.query(sql, args, new BeanPropertyRowMapper<T>(elementType));
+    }
+
+    public <T> List<T> query(String sql, Class<T> elementType) {
+        return this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<T>(elementType));
+    }
+
+    public <T> List<T> query(String sql, Class<T> elementType, Object... args) {
+        return this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<T>(elementType), args);
+    }
+
+    /**
+     * 查找自定义实体对象集合
+     *
+     * @param sql
+     * @param args
+     * @param elementType
+     * @return
+     */
+    public <T> T queryBean(String sql, Object[] args, Class<T> elementType) {
+        try {
+            return this.jdbcTemplate.queryForObject(sql, args, new BeanPropertyRowMapper<T>(elementType));
+        } catch (EmptyResultDataAccessException e) {
+            return null;
+        }
+    }
+
+    /**
+     * 查找自定义实体对象集合
+     *
+     * @param sql
+     * @param elementType
+     * @return
+     */
+    public <T> T queryBean(String sql, Class<T> elementType) {
+        try {
+            return this.jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<T>(elementType));
+        } catch (EmptyResultDataAccessException e) {
+            return null;
+        }
+    }
+
+    /**
+     * 查找自定义实体对象
+     *
+     * @param sql
+     * @param elementType
+     * @param args
+     * @return
+     */
+    public <T> T queryBean(String sql, Class<T> elementType, Object... args) {
+        try {
+            return this.jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<T>(elementType), args);
+        } catch (EmptyResultDataAccessException e) {
+            return null;
+        }
+    }
+
+    public <T> T queryForObject(String sql, Object[] args, Class<T> elementType) {
+        return this.jdbcTemplate.queryForObject(sql, args, elementType);
+    }
+
+    public <T> T queryForObject(String sql, Class<T> elementType) {
+        return this.jdbcTemplate.queryForObject(sql, elementType);
+    }
+
+    public <T> T queryForObject(String sql, Class<T> elementType, Object... args) {
+        return this.jdbcTemplate.queryForObject(sql, elementType, args);
+    }
+
+    /**
+     * 取序列值<br>
+     * 只针对oracle数据库
+     *
+     * @param sequenceName
+     * @return
+     */
+    public long generateSequence(String sequenceName) {
+        return this.jdbcTemplate.queryForObject("select " + sequenceName + ".nextval from dual", Long.class);
+    }
+
+    public JdbcTemplate getJdbcTemplate() {
+        return jdbcTemplate;
+    }
+
+    public void save(List<?> beans, String tableName) {
+        SqlParameterSource[] sqlSource = new SqlParameterSource[beans.size()];
+        int i = 0;
+        for (Object obj : beans) {
+            sqlSource[i++] = new BeanPropertySqlParameterSource(obj);
+        }
+        SimpleJdbcInsert insertActor = new SimpleJdbcInsert(getJdbcTemplate());
+        insertActor.setTableName(tableName);
+        insertActor.executeBatch(sqlSource);
+    }
+}

+ 72 - 0
src/main/java/com/uas/platform/b2b/manage/model/Statistics.java

@@ -0,0 +1,72 @@
+package com.uas.platform.b2b.manage.model;
+
+import java.math.BigDecimal;
+
+/**
+ * 统计信息
+ *
+ * @author hejq
+ * @date 2018-10-17 9:23
+ */
+public class Statistics {
+
+    /**
+     * X轴名称
+     */
+    private String xAxisName;
+
+    /**
+     * 数据
+     */
+    private BigDecimal count = new BigDecimal(0);
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    public String getxAxisName() {
+        return xAxisName;
+    }
+
+    public void setxAxisName(String xAxisName) {
+        this.xAxisName = xAxisName;
+    }
+
+    public BigDecimal getCount() {
+        return count;
+    }
+
+    public void setCount(BigDecimal count) {
+        this.count = count;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    /**
+     * 日期常量
+     */
+    public class DateConstant {
+
+        /**
+         * 年
+         */
+        public static final String YEAR = "year";
+
+        /**
+         * 月
+         */
+        public static final String MONTH = "month";
+
+        /**
+         * 日
+         */
+        public static final String DAY = "day";
+    }
+}

+ 27 - 0
src/main/java/com/uas/platform/b2b/manage/service/StatisticsService.java

@@ -0,0 +1,27 @@
+package com.uas.platform.b2b.manage.service;
+
+import com.uas.platform.b2b.manage.model.Statistics;
+
+import java.util.List;
+
+/**
+ * 数据统计
+ *
+ * @author hejq
+ * @date 2018-10-17 9:29
+ */
+public interface StatisticsService {
+
+    /**
+     * 分组统计企业注册信息
+     *
+     * @param groupType 分组类型
+     *                  year: 年
+     *                  month: 月
+     *                  day: 日
+     * @param key 关键字
+     *            具体年份,月份,日期
+     * @return List<Statistics>
+     */
+    List<Statistics> getEnterpriseCount(String groupType, Integer... key);
+}

+ 50 - 0
src/main/java/com/uas/platform/b2b/manage/service/impl/StatisticsServiceImpl.java

@@ -0,0 +1,50 @@
+package com.uas.platform.b2b.manage.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.uas.platform.b2b.manage.dao.CommonDao;
+import com.uas.platform.b2b.manage.model.Statistics;
+import com.uas.platform.b2b.manage.service.StatisticsService;
+import com.uas.platform.b2b.manage.support.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 数据统计
+ *
+ * @author hejq
+ * @date 2018-10-17 9:29
+ */
+@Service
+public class StatisticsServiceImpl implements StatisticsService {
+
+    @Autowired
+    private CommonDao commonDao;
+
+    /**
+     * 分组统计企业注册信息
+     *
+     * @param groupType 分组类型
+     *                  year: 年
+     *                  month: 月
+     *                  day: 日
+     * @param key       关键字
+     *                  具体年份,月份,日期
+     * @return Statistics
+     */
+    @Override
+    public List<Statistics> getEnterpriseCount(String groupType, Integer... key) {
+        if (Statistics.DateConstant.YEAR.equals(groupType)) {
+            if (null == key) {
+                key = new Integer[] {Integer.valueOf(DateUtils.getCurrentYear())};
+            }
+            String sqlKey = JSON.toJSON(key).toString().replace("[", "").replace("]", "");
+            StringBuffer sql = new StringBuffer("select count(1) `count`, date_format(en_time, '%Y-%m') `xAxisName` from `sec$enterprises` where en_time is not null");
+//            sql.append(" and date_format(en_time, '%Y') in (").append(sqlKey).append(")");
+            sql.append(" group by date_format(en_time, '%Y-%m')");
+            return commonDao.query(sql.toString(), Statistics.class);
+        }
+        return null;
+    }
+}

+ 5 - 0
src/main/java/com/uas/platform/b2b/manage/support/DateFormatUtils.java

@@ -19,5 +19,10 @@ public class DateFormatUtils {
      * 导出数据格式
      */
 	public static final FastDateFormat EXPORT_FORMAT = FastDateFormat.getInstance("yyyy年MM月dd日 HH时mm分");
+
+	/**
+     * 年份
+	 */
+	public static final FastDateFormat YEAR = FastDateFormat.getInstance("yyyy");
 	
 }

+ 19 - 0
src/main/java/com/uas/platform/b2b/manage/support/DateUtils.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2b.manage.support;
+
+import java.util.Date;
+
+/**
+ * @author hejq
+ * @date 2018-10-17 9:47
+ */
+public class DateUtils {
+
+    /**
+     * 获取当前年份
+     *
+     * @return String
+     */
+    public static String getCurrentYear() {
+        return DateFormatUtils.YEAR.format(new Date());
+    }
+}

+ 6 - 6
src/main/resources/conf/jdbc.properties

@@ -1,14 +1,14 @@
 jdbc.driverClassName=com.mysql.jdbc.Driver
 
 ## old
-#jdbc.url=jdbc:mysql://10.10.100.18:3306/b2b_prod?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
-#jdbc.username=root
-#jdbc.password=select
+jdbc.url=jdbc:mysql://10.10.100.18:3306/b2b_prod?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
+jdbc.username=root
+jdbc.password=select
 
 ##txcloud
-jdbc.url=jdbc:mysql://172.21.0.2:3306/b2b_prod?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
-jdbc.username=root
-jdbc.password=select111***
+#jdbc.url=jdbc:mysql://172.21.0.2:3306/b2b_prod?characterEncoding=UTF-8&allowMultiQueries=true&rewriteBatchedStatements=true
+#jdbc.username=root
+#jdbc.password=select111***
 
 jdbc.initialSize=5
 jdbc.maxActive=100

+ 5 - 5
src/main/resources/conf/redis.properties

@@ -1,5 +1,5 @@
-#redis.host=10.10.100.200
-#redis.port=6379
-# 腾讯云环境
-redis.host=172.21.0.150
-redis.port=6379
+redis.host=10.10.100.200
+redis.port=6379
+#ÌÚÑ¶ÔÆ»·¾³
+#redis.host=172.21.0.150
+#redis.port=6379

+ 2 - 1
src/main/webapp/WEB-INF/views/normal/enterprise.html

@@ -66,7 +66,8 @@
                 <li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
                 <li><a href="/invite" class="link-mall">邀请注册记录</a></li>
 				<li><a href="/notice" class="link-mall">发货提醒</a></li>
-            </div>
+				<li><a href="/statisticsChart">数据统计</a></li>
+			</div>
             <ul class="nav navbar-nav navbar-right x-login">
                 <li class="dropdown">
                     <a href="#" class="dropdown-toggle"><i class="fa fa-user"></i> <span class="title"></span></a>

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/index.html

@@ -42,6 +42,7 @@
 					<li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
 					<li><a href="/invite" class="link-mall">邀请注册记录</a></li>
 					<li><a href="/notice" class="link-mall">发货提醒</a></li>
+					<li><a href="/statisticsChart">数据统计</a></li>
 				</ul>
 				<ul class="nav navbar-nav navbar-right x-nologin">
 					<li><a href="#" class="link-login">登录</a></li>

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/inviteList.html

@@ -117,6 +117,7 @@
                 <li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
                 <li><a href="/invite" class="active">邀请注册记录</a></li>
                 <li><a href="/notice" class="link-mall">发货提醒</a></li>
+                <li><a href="/statisticsChart">数据统计</a></li>
             </div>
             <ul class="nav navbar-nav navbar-right x-login">
                 <li class="dropdown">

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/logList.html

@@ -86,6 +86,7 @@
 				<li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
 				<li><a href="/invite" class="link-mall">邀请注册记录</a></li>
 				<li><a href="/notice" class="link-mall">发货提醒</a></li>
+				<li><a href="/statisticsChart">数据统计</a></li>
 			</div>
             <ul class="nav navbar-nav navbar-right x-login">
                 <li class="dropdown">

+ 2 - 1
src/main/webapp/WEB-INF/views/normal/noticeDetail.html

@@ -49,7 +49,8 @@
                 <li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
                 <li><a href="/invite" class="link-mall">邀请注册记录</a></li>
                 <li><a href="/notice" class="active">发货提醒</a></li>
-			</div>
+                <li><a href="/statisticsChart">数据统计</a></li>
+            </div>
 			<ul class="nav navbar-nav navbar-right x-login">
 				<li class="dropdown">
 					<a href="#" class="dropdown-toggle"><i class="fa fa-user"></i> <span class="title"></span></a>

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/noticeList.html

@@ -70,6 +70,7 @@
 				<li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
 				<li><a href="/invite" class="link-mall">邀请注册记录</a></li>
 				<li><a href="/notice" class="active">发货提醒</a></li>
+				<li><a href="/statisticsChart">数据统计</a></li>
 			</div>
             <ul class="nav navbar-nav navbar-right x-login">
                 <li class="dropdown">

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/schedularList.html

@@ -96,6 +96,7 @@
                 <li><a href="/schedularList" class="active">UAS轮询地址</a></li>
                 <li><a href="/invite" class="link-mall">邀请注册记录</a></li>
                 <li><a href="/notice" class="link-mall">发货提醒</a></li>
+                <li><a href="/statisticsChart">数据统计</a></li>
             </div>
             <ul class="nav navbar-nav navbar-right x-login">
                 <li class="dropdown">

+ 210 - 0
src/main/webapp/WEB-INF/views/normal/statisticsChart.html

@@ -0,0 +1,210 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="Content-Language" Content="zh-CN">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="author" content="优软科技">
+    <meta name="Keywords" content="优软,优软云,优企云服,SAAS,UAS,ERP,企业管理">
+    <meta name="baidu-site-verification" content="tamBdrxeYx" />
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=8">
+    <meta http-equiv="Expires" content="0">
+    <meta http-equiv="Pragma" content="no-cache">
+    <meta http-equiv="Cache-control" content="no-cache, must-revalidate">
+    <meta http-equiv="Cache" content="no-cache">
+    <link href="static/img/icon/icon_32.png" rel="icon" type="image/x-icon" />
+    <link rel="stylesheet" href="static/lib/bootstrap/css/bootstrap.min.css" />
+    <link rel="stylesheet"
+          href="static/lib/fontawesome/css/font-awesome.min.css" />
+    <link rel="stylesheet" href="static/lib/bootstrap-tour/css/bootstrap-tour.min.css" />
+    <link rel="stylesheet" href="static/css/common.css" />
+    <link rel="stylesheet" href="static/css/enterprise.css" />
+    <link rel="stylesheet" href="static/css/pagination.css">
+    <title>数据统计</title>
+</head>
+<body>
+<style>
+    #loadingDiv {
+        position: absolute;
+        left: 0;
+        width: 100%;
+        height: 100%;
+        top: 0;
+        /*background: #000000;*/
+        opacity: 0.3;
+        filter: alpha(opacity=80);
+        z-index: 10000;
+        display: none;
+    }
+    #loadingImg {
+        position: absolute;
+        cursor: wait;
+        left: 45%;
+        top: 50%;
+        width: auto;
+        height: auto;
+    }
+    .panel .panel-heading {
+        margin: auto;
+        width: 100%;
+    }
+    #accordion a {
+        text-decoration: none
+    }
+    #accordion ul li {
+        list-style-type: none;
+    }
+</style>
+<div id="loadingDiv">
+    <div id="loadingImg">
+        <img src="../static/images/waiting.gif"/>
+    </div>
+</div>
+<!-- nav start -->
+<nav id="nav" class="navbar navbar-inverse navbar-fixed-top">
+    <div class="container">
+        <div class="navbar-header">
+            <a href="/" id="logo"><img src="static/img/logo.png" alt="" height="25px" /></a>
+        </div>
+        <div class="collapse navbar-collapse">
+            <div class="nav navbar-nav navbar-left">
+                <li><a href="/enterprise">企业列表</a></li>
+                <li><a href="/logList" class="link-mall">B2B日志</a></li>
+                <li><a href="/schedularList" class="link-mall">UAS轮询地址</a></li>
+                <li><a href="/invite" class="link-mall">邀请注册记录</a></li>
+                <li><a href="/notice" class="link-mall">发货提醒</a></li>
+                <li><a href="/statisticsChart" class="active">数据统计</a></li>
+            </div>
+            <ul class="nav navbar-nav navbar-right x-login">
+                <li class="dropdown">
+                    <a href="#" class="dropdown-toggle"><i class="fa fa-user"></i> <span class="title"></span></a>
+                </li>
+                <li><a href="#" class="link-logout">退出</a></li>
+            </ul>
+        </div>
+    </div>
+</nav>
+<!-- nav end -->
+
+<!-- section start -->
+<section>
+    <div class="container">
+        <div class="section-title">
+            <h3 id="title"></h3>
+        </div>
+    </div>
+    <div class="panel panel-default">
+        <div class="panel-body">
+            <!--<div class="col-xs-2">
+                <div class="panel-group" id="accordion">
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <h4 class="panel-title">
+                                <a data-toggle="collapse" data-parent="#accordion"
+                                   href="#collapseOne">
+                                    注册记录
+                                </a>
+                            </h4>
+                        </div>
+                        <div id="collapseOne" class="panel-collapse collapse">
+                            <div class="panel-body">
+                                <ul>
+                                    <li>
+                                        <a data-toggle="collapse" data-parent="#collapseOne"
+                                           href="#collapseYear">
+                                        按年份筛选
+                                        </a>
+                                        <div id="collapseYear" class="panel-collapse collapse">
+                                            <div class="panel-body">
+                                                <ul id="yearList">
+                                                    <li><a href="#">2012</a></li>
+                                                    <li><a href="#">2013</a></li>
+                                                    <li><a href="#">2014</a></li>
+                                                    <li><a href="#">2015</a></li>
+                                                    <li><a href="#">2016</a></li>
+                                                    <li><a href="#">2017</a></li>
+                                                    <li><a href="#">2018</a></li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </li>
+                                    <li><a href="#">按月份筛选</a>
+                                        <div id="collapseMonth" class="panel-collapse collapse">
+                                            <div class="panel-body">
+                                                <ul id="monthList">
+                                                    <li><a href="#">1</a></li>
+                                                    <li><a href="#">2</a></li>
+                                                    <li><a href="#">3</a></li>
+                                                    <li><a href="#">4</a></li>
+                                                    <li><a href="#">5</a></li>
+                                                    <li><a href="#">6</a></li>
+                                                    <li><a href="#">7</a></li>
+                                                    <li><a href="#">8</a></li>
+                                                    <li><a href="#">9</a></li>
+                                                    <li><a href="#">10</a></li>
+                                                    <li><a href="#">11</a></li>
+                                                    <li><a href="#">12</a></li>
+                                                </ul>
+                                            </div>
+                                        </div>
+                                    </li>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <h4 class="panel-title">
+                                <a data-toggle="collapse" data-parent="#accordion"
+                                   href="#collapseTwo">
+                                    其他
+                                </a>
+                            </h4>
+                        </div>
+                        <div id="collapseTwo" class="panel-collapse collapse">
+                            <div class="panel-body">
+                               暂无
+                            </div>
+                        </div>
+                    </div>
+                    &lt;!&ndash;<div class="panel panel-default">
+                        <div class="panel-heading">
+                            <h4 class="panel-title">
+                                <a data-toggle="collapse" data-parent="#accordion"
+                                   href="#collapseThree">
+                                    点击我进行展开,再次点击我进行折叠。第 3 部分
+                                </a>
+                            </h4>
+                        </div>
+                        <div id="collapseThree" class="panel-collapse collapse">
+                            <div class="panel-body">
+                                Nihil anim keffiyeh helvetica, craft beer labore wes anderson
+                                cred nesciunt sapiente ea proident. Ad vegan excepteur butcher
+                                vice lomo.
+                            </div>
+                        </div>
+                    </div>&ndash;&gt;
+                </div>
+            </div>-->
+           <!-- <div class="col-xs-10">
+
+            </div>-->
+            <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
+            <div id="main" style="width: 100%;height:400px;"></div>
+        </div>
+    </div>
+
+</section>
+<!-- section end -->
+
+</body>
+<script type="text/javascript" src="static/lib/jquery/jquery.min.js"></script>
+<script type="text/javascript" src="static/lib/bootstrap/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="static/lib/bootstrap-tour/js/bootstrap-tour.min.js"></script>
+<script type="text/javascript" src="static/js/common/statistics.js"></script>
+<script type="text/javascript" src="static/js/index/app.js"></script>
+<script type="text/javascript" src="static/js/common/common.js"></script>
+</html>

+ 1 - 0
src/main/webapp/WEB-INF/webmvc.xml

@@ -62,6 +62,7 @@
 	<mvc:view-controller path="/invite" view-name="inviteList" />
 	<mvc:view-controller path="/notice" view-name="noticeList" />
     <mvc:view-controller path="/notice_detail" view-name="noticeDetail" />
+	<mvc:view-controller path="/statisticsChart" view-name="statisticsChart" />
 	<mvc:interceptors>
 		<!-- SSO过滤 -->
 		<mvc:interceptor>

+ 74 - 0
src/main/webapp/resources/js/common/statistics.js

@@ -0,0 +1,74 @@
+/**
+ * 引入toaster方法
+ */
+document.write("<script language=javascript src='static/lib/echarts/echarts.min.js'></script>");
+
+function getStatisticsList() {
+    $.ajax({
+        type: 'GET',
+        url: 'statistics/regist/enterprise',
+        data: {
+            groupType: 'year',
+            key: 2018
+        },
+        dataType: 'json',
+        success: function(data) {
+            if (data.code == 0) {
+                initStatistics(data);
+                $('#title').text(data.msg);
+            }
+        },
+        error: function (error) {
+            alert(error.responseText);
+        }
+    });
+}
+
+function initStatistics(data) {
+    // 基于准备好的dom,初始化echarts实例
+    var myChart = echarts.init(document.getElementById('main'));
+    var xAxisList = [];
+    var seriesList = [];
+    for (var i = 0; i < data.data.length; i++) {
+        xAxisList.push(data.data[i].xAxisName);
+        seriesList.push(data.data[i].count);
+    }
+
+    // 指定图表的配置项和数据
+    option = {
+        xAxis: {
+            type: 'category',
+            data: xAxisList
+        },
+        tooltip: {
+            trigger: 'axis'
+        },
+        yAxis: {
+            type: 'value'
+        },
+        series: [{
+            data: seriesList,
+            stack: '总量',
+            type: 'line'
+        }]
+    };
+    // 使用刚指定的配置项和数据显示图表。
+    myChart.setOption(option);
+}
+
+
+$(function() {
+    'use strict';
+
+    // 监听页面滚动
+    $(window).scroll(function() {
+        if($(window).scrollTop() >= 400) {
+            $('#nav').addClass('on');
+        } else {
+            $('#nav').removeClass('on');
+        }
+    });
+
+    getStatisticsList();
+
+});