chengkun
2025-05-26 8f3df543230cd4403368b39b9bbe5726d11a0284
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
<?php
 
 
class crm_audit_controller extends adminCommon
{
 
    function index_action()
    {
 
        $companyorderM  =   $this->MODEL('companyorder');
 
        $where = $urlarr = array();
 
        $where['order_state']   =   2;
        $where['order_price']   =   array('>', 0);
 
        if (isset($_GET['iscrm']) && $_GET['iscrm'] == 1){
 
            $where['crm_uid']   =   array('>', 0);
            $urlarr['iscrm']    =   $_GET['iscrm'];
        }
 
        if ($_GET['time']) {
            if ($_GET['time'] == -1) {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('y'));
                $timeEnd    =   time();
            } elseif ($_GET['time'] == 1) {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('y')) - 86400;
                $timeEnd    =   mktime(23, 59, 59, date('m'), date('d'), date('Y')) - 86400;
            } else {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('Y')) - $_GET['time'] * 86400;
                $timeEnd    =   mktime(23, 59, 59, date('m'), date('d'), date('Y'));
            }
            $where['PHPYUNBTWSTART_A']  =  '';
            $where['order_time'][]      =   array('>=', $timeBegin, '');
            $where['order_time'][]      =   array('<=', $timeEnd, '');
            $where['PHPYUNBTWEND_A']    =  '';
            $urlarr['time']             =   urlencode($_GET['time']);
        }
        if ($_GET['stime']) {
 
            $stime  =   explode('-', $_GET['stime']);
            $etime  =   explode('-', $_GET['etime']);
 
            $timeBegin  =   mktime(0, 0, 0, $stime[1], $stime[2], $stime[0]);
            $timeEnd    =   mktime(23, 59, 59, $etime[1], $etime[2], $etime[0]);
            $where['PHPYUNBTWSTART_A']  =  '';
            $where['order_time'][]      =   array('>=', $timeBegin, '');
            $where['order_time'][]      =   array('<=', $timeEnd, '');
            $where['PHPYUNBTWEND_A']    =  '';
 
            $urlarr['stime']    =   urlencode($_GET['stime']);
            $urlarr['etime']    =   urlencode($_GET['etime']);
        }
 
        $where['groupby']   =   'date';
        $urlarr             =   $_GET;
        $urlarr['page']     =   '{{page}}';
        $pageurl            =   Url($_GET['m'], $urlarr, 'admin');
 
        $limit  =   10;
        $page   =   $_GET['page'] < 1 ? 1 : $_GET['page'];
 
        $rows   =   $companyorderM->getList($where, array('field' => "sum(order_price) as `num`,FROM_UNIXTIME(order_time,'%Y-%m-%d') as `date`"));
        $num    =   count($rows);
        $pages['total'] =   $num;
 
        if ($num > $limit) {
 
            $pagenav        =   Page($page, $num, $limit, $pageurl, $notpl = false, $this->tpl, 'pagenav');
            $pages['pages'] =   ceil($num / $limit);
            $this->yunset('pagenav', $pagenav);
        }
 
        if ($pages['total'] > 0) {
            if ($_GET['order']) {
 
                $where['orderby']   =   $_GET['t'] . ',' . $_GET['order'];
                $urlarr['order']    =   $_GET['order'];
                $urlarr['t']        =   $_GET['t'];
            } else {
 
                $where['orderby']   =   'date';
            }
 
            $where['limit'] =   array(($page - 1) * $limit, $page * $limit);
            $orderRows      =   $companyorderM->getList($where, array('field' => "sum(order_price) as `num`,FROM_UNIXTIME(order_time,'%Y-%m-%d') as `date`, FROM_UNIXTIME(order_time,'%d') as `day`, FROM_UNIXTIME(order_time,'%m') as `month`, FROM_UNIXTIME(order_time,'%Y') as `year`"));
        }
 
        //支出
        $owhere['order_state']  =   1;
 
        if ($_GET['time']) {
            if ($_GET['time'] == -1) {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('y'));
                $timeEnd    =   time();
            } elseif ($_GET['time'] == 1) {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('y')) - 86400;
                $timeEnd    =   mktime(23, 59, 59, date('m'), date('d'), date('Y')) - 86400;
            } else {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('Y')) - $_GET['time'] * 86400;
                $timeEnd    =   mktime(23, 59, 59, date('m'), date('d'), date('Y'));
            }
            $owhere['PHPYUNBTWSTART_A'] =  '';
            $owhere['time'][]           =   array('>=', $timeBegin, '');
            $owhere['time'][]           =   array('<=', $timeEnd, '');
            $owhere['PHPYUNBTWEND_A']   =  '';
        }
 
        if ($_GET['stime']) {
 
            $stime  =   explode('-', $_GET['stime']);
            $etime  =   explode('-', $_GET['etime']);
 
            $timeBegin  =   mktime(0, 0, 0, $stime[1], $stime[2], $stime[0]);
            $timeEnd    =   mktime(23, 59, 59, $etime[1], $etime[2], $etime[0]);
            $owhere['PHPYUNBTWSTART_A'] =  '';
            $owhere['time'][]           =   array('>=', $timeBegin, '');
            $owhere['time'][]           =   array('<=', $timeEnd, '');
            $owhere['PHPYUNBTWEND_A']   =  '';
        }
 
        $owhere['groupby']      =   'date';
 
        $fieldo =   "sum(order_price) as `num`,from_unixtime(`time`,'%Y-%m-%d') as `date`";
        $packM  =   $this->MODEL('pack');
        $out    =   $packM->getList($owhere, array('field' => $fieldo));
        $outArr =   array();
        foreach ($out as $r) {
            $outArr [$r['date']]    =   $r['num'];
        }
 
        $swhere['order_state']      =   2;
        $swhere['crm_uid']          =   array('>', 0);
        if ($_GET['time']) {
            if ($_GET['time'] == -1) {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('y'));
                $timeEnd    =   time();
            } elseif ($_GET['time'] == 1) {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('y')) - 86400;
                $timeEnd    =   mktime(23, 59, 59, date('m'), date('d'), date('Y')) - 86400;
            } else {
 
                $timeBegin  =   mktime(0, 0, 0, date('m'), date('d'), date('Y')) - $_GET['time'] * 86400;
                $timeEnd    =   mktime(23, 59, 59, date('m'), date('d'), date('Y'));
            }
            $swhere['PHPYUNBTWSTART_A']     =  '';
            $swhere['order_time'][]         =   array('>=', $timeBegin, '');
            $swhere['order_time'][]         =   array('<=', $timeEnd, '');
            $swhere['PHPYUNBTWEND_A']       =  '';
        }
        if ($_GET['stime']) {
 
            $stime  =   explode('-', $_GET['stime']);
            $etime  =   explode('-', $_GET['etime']);
 
            $timeBegin  =   mktime(0, 0, 0, $stime[1], $stime[2], $stime[0]);
            $timeEnd    =   mktime(23, 59, 59, $etime[1], $etime[2], $etime[0]);
            $swhere['PHPYUNBTWSTART_A']     =  '';
            $swhere['order_time'][]         =   array('>=', $timeBegin, '');
            $swhere['order_time'][]         =   array('<=', $timeEnd, '');
            $swhere['PHPYUNBTWEND_A']       =  '';
        }
        $swhere['groupby']  =   'date';
        $fields             =   "sum(order_price) as `num`, from_unixtime(`order_time`,'%Y-%m-%d') as `date`";
        $salesmanOrder      =   $companyorderM->getList($swhere, array('field' => $fields));
        $salesmanOrderArr   =   array();
        foreach ($salesmanOrder as $r) {
            $salesmanOrderArr[$r['date']]   =   $r['num'];
        }
 
        foreach ($orderRows as &$r) {
            if (!isset($outArr[$r['date']])) {
 
                $r['out']   =   0.00;
                $r['total'] =   $r['num'];
            } else {
 
                $r['out']   =   $outArr[$r['date']];
                $r['total'] =   $r['num'] - $r['out'];
            }
            $r['salesmanNum']   =   isset($salesmanOrderArr[$r['date']]) ? $salesmanOrderArr[$r['date']] : 0;
        }
 
        $orderRows  =   $this->getDetail($orderRows);
 
        $this->yunset('order', $orderRows);
        $this->yuntpl(array('admin/crm_audit'));
    }
 
    private function getDetail($rows){
 
        $dateArr    =   array();
        foreach ($rows as $k => $v) {
            $dateArr[]  =   $v['date'];
        }
        $timeBegin  =   strtotime($dateArr[9]);
        $timeEnd    =   strtotime($dateArr[0]);
        $timeEnd    =   strtotime('+1 day', $timeEnd);
 
        $orderM     =   $this->MODEL('companyorder');
 
        if (isset($_GET['iscrm']) && $_GET['iscrm'] == 1){
 
            $where['crm_uid']       =   array('>', 0);
        }
 
        $where['order_state']       =   2;
        $where['PHPYUNBTWSTART_A']  =   '';
        $where['order_time'][]      =   array('>=', $timeBegin, 'AND');
        $where['order_time'][]      =   array('<=', $timeEnd, 'AND');
        $where['PHPYUNBTWEND_A']    =   '';
        $where['orderby']           =   'order_time';
 
 
        $orders     =   $orderM->getList($where, array('field' => '`id`,`uid`,`order_id`, order_price, order_type, order_time,`crm_uid`', 'utype' => 'crmaduit'));
 
        foreach ($rows as $k => $v) {
            foreach ($orders as $ok => $ov) {
                if ($v['date'] == $ov['date']){
                    $rows[$k]['orders'][]   =   $ov;
                }
            }
        }
        return $rows;
    }
 
    public function detail_action()
    {
 
        $orderM =   $this->MODEL('companyorder');
        $where  =   $urlarr =   array();
 
        $where['type']          =   1;
        $where['order_state']   =   2;
        $where['crm_uid']       =   array('>', 0);
 
        if ($_GET['date']) {
 
            $timeBegin  =   strtotime($_GET['date']);
            $timeEnd    =   strtotime('+1 day', $timeBegin);
 
            $where['PHPYUNBTWSTART_A']  =   '';
            $where['order_time'][]      =   array('>=', $timeBegin, 'AND');
            $where['order_time'][]      =   array('<=', $timeEnd, 'AND');
            $where['PHPYUNBTWEND_A']    =   '';
            $urlarr['date']             =   $_GET['date'];
        }
 
        $urlarr['c']        =   $_GET['c'];
        $urlarr             =   $_GET;
        $urlarr['page']     =   '{{page}}';
        $pageurl            =   Url($_GET['m'], $urlarr, 'admin');
 
        $pageM              =   $this->MODEL('page');
        $pages              =   $pageM->pageList('company_order', $where, $pageurl, $_GET['page']);
 
        if ($pages['total'] > 0) {
            if ($_GET['order']) {
 
                $where['orderby']   =   $_GET['t'] . ',' . $_GET['order'];
                $urlarr['order']    =   $_GET['order'];
                $urlarr['t']        =   $_GET['t'];
            } else {
 
                $where['orderby']   =   'order_time';
            }
            $where['limit']         =   $pages['limit'];
 
            $list   =   $orderM->getList($where, array('field' => '`id`,`uid`,`order_id`, order_price, order_time, `rating`,`crm_uid`', 'utype' => 'crmaduit'));
            $this->yunset(array('order' => $list));
        }
        $this->yuntpl(array('admin/crm_audit_detail'));
    }
}