echarts+thinkphp+sql实现的筛选时间,分组,对应在日历中显示该月份的对应天数巡查次数。

11 篇文章 0 订阅
3 篇文章 0 订阅

这里写图片描述
1.数据库表:
a)用户表
b)组表
c)巡查记录表
2.数据类型
1.前台生成:
/**
* 创建前十年
* */
function getYears(){

var date = new Date();
var noewYear = date.getFullYear();
var mm = [];
for(var i = 0 ; i < 10; i++){
var newyear = noewYear - i;
var mp = {
“id”:i,
“text”:newyear
}
mm.push(mp);
}
(“#select_year”).combobox({  
      data:mm,  
      onSelect:function(record){  
         year_bool = true;  
         group_bool = false;  
         s_year = record.text;  
         if(s_groupid==-1){  
            getYearData(s_year);  
            thisyear = s_year  
         }else{
(‘#group’).combobox(‘setValue’,’-1’);
getYearData(s_year);
thisyear = s_year
}

  },
  valueField:'id',
  textField:'text'

});
}

2.easyui的下拉:
$(‘#group’).combobox({
url:’URL/group’,
valueField:’id’,
textField:’text’,
});
$(“#group”).combobox({
onSelect: function () {

  group_bool = true;
  year_bool = false;

  s_groupid = $('#group').combobox('getValue');
  if(s_groupid==-1){
     getYearData(s_year);
  }else{
     $.getJSON("__URL__/getDataFromYear_group",{"groupid":s_groupid,"year":s_year},function(result){
        var res = eval(result);
        var sum=0;
        for(var i=1;i<=res.length;i++){
           sum+=res[i-1];
        }
        $('#group_number').text("该组本年巡查频数"+sum+"次");
        var data_number = res;
        var M_json = ["12","11","10","09","08","07","06","05","04","03","02","01"];
        var option = createFutureOptionAll(M_json,data_number.reverse(data_number));
        leixin.setOption(option);

     })
  }

}
});

3.月份数据类型:数组
var M_json = [“12”,”11”,”10”,”09”,”08”,”07”,”06”,”05”,”04”,”03”,”02”,”01”];

4.每个月对于的数量:
数组类型:后台处理过在返回前台。

5.点击柱状图获取对于的name也就是数组月。后台查询到数据返回

6.向日历中插入某天的数量。
1.遍历tb中的数字。
2.返回数组中数据如1号有很多,需遍历后去重,也就是1号。
3.去重的数量,1号对应去重了2次,那么对应的1号就有两条记录。
4.查找对应日历中有1号的内容,向里面添加
“+kv+”

index:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>

        <meta charset="utf-8">
        <meta name="author" content="hetu">
        <include file="Common:head" />
        <include file="Common:formvalidator" />
        <link rel="stylesheet" type="text/css" href="__STATIC__/data/stylesheets/stylesheet.css" media="screen">
        <link rel="stylesheet" type="text/css" href="__STATIC__/data/stylesheets/print.css" media="print">
        <link rel="stylesheet" type="text/css" href="__STATIC__/data/stylesheets/simple-calendar.css">

        <title><{:C('SYSTEM_NAME')}></title>
        <style>
            *{ margin:0; padding:0;}
            .choosecal{ width:96%; margin:3% auto; overflow:hidden;}
            .ccaltop{ width:100%; border-radius:5px; }
            .caltline1,.caltline2{ width:94%; background-color:#F90; overflow:hidden; padding:2% 3%;}
            .caltline1 p,.caltline2 p{ float:left; width:10%; font-weight:700; text-align:right;}
            .caltline1 .bookdate{ width:90%; text-align:left;}
            .caltline2{ background-color:#FFF; display:black;}
            .caltline2 p{ width:20%;}
            .caltline2 .datetext{ width:35%; border:1px solid #000;
                background-color:#FFF; font-weight:700;}
            .inputdate{ color:#F60;}
            .calender{ width:100%; margin-top:3%; overflow:hidden; display:none;}
            .selectmouth{ background-color:#3398db; width:94%;
                overflow:hidden;padding:2% 3%;border-radius:5px 5px 0 0;}
            .selectmouth p{ float:left; width:33%; color:#FFF;
                font-weight:700; cursor:pointer;}
            .selectmouth .selectdate{ width:100%; background: none;
                border:none;box-sizing: border-box;
                border:none; color:#FFF; font-weight:700; text-align:center;}
            .data_table{ width:100%;border:1px solid #cccccc;
                border-collapse:collapse; }
            .data_table thead{ background-color:#333;}
            .data_table thead td{ color:#FFF; text-align:center;            border:1px solid #333;border-collapse:collapse; padding:1% 0;
            }
            .data_table tbody td{border:1px solid #cccccc;
                border-collapse:collapse;
                height: 50px;
                font-weight: 500;
                position: relative;

                line-height: 50px;
                text-align:center;color:#0C6;padding:1% 0;
            }
            .data_table tbody td.orderdate{ color:#000; }
            .data_table tbody td.tdselect{ color:#fff;background-color:#999;}
        </style>
        <style>
            #calendar{
                /*width: 50%*/
            }
            #content-wrapper{
                margin: 0px;
            }
            .clearfix{

                /*margin-bottom: 50px !important;*/
            }
            .sc-calendar{
                width: 100%;
                height: 508px;
            }
            ol,ul,li{
                margin: 0px;
                padding: 0px;
                list-style: none;
            }
            .data-ul{

            }
            .data-ul span{
                margin-right: 10px;
            }
            .data-ul li{
                overflow: hidden;
                padding: 10px;
                background: #c1c0c0;
                color: #000;
                box-sizing: content-box;
                box-sizing: border-box;
                border-bottom: 1px solid #f1ebe4;
            }
            .ico-i{
                width: 20px;
                height: 20px;
                display: block;
                float: left;
                border:1px solid #fff;
                background: #ff4201;
            }
        </style>
        <script type="text/javascript" src="__STATIC__/Admin/js/myjs/jquery.iframeWin.js"></script>
        <script type="text/javascript" src="__STATIC__/Admin/js/myjs/myCookies.js"></script>
        <script type="text/javascript" src="__STATIC__/js/echarts.min.js"></script>
        <script type="text/javascript" src="__STATIC__/data/esl.js"></script>
    </head>
    <body >
    <div  class="tyb-data" id="tyb-data" >
        <div id="content-wrapper" style="padding: 10px;">
            <div class="inner clearfix" style="width: 100%">
                <div style="width: 60%;float: left; text-align: center " id="tyb-shuju">
                    请选择年:<select id="select_year" name="select_year" style="height: 30px;width: 200px;"></select>
                    组织名称:<select id="group" name="type" style="height: 30px;width: 200px;"></select>
                    <span id="group_number" style="color: #ff0000"></span>
                    <div id="main" style="height:510px;"></div>
                </div>

                <div class="calender" style="display: block; width: 60%;width: 40%;float: left;margin: 0px;padding:0;">
                    <div class="selectmouth">
                        <p style="text-align:right; display: none;" class="lastmonth"><</p>
                        <p><input type="text" class="selectdate"  value="2017年2月" readonly=readonly /></p>
                        <p class="nextmonth" style="display: none;">></p>
                    </div>
                    <table id="data_table" class="data_table" cellspacing="0px">
                        <thead>
                        <tr>
                            <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                            <td>1</td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        <tr>
                            <td>1</td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        <tr>
                            <td>1</td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        <tr>
                            <td>1</td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        <tr>
                            <td>1</td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        <tr>
                            <td>1</td><td></td><td></td><td></td><td></td><td></td><td></td>
                        </tr>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript" src="__STATIC__/data/javascripts/simple-calendar.js"></script>
    <script type="text/javascript">

        Array.prototype.unique = function(){
            this.sort(); //先排序
            var res = [this[0]];
            for(var i = 1; i < this.length; i++){
                if(this[i] !== res[res.length - 1]){
                    res.push(this[i]);
                }
            }
            return res;
        }

        var leixin = null;
        var s_year = (new Date()).getFullYear();
        var s_month = (new Date()).getMonth()+1;
        var s_groupid= -1;
        var thisyear=null;
        var thismonth=null;

        var mydate=new Date();
        thisyear=s_year;
        thismonth=s_month;

        var thisday=mydate.getDate();
        var mydate1=new Date();
        var thisyear1=mydate1.getFullYear();
        var thismonth1=mydate1.getMonth()+1;
        var thisday1=mydate1.getDate();
        var selectday=thisday;
        //标记日期
        var indate=thisday;
        //入住日期
        var inmonth=thismonth;
        //入住月份
        var outdate=thisday+1;
        //退房日期
        var outmonth=thismonth;
        //退房月份
        var datetxt="datetoday";
        var datefirst;
        var datesecond;

        var year_bool = false;
        var group_bool = false;

            /**
             * 创建前十年
             * */
            function getYears(){

                var date = new Date();
                var noewYear = date.getFullYear();
                var mm = [];
                for(var i = 0 ; i < 10; i++){
                    var newyear = noewYear - i;
                    var mp = {
                        "id":i,
                        "text":newyear
                    }
                    mm.push(mp);
                }
                $("#select_year").combobox({
                    data:mm,
                    onSelect:function(record){
                        year_bool = true;
                        group_bool = false;
                        s_year = record.text;
                        if(s_groupid==-1){
                            getYearData(s_year);
                            thisyear = s_year
                        }else{
                            $('#group').combobox('setValue','-1');
                            getYearData(s_year);
                            thisyear = s_year
                        }

                    },
                    valueField:'id',
                    textField:'text'
                });
            }
        /**
         * 创建OPtion
         * @param value
         * @returns {*}
         */
        function createSOption(value) {
            var option = document.createElement("option");
            option.value = value;
            option.innerHTML = value;
            return option;
        }

        function getYearData(year){
            $.getJSON("__URL__/getDataFromYear_data",{"year":year},function(result){
                var res = eval(result);
                var sum=0;
                for(var i=1;i<=res.length;i++){
                    sum+=res[i-1];
                }
                $('#group_number').text("总巡查频数"+sum+"次");
                var data_number = res;
                var M_json = ["12","11","10","09","08","07","06","05","04","03","02","01"];
                var option = createFutureOptionAll(M_json,data_number);
                leixin.setOption(option);

            })
        }

        function setTdValue(k,kv){
            $("#data_table tbody td").each(function(){
                var tb_v= this.innerHTML;
                if(k==tb_v){
                    this.innerHTML = tb_v+"<span style='color: red; position: absolute; right: 0px;top: 0;color: #fff; height: 30px; width: 30px; display: block; line-height: 30px; text-align: ce nter; border-radius: 100px; background: #ff9900; font-size: 18px;'>"+kv+"</span>";
                }
            })
        }

        function getCount(arr,str){
            var str_count = 0;
            for(var i = 0; i <arr.length; i++) {
                if (arr[i] == str) {
                    str_count = str_count + 1;
                }
            }
            return str_count;
        }
        function string2date(str){
            return new Date(Date.parse(str.replace(/-/g,  "/")));
        }
        function convertDateFromString(dateString) {
            if (dateString) {
                var arr1 = dateString.split(" ");
                var sdate = arr1[0].split('-');
                var date = new Date(sdate[0], sdate[1]-1, sdate[2]);
                return date;
            }
        }
        $(function(){

            year_bool = true;
            group_bool = false;

            initeMyData();

            leixin = echarts.init(document.getElementById('main'));
            //初始化年
            getYears();
            //获取宽度
            var width = parseInt($('#tyb-shuju').get(0).offsetWidth);
            //将宽度赋值给视图
            document.getElementById('main').style.width = width;
            $('#group').combobox({
                url:'__URL__/group',
                valueField:'id',
                textField:'text',
            });
            $("#group").combobox({
                onSelect: function () {

                    group_bool = true;
                    year_bool = false;

                    s_groupid = $('#group').combobox('getValue');
                    if(s_groupid==-1){
                        getYearData(s_year);
                    }else{
                        $.getJSON("__URL__/getDataFromYear_group",{"groupid":s_groupid,"year":s_year},function(result){
                            var res = eval(result);
                            var sum=0;
                            for(var i=1;i<=res.length;i++){
                                sum+=res[i-1];
                            }
                            $('#group_number').text("该组本年巡查频数"+sum+"次");
                            var data_number = res;
                            var M_json = ["12","11","10","09","08","07","06","05","04","03","02","01"];
                            var option = createFutureOptionAll(M_json,data_number.reverse(data_number));
                            leixin.setOption(option);

                        })
                    }

                }
            });
            getYearData((new Date()).getFullYear());
            clickRightCaladar();

            $('#group').combobox("setValue","-1");

            leixin.on('click', function (params) {
                var month = params.name;
                s_month = parseInt(month);
                jQuery(".selectdate").val(s_year+"年"+s_month+"月");
                thisyear = s_year;
                thismonth = s_month;
                var groupid = $('#group').combobox('getValue');

                initdata();

                if(year_bool){
                    $.getJSON("__URL__/getDataFromYearAndMonth",{"year":s_year,"month":month,"groupid":groupid},function(result){
                        var res = eval(result);

                        var date_all = [];

                        for(var i =0 ;i < res.length; i ++){
                            var row_date = convertDateFromString(res[i]["uploaddate"]);
                            date_all.push(row_date.getDate());
                        }
                        var uniq_arr = date_all.unique();
                        var last_arr = [];

                        for(var j = 0 ; j < uniq_arr.length; j++){
                            var mp = {
                                "date":uniq_arr[j],
                                "num":getCount(date_all,uniq_arr[j])
                            }
                            last_arr.push(mp);
                        }
                        for(var x = 0 ;x< last_arr.length; x++ ){
                            var r = last_arr[x];
                            setTdValue(r['date'], r["num"]);
                        }
                    })
                }
                if(group_bool){
                    $.getJSON("__URL__/getDataFromYearAndMonth",{"year":s_year,"month":month,"groupid":groupid},function(result){
                        var res = eval(result);

                        var date_all = [];

                        for(var i =0 ;i < res.length; i ++){
                            var row_date = convertDateFromString(res[i]["uploaddate"]);
                            date_all.push(row_date.getDate());
                        }
                        var uniq_arr = date_all.unique();
                        var last_arr = [];

                        for(var j = 0 ; j < uniq_arr.length; j++){
                            var mp = {
                                "date":uniq_arr[j],
                                "num":getCount(date_all,uniq_arr[j])
                            }
                            last_arr.push(mp);
                        }
                        for(var x = 0 ;x< last_arr.length; x++ ){
                            var r = last_arr[x];
                            setTdValue(r['date'], r["num"]);
                        }


                    })
                }





            });

            //设置点击事件
        });
        function initeMyData() {
            jQuery(".selectdate").val(s_year + "年" + s_month + "月");
            s_month = parseInt(s_month);
            s_month = s_month < 10 ? "0" + s_month : s_month;
            thisyear = s_year;
            thismonth = s_month;
            initdata();
            $.getJSON("__URL__/getDataFromYearAndMonth", {
                "year": s_year,
                "month": s_month,
                "groupid": "-1"
            }, function (result) {
                var res = eval(result);

                var date_all = [];
                for (var i = 0; i < res.length; i++) {
                    var row_date = convertDateFromString(res[i]["uploaddate"]);
                    date_all.push(row_date.getDate());
                }
                var uniq_arr = date_all.unique();
                var last_arr = [];

                for (var j = 0; j < uniq_arr.length; j++) {
                    var mp = {
                        "date": uniq_arr[j],
                        "num": getCount(date_all, uniq_arr[j])
                    }
                    last_arr.push(mp);
                }
                for (var x = 0; x < last_arr.length; x++) {
                    var r = last_arr[x];
                    setTdValue(r['date'], r["num"]);
                }
            })
        }
        function orderabledate(thisyear,thismonth,thisday){
            //能预订的日期
            if(thisyear<thisyear1){
                jQuery(".data_table tbody td").addClass("orderdate");
                jQuery(".data_table tbody td").removeClass("usedate");
            }else if(thisyear==thisyear1){
                if(thismonth<thismonth1){
                    jQuery(".data_table tbody td").addClass("orderdate");
                    jQuery(".data_table tbody td").removeClass("usedate");
                }else if(thismonth==thismonth1){
                    for(var j=0;j<6;j++){
                        for(var i=0;i<7;i++){
                            var tdhtml=jQuery(".data_table tbody tr").eq(j).find("td").eq(i).html();
                            if(tdhtml<thisday){
                                jQuery(".data_table tbody tr").eq(j).find("td").eq(i).addClass("orderdate");
                                jQuery(".data_table tbody tr").eq(j).find("td").eq(i).removeClass("usedate");
                            }else{
                                jQuery(".data_table tbody tr").eq(j).find("td").eq(i).removeClass("orderdate");
                            }
                        }
                    }
                }else{
                    jQuery(".data_table tbody td").removeClass("orderdate");
                }
            }else{
                jQuery(".data_table tbody td").removeClass("orderdate");
            }
        }
        function markdate(thisyear,thismonth,thisday){
            //标记日期
            var datetxt=thisyear+"年"+thismonth+"月";
            var thisdatetxt=thisyear1+"年"+thismonth1+"月";
            jQuery(".data_table td").removeClass("tdselect");
            if(datetxt==thisdatetxt){
                for(var j=0;j<6;j++){
                    for(var i=0;i<7;i++){
                        var tdhtml=jQuery(".data_table tbody tr").eq(j).find("td").eq(i).html();
                        if(tdhtml==thisday){
                            jQuery(".data_table tbody tr").eq(j).find("td").eq(i).addClass("tdselect");
                        }
                    }
                }
            }
        }

        function initdata(){
            //日期初始填充
            var tdheight=jQuery(".data_table tbody tr").eq(0).find("td").height();
            jQuery(".data_table tbody td").css("height",tdheight);
            jQuery(".selectdate").val(thisyear+"年"+thismonth+"月");
            var days=getdaysinonemonth(thisyear,thismonth);
            var weekday=getfirstday(thisyear,thismonth);
            setcalender(days,weekday);
            markdate(thisyear,thismonth,selectday);
            orderabledate(thisyear,thismonth,thisday);
        }
        function getdaysinonemonth(year,month){
            //算某个月的总天数
            month=parseInt(month,10);
            var d=new Date(year,month,0);
            return d.getDate();
        }
        function getfirstday(year,month){
            //算某个月的第一天是星期几
            month=month-1;
            var d=new Date(year,month,1);
            return d.getDay();
        }
        function setcalender(days,weekday){
            //往日历中填入日期
            var a=1;
            for(var j=0;j<6;j++){
                for(var i=0;i<7;i++){
                    if(j==0&&i<weekday){
                        jQuery(".data_table tbody tr").eq(0).find("td").eq(i).html("");
                        jQuery(".data_table tbody tr").eq(0).find("td").eq(i).removeClass("usedate");
                    }else{
                        if(a<=days){
                            jQuery(".data_table tbody tr").eq(j).find("td").eq(i).html(a);
                            jQuery(".data_table tbody tr").eq(j).find("td").eq(i).addClass("usedate");
                            a++;
                        }else{
                            jQuery(".data_table tbody tr").eq(j).find("td").eq(i).html("");
                            jQuery(".data_table tbody tr").eq(j).find("td").eq(i).removeClass("usedate");
                            a=days+1;
                        }
                    }
                }
            }
        }
        function errorreset(){
            //日期报错后,数据重置
            thisyear=thisyear1;
            thismonth=thismonth1;
            thisday=thisday1;
            selectday=thisday1;
            indate=thisday1;
            inmonth=thismonth1;
            outdate=thisday1+1;
            outmonth=thismonth1;
            initdata();
        }


        function clickRightCaladar(){


            initdata();
            jQuery(".datetoday").val(thisyear+"-"+thismonth+"-"+thisday);
            jQuery(".dateendday").val(thisyear+"-"+thismonth+"-"+(thisday+1));

            jQuery(".data_table tbody td").live("click",function(){ //点击日期的效果
                var thishtml=parseInt(jQuery(this).html());
                jQuery(".data_table td").removeClass("tdselect");
                jQuery(this).addClass("tdselect");
                selectday=thishtml;
                if(datetxt=="datetoday"){
                    jQuery(".datetoday").val(thisyear+"-"+thismonth+"-"+selectday);
                    indate=selectday;
                    inmonth=thismonth;
                }else{
                    jQuery(".dateendday").val(thisyear+"-"+thismonth+"-"+selectday);
                    outdate=selectday;
                    outmonth=thismonth;
                    if(outmonth<inmonth){
                        alert("日期填写错误");
                        jQuery(".datetoday").val(thisyear1+"-"+thismonth1+"-"+thisday1);
                        jQuery(".dateendday").val(thisyear1+"-"+thismonth1+"-"+(thisday1+1));
                        errorreset();
                    }else if(outmonth==inmonth){
                        if(outdate<=indate){
                            alert("日期填写错误");
                            jQuery(".datetoday").val(thisyear1+"-"+thismonth1+"-"+thisday1);
                            jQuery(".dateendday").val(thisyear1+"-"+thismonth1+"-"+(thisday1+1));
                            errorreset();
                        }
                    }
                }
            });
            jQuery(".datetoday").click(function(){
                //选择入住日期
                datetxt="datetoday";
                jQuery(".datetext").removeClass("inputdate");
                jQuery(this).addClass("inputdate");
            });

            jQuery(".lastmonth").click(function(){
                //上一个月
                thismonth--;
                if(thismonth==0){
                    thismonth=12;
                    thisyear--;
                }
                initdata();
            });
            jQuery(".nextmonth").click(function(){
                //上一个月
                thismonth++;
                if(thismonth==13){
                    thismonth=1;
                    thisyear++;
                }
                initdata();
            });
            jQuery(".btsure").click(function(){
                //确定日期
                var start = new Date($(".datetoday").val());
                var end = new Date($(".dateendday").val());
                var diff = parseInt((end - start) / (1000*3600*24));
                jQuery(".bookdate").html(inmonth+"月"+indate+"日至"+outmonth+"月"+outdate+"日("+diff+")晚")
            });
            jQuery(".caltline1").toggle(
                    function(){
                        //jQuery(".caltline2").slideDown(500);
                        jQuery(".calender").fadeIn(500);
                        errorreset();
                        jQuery(".caltline1").find("img").attr("src","images/iconpointup.png");
                    },
                    function(){
                        //jQuery(".caltline2").slideUp(500);
                        jQuery(".calender").fadeOut(500);
                        jQuery(".caltline1").find("img").attr("src","images/iconpoint.png");
                    }
            );
        }
        function createFutureOptionAll(M_json,data_number){
            // 基于准备好的dom,初始化echarts实例
            var option = {
                tooltip : {
                    trigger: 'axis',
                    axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                        type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                    }
                },
    //          color:['#f8b22f','#eb3524','#88d431','#00f'],
                color:['#3398db'],
                legend: {
                    data: ['']
                },
                grid: {
                    left: '3%',
                    right: '4%',
                    bottom: '3%',
                    containLabel: true
                },
                xAxis:  {
                    type: 'value'
                },
                yAxis: {
                    type: 'category',
                    data: M_json,
                },
                series: [
                    {
                        name: '日常巡查频次统计',
                        type: 'bar',
                        stack: '总量',
                        label: {
                            normal: {
                                show: true,
                                position: 'insideRight'
                            }
                        },
                        data: data_number
                    },
                ]
            };
            return option;
        }
        var myCalendar = new SimpleCalendar('#calendar');
    </script>


    </body>
    </html>
控制器
<?php
/**
 * Created by PhpStorm.
 * User: insist
 * Date: 2017/3/30
 * Time: 10:36
 */
namespace  Admin\Controller;
class FrequencystatisticsController extends CommonController{

    /**
     * 根据行政区名称返回对应组织的任务信息
     * @param $regionName 组织中的行政区名称
     */
    public function statistics(){
//        $model = D("group")->distinct(true)->field('id,name')->select();
//        $root = array();
//        foreach ($model as $key => $value) {
//            $item = array();
//            $item["id"] = $value["id"];
//            $item["text"] = $value["name"];
//            $root[] = $item;
//        }

        $this->display("index");
    }
    //查询对应的分组
    public function guoup(){
        $tab_M = M("clue_address");
        $rel = $tab_M->select();
        dump($rel);
//        $this->display("index");
    }
    public function group(){

        $model = D("group")->distinct(true)->field('id,name')->select();
        $root = array();
        $item["id"] = "-1";
        $item["text"] = "全部";
        $root[] = $item;
        foreach ($model as $key => $value) {
            $item = array();
            $item["id"] = $value["id"];
            $item["text"] = $value["name"];
            $root[] = $item;
        }
        echo json_encode($root);
    }
    /*
     * 查询类型映射对应信息
     */
    public function comboTextPatrol()
    {
        $model = D($this->model_cluepatrol)->distinct(true)->field('type')->select();
        $root = array();
        foreach ($model as $key => $value) {
            $item = array();
            $item["id"] = $value["type"];
            $item["text"] = $value["type"];
            $root[] = $item;
        }
        echo json_encode($root);
    }

    public function s_All(){

        $news=M('clue_address');
        $time["uploaddate"]  = array("like","%".date("Y")."%");
        $newsInfo = $news->where($time)->field('uploaddate')->order("uploaddate")->select();
        $year = array();
        $map = array();
        $arr = array();
        $month = array();
        $ymonth = array();
        for( $i = 0 ; $i < count($newsInfo) ; $i++ ){
            array_push($year,date("Y",strtotime($newsInfo[$i]["uploaddate"])));//获取年份
            array_push($month,date("m",strtotime($newsInfo[$i]["uploaddate"])));//获取月份
            array_push($ymonth,date("Y-m",strtotime($newsInfo[$i]["uploaddate"])));//获取月份
        }
        $ymonth_2 = array_unique($ymonth);
        $ym_number = array();
        dump($ymonth_2);
        foreach($ymonth_2 as $k){
//            dump($k);
//            $nam = 2 ;
//            $ym_where["context"] = array("eq",$nam);
//            $ym_tb = M("clue_address")->where($ym_where)->select();
//            dump($ym_tb);
//            array_push($ym_number,count($ym_tb));
        }
        $nam = 03 ;
        $ym_where["uploaddate"] = array("like","%".$nam."%");
        $ym_tb = M("clue_address")->where($ym_where)->select();
        dump($ym_tb);
//        $ym = "2017";
//        $ym_x["uploaddate"] = array("like",$ym."%");
//        $ym_tb = M("clue_address")->where($ym_x)->select();
//        dump($ym_tb);
        $arr = array_unique($year);
        $ynumber  = array();
        foreach($arr as $k){
            $datetime_yaer["uploaddate"] = array("like","%".$k."%");
            $y_number = $news->where($datetime_yaer)->field('uploaddate')->select();
            array_push($ynumber,count($y_number));
            $y_number = $news->where($datetime_yaer)->field('uploaddate')->select();
        }


//        $arr["month"] = array_unique($month);
        $map["year"] =$arr;
        $map["ynumber"] = $ynumber;

//        dump($map["ynumber"]);
//        echo  json_encode($map);






    }

    function monthList($start,$end){
        if(!is_numeric($start)||!is_numeric($end)||($end<=$start)) return '';
        $start=date('Y-m',$start);
        $end=date('Y-m',$end);
        //转为时间戳
        $start=strtotime($start.'-01');
        $end=strtotime($end.'-01');
        $i=0;//http://www.phpernote.com/php-function/224.html
        $d=array();
        while($start<=$end){
            //这里累加每个月的的总秒数 计算公式:上一月1号的时间戳秒数减去当前月的时间戳秒数
            $d[$i]=trim(date('Y-m',$start),' ');
            $start+=strtotime('+1 month',$start)-$start;
            $i++;
        }
        return $d;
    }
    /**
     * 根据年来统计每个月的个数
     */
    function getDataFromYear(){
        $year = $_GET['uploaddate'];
        $where['uploaddate'] = array("like",'%'.$year."%");
        $yeardata = M('clue_address')->where($where)->select();

        $lastdata = array();

        //一月份 2017-01
        $countone = 0;
        $counttwo = 0;
        $countthree = 0;
        $countfour = 0;
        $countfive = 0;
        $countsix = 0;
        $countseven = 0;
        $counteight = 0;
        $countnine = 0;
        $countten = 0;
        $counteleven = 0;
        $counttwelve = 0;

        foreach($yeardata as $row){
            $uploaddate = $row['uploaddate'];
            if(strrpos($uploaddate,$year.'-01')>-1){
                $countone = $countone + 1;
            }
            if(strrpos($uploaddate,$year.'-02')>-1){
                $counttwo = $counttwo + 1;
            }
            if(strrpos($uploaddate,$year.'-03')>-1){
                $countthree = $countthree + 1;
            }
            if(strrpos($uploaddate,$year.'-04')>-1){
                $countfour = $countfour + 1;
            }
            if(strrpos($uploaddate,$year.'-05')>-1){
                $countfive = $countfive + 1;
            }
            if(strrpos($uploaddate,$year.'-06')>-1){
                $countsix = $countsix + 1;
            }
            if(strrpos($uploaddate,$year.'-07')>-1){
                $countseven = $countseven + 1;
            }
            if(strrpos($uploaddate,$year.'-08')>-1){
                $counteight = $counteight + 1;
            }
            if(strrpos($uploaddate,$year.'-09')>-1){
                $countnine = $countnine + 1;
            }
            if(strrpos($uploaddate,$year.'-10')>-1){
                $countten = $countten + 1;
            }
            if(strrpos($uploaddate,$year.'-11')>-1){
                $counteleven = $counteleven + 1;
            }

            if(strrpos($uploaddate,$year.'-12')>-1){
                $counttwelve = $counttwelve + 1;
            }

        }
        array_push($lastdata,array("one"=>$countone));
        array_push($lastdata,array("two"=>$counttwo));
        array_push($lastdata,array("three"=>$countthree));
        array_push($lastdata,array("four"=>$countfour));
        array_push($lastdata,array("five"=>$countfive));
        array_push($lastdata,array("six"=>$countsix));
        array_push($lastdata,array("seven"=>$countseven));
        array_push($lastdata,array("eight"=>$counteight));
        array_push($lastdata,array("nine"=>$countnine));
        array_push($lastdata,array("ten"=>$countten));
        array_push($lastdata,array("eleven"=>$counteleven));
        array_push($lastdata,array("twelve"=>$counttwelve));
        echo json_encode($lastdata);
    }

    /**
     * 根据年来统计每个月的个数
     */
    function getDataFromYear_data(){

        $year = I("get.year");
        $where['uploaddate'] = array("like",'%'.$year."%");
        $yeardata = M('clue_address')->where($where)->select();
        $lastdata = array();
        //一月份 2017-01
        $countone = 0;
        $counttwo = 0;
        $countthree = 0;
        $countfour = 0;
        $countfive = 0;
        $countsix = 0;
        $countseven = 0;
        $counteight = 0;
        $countnine = 0;
        $countten = 0;
        $counteleven = 0;
        $counttwelve = 0;

        foreach($yeardata as $row){
            $uploaddate = $row['uploaddate'];
            if(strrpos($uploaddate,$year.'-01')>-1){
                $countone = $countone + 1;
            }
            if(strrpos($uploaddate,$year.'-02')>-1){
                $counttwo = $counttwo + 1;
            }
            if(strrpos($uploaddate,$year.'-03')>-1){
                $countthree = $countthree + 1;
            }
            if(strrpos($uploaddate,$year.'-04')>-1){
                $countfour = $countfour + 1;
            }
            if(strrpos($uploaddate,$year.'-05')>-1){
                $countfive = $countfive + 1;
            }
            if(strrpos($uploaddate,$year.'-06')>-1){
                $countsix = $countsix + 1;
            }
            if(strrpos($uploaddate,$year.'-07')>-1){
                $countseven = $countseven + 1;
            }
            if(strrpos($uploaddate,$year.'-08')>-1){
                $counteight = $counteight + 1;
            }
            if(strrpos($uploaddate,$year.'-09')>-1){
                $countnine = $countnine + 1;
            }
            if(strrpos($uploaddate,$year.'-10')>-1){
                $countten = $countten + 1;
            }
            if(strrpos($uploaddate,$year.'-11')>-1){
                $counteleven = $counteleven + 1;
            }

            if(strrpos($uploaddate,$year.'-12')>-1){
                $counttwelve = $counttwelve + 1;
            }

        }
        array_push($lastdata,$countone);
        array_push($lastdata,$counttwo);
        array_push($lastdata,$countthree);
        array_push($lastdata,$countfour);
        array_push($lastdata,$countfive);
        array_push($lastdata,$countsix);
        array_push($lastdata,$countseven);
        array_push($lastdata,$counteight);
        array_push($lastdata,$countnine);
        array_push($lastdata,$countten);
        array_push($lastdata,$counteleven);
        array_push($lastdata,$counttwelve);
        echo json_encode(array_reverse($lastdata));

    }
    /**
     * 根据年和月来查询数据记录,返回某年某月的所有记录
     */
    public function  getDataFromYearAndMonth()
    {
        $month = $_GET['month'];
        $year = $_GET['year'];
        if ($year == "") {
            $year = (string)date('Y');
        }
        $groupid = $_GET['groupid'];
        if ($groupid=="-1") {
            $where['uploaddate'] = array("like", "%" . $year . "%") ;
            $yeardata = M('clue_address')->where($where)->select();
            $ldate = array();
            foreach ($yeardata as $row) {
                $mydate = $row["uploaddate"];
                if (strrpos($mydate, $year . "-" . $month) > -1) {
                    array_push($ldate, $row);
                }
            }
            echo json_encode($ldate);
        }else {
            $userdata = M("systemuser")->where(array("groupid"=>$groupid))->field("userid")->select();
            $userids = array();
            foreach($userdata as $user){
                array_push($userids,$user['userid']);
            }
            $useruploaddata = array();
            foreach($userids as $userid){
                $onedata = $this->getDataByUserid($userid);
                foreach($onedata as $row){
                    array_push($useruploaddata,$row);
                }
            }
            $yeardata = array();
            foreach($useruploaddata as $rowdata){
                if(strrpos($rowdata['uploaddate'],$year)>-1){
                    array_push($yeardata,$rowdata);
                }
            }

            $ldate = array();
            foreach ($yeardata as $row) {
                $mydate = $row["uploaddate"];
                if (strrpos($mydate, $year . "-" . $month) > -1) {
                    array_push($ldate, $row);
                }
            }

            echo json_encode($ldate);
        }
    }
    /**
     * 根据用户id获取对应的数据
     * @param $userid
     * @return mixed
     */
    function  getDataByUserid($userid){
        $data = M("clue_address")->where(array("userId"=>$userid))->select();
        return $data;
    }
    /**
     * 根据组来统计每个月的个数
     */
    function getDataFromYear_group(){
        if(!$_GET['year']){
            $user["uploaddate"] = array("like",'%'.date("Y")."%");
            $year = date("Y");
        }
        $groupid["groupid"]= $_GET['groupid'];
        $groupid["ismobileuser"] = "true";
        $users = M('systemuser')->where($groupid)->field('userid')->select();

        $guserids =  array();
        foreach($users as $user){
            array_push($guserids, $user['userid']);
        }

        $xa_data = array();
        foreach($guserids as $userid){
            $oneuser = $this->getDataByUserid($userid);
            foreach($oneuser as $row){
                array_push($xa_data,$row);
            }
        }


        $year = $_GET['year'];

        $lastdata = array();
        //一月份 2017-01
        $countone = 0;
        $countone_arr = array();
        $counttwo = 0;
        $counttwo_arr = array();
        $countthree = 0;
        $countthree_arr = array();
        $countfour = 0;
        $countfour_arr = array();
        $countfive = 0;
        $countfive_arr = array();
        $countsix = 0;
        $countsix_arr = array();
        $countseven = 0;
        $countseven_arr = array();
        $counteight = 0;
        $counteight_arr = array();
        $countnine = 0;
        $countnine_arr = array();
        $countten = 0;
        $countten_arr = array();
        $counteleven = 0;
        $counteleven_arr = array();
        $counttwelve = 0;
        $counttwelve_arr = array();

        foreach($xa_data as $row){
            $uploaddate = $row['uploaddate'];

            if(strrpos($uploaddate,$year.'-01')>-1){
                $countone = $countone + 1;

                array_push($countone_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-02')>-1){

                $counttwo = $counttwo + 1;
                array_push($counttwo_arr,$countone);

            }
            if(strrpos($uploaddate,$year.'-03')>-1){
                $countthree = $countthree + 1;
                array_push($countthree_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-04')>-1){
                $countfour = $countfour + 1;
                array_push($countfour_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-05')>-1){
                $countfive = $countfive + 1;
                array_push($countfive_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-06')>-1){
                $countsix = $countsix + 1;
                array_push($countsix_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-07')>-1){
                $countseven = $countseven + 1;
                array_push($countseven_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-08')>-1){
                $counteight = $counteight + 1;
                array_push($counteight_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-09')>-1){
                $countnine = $countnine + 1;
                array_push($countnine_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-10')>-1){
                $countten = $countten + 1;
                array_push($countten_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-11')>-1){
                $counteleven = $counteleven + 1;
                array_push($counteleven_arr,$countone);
            }
            if(strrpos($uploaddate,$year.'-12')>-1){
                $counttwelve = $counttwelve + 1;
                array_push($counttwelve_arr,$countone);
            }
        }

        array_push($lastdata,$countone);
        array_push($lastdata,$counttwo);
        array_push($lastdata,$countthree);
        array_push($lastdata,$countfour);
        array_push($lastdata,$countfive);
        array_push($lastdata,$countsix);
        array_push($lastdata,$countseven);
        array_push($lastdata,$counteight);
        array_push($lastdata,$countnine);
        array_push($lastdata,$countten);
        array_push($lastdata,$counteleven);
        array_push($lastdata,$counttwelve);

        echo json_encode($lastdata);




    }
    //获去所选月中的个数
    public  function getDataFromGroup(){

        $groupid["groupid"]= $_GET['groupid'];
//        $datetime = $_GET['uploaddate'];
        $_GET['uploaddate'] = 2017;
        if($_GET['uploaddate'] ){
            $user["uploaddate"] = array("like",'%'.$_GET['uploaddate']."%");
        }
        if(!$_GET['uploaddate']){
            $user["uploaddate"] = array("like",'%'.date("Y")."%");
        }
        $sdata = M('systemuser')->where($groupid)->field('userid')->select();
        $user_arr = array();
        foreach($sdata as $k=>$v){
            array_push($user_arr,$v["userid"]);
        }
        $number = array();
        for($i=0;$i<count($user_arr);$i++){
            $user["userId"] = $user_arr[$i];
            $sdata = M('clue_address')->where($user)->select();
            array_push($number,count($sdata));
        }
        dump($number);

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_28761593

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值