chengkun
2025-05-20 4c1f0f659384d71ce28be1fc0343e56e75568fe1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
<?php
 
class statis_hy_controller extends adminCommon{
 
    //图表类型 bar 柱形图,line折线图,pie饼形图
    private $chartType = 'pie';
    //消费最多企业统计
    public function index_action(){
 
        $CompanyorderM                    =            $this->MODEL('companyorder');
 
        $CompanyM                        =            $this->MODEL('company');
 
        $StatisM                        =            $this->MODEL('statis');
 
        $this->yunset('user', '行业');
 
        if(isset($_GET['radio_time'])){
            
            $this->yunset('radio_time', $_GET['radio_time']);
        }
 
        //查询报表数据
        $time_begin                     =             isset($_GET['time_begin']) ? $_GET['time_begin'] : date('Y-m-d 00:00:00', strtotime('-30 day'));
        
        $time_end                         =             isset($_GET['time_end']) ? $_GET['time_end'] :date('Y-m-d H:i:s');
        
        $this->yunset('defaultTimeBegin', $time_begin);
        
        $this->yunset('defaultTimeEnd', $time_end);
 
        $isAllTime                         =             isset($_GET['isAllTime']) ? $_GET['isAllTime'] : 0; 
 
 
        //查询30条内的信息,展示到页面第一屏
        if($isAllTime != 1){
 
            $timeBegin                     =             strtotime($time_begin);
 
        }else{
 
            $timeBegin                     =             strtotime(date('Y-m-d 00:00:00', strtotime('-30 year')));
 
        }    
        $timeEnd                        =             strtotime("now");
 
        list($in, $out, $net_income)     =             $StatisM->getStatisTotal($timeBegin,$timeEnd, '');
 
        $data []                         =             array('time' => '近30', 'in' => $in, 'out' => $out, 'net_income' => $net_income);
        
        $this->yunset('data', $data);
        
 
        //如果不是查询全部数据,组织查询的开始、结束时间
        if($isAllTime != 1){
 
            $timeBegin                     =             strtotime($time_begin);
 
            $timeEnd                     =             strtotime($time_end);
 
            $dateBegin                     =             date('Y-m-d', $timeBegin);
 
            $dateEnd                     =             date('Y-m-d', $timeEnd);
               
               $title                        =             "消费最多行业统计 - {$dateBegin}~{$dateEnd}";
        
        }else{
 
            $title                         =             "消费最多行业统计 - 全部数据";
        
        }
 
        $names                             =             array();//扇形每块的名称(收入渠道)
        
        $values                         =             array();//扇形每块的值
        
        $topNum                         =             10;//统计消费最多10个行业
 
        $comwhere['order_state']        =             2;//只查询已付款订单
 
    
 
        if($isAllTime != 1){
 
            $comwhere['order_time'][]    =            array('>=', $timeBegin);
        
            $comwhere['order_time'][]    =          array('<=', $timeEnd,'AND');
 
        }
 
        $comwhere['groupby']            =            'uid';
 
        $comwhere['orderby']            =            array('num,desc');    
 
        $limit                              =            $topNum * 10;
 
        $comwhere['limit']                 =            $limit;
 
        $comfield                         =            'sum(order_price) as `num`, `uid`';            
 
        $row                             =            $CompanyorderM->getList($comwhere,array('field'=>$comfield));
            
        $uidArr                          =             array();
 
        $uidValue                          =             array();
 
        foreach($row as $r){
 
            $uidArr []                      =             $r['uid'];
 
            $uidValue[$r['uid']]          =             $r['num'];
 
        }
        $uidStr                          =             implode(',', $uidArr);
 
        $companywhere['uid']             =            array('in',pylode(',',$uidArr));
 
        $companywhere['hy']                 =            array('>',0);
 
        $data                             =            $CompanyM->getChCompanyList($companywhere,array('field'=>'`uid`,`hy`'));
 
        foreach($data as $r){
            if(array_key_exists($r['hy'], $values) ){
 
                $values [$r['hy']]['value']     +=         $uidValue[$r['uid']];
 
            }
            else{
 
                $values [$r['hy']]['value']      =         $uidValue[$r['uid']];
 
                $values [$r['hy']]['hy']          =         $r['hy'];
 
            }
 
        }
 
        usort($values,'my_sort');
 
        $hy                 =                 $this->MODEL('cache')->GetCache(array('hy'));
 
        $total                 =                 0;
 
        $arr                 =                array();
 
        $i                     =                 0;
 
        foreach($values as $r){
 
            $names []         =                 $hy['industry_name'][$r['hy']];
 
            $rr['value']     =                 $r['value'];
 
            $rr['name']     =                 $hy['industry_name'][$r['hy']];
 
            $arr []         =                $rr;
 
            $total             +=                 $r['value'];
 
            $i ++;
 
            if($i == $topNum){
 
                break;
 
            }
 
        }
 
        $this->yunset('total', $total);
 
        $values             =                 $arr;
 
        $this->yunset(array('title' => $title,'names' => $names, 'values' => $values ));
 
        $c                     =                 isset($_GET['c']) ? $_GET['c'] : '';
 
        $this->yunset('gourl', "index.php?m={$_GET['m']}&c={$c}");
        
        $this->yuntpl(array('admin/statis_user'));
 
    }
 
}
?>