source: pro-violet-viettel/sourcecode/application/modules/admin/controllers/user.php @ 883

Last change on this file since 883 was 883, checked in by namnd, 10 years ago
File size: 15.2 KB
Line 
1<?php
2
3if (! defined ( 'BASEPATH' ))
4        exit ( 'No direct script access allowed' );
5
6class User extends MX_Controller {
7        const TOKENPW = 'violet';
8        public function __construct() {
9                parent::__construct ();
10                $this->load->helper ( 'cookie' );
11                $this->load->helper('language');
12                $this->lang->load('messages', 'message');
13        }
14       
15        public function index() {
16               
17                $admin_info = $this->session->userdata ( 'adminInfo' );
18                if ($admin_info) {
19                        $data ['content'] = $this->get_users ();
20                        $this->load->view ( 'user/index', $data );
21                } else {
22                        $this->load->view ( 'login' );
23                }
24        }
25       
26        public function get_users() {
27                $this->load->helper ( 'pagging' );
28                $this->load->model ( 'user_model' );
29               
30                $provinces = lang('_PROVINCES_');
31                error_log(var_export($provinces, TRUE), 3, '/srv/www/sbg/log/provinces.log');
32               
33                $data ['current_page'] = $this->uri->segment ( 4, 1 );
34                $data ['itemsoptions'] = array (
35                                10,
36                                25,
37                                50,
38                                100
39                );
40                $data ['perpage'] = 10;
41                $data ['statusoptions'] = array (
42                                0 => "Tất cả",
43                                1 => "Đã đăng kÜ VIP",
44                                2 => "Dùng thá»­ 7 ngày",
45                                3=> "Dùng thá»­ hạn chế",
46                                4=> "Hết hạn"
47                );
48                $data ['status'] = 0;
49                if ($this->input->post ( 'status' )) {
50                        $data ['status'] = ( int ) $this->input->post ( 'status' );
51                }
52                $data['provinces'] = $provinces;
53                $data['province'] = '';
54                if ($this->input->post ( 'province' )) {
55                        $data ['province'] = $this->input->post ( 'province' );
56                }
57                if ($data['province'])
58                        $data['districts'] = $this->user_model->getDistrictByProvince($data ['province']);
59                if ($this->input->post ( 'district' )) {
60                        $data['district'] = $this->input->post ( 'district' );
61                }
62                $data ['keyword'] = "";
63                $data ['sorting_order'] = "sorting_desc";
64                $data ['sorting_field'] = "created_time";
65                if ($this->input->post ( 'sorting_order' )) {
66                        if ($this->input->post ( 'sorting_ord   er' ) != "sorting") {
67                                $data ['sorting_order'] = $this->input->post ( 'sorting_order' );
68                                $data ['sorting_field'] = $this->input->post ( 'sorting_field' );
69                        }
70                }
71                if ($this->input->post ( 'items' )) {
72                        $data ['perpage'] = $this->input->post ( 'items' );
73                }
74                if ($this->input->post ( 'keyword' )) {
75                        $data ['keyword'] = $this->input->post ( 'keyword' );
76                }
77                $data ['daterange_start'] = "";
78                $data ['daterange_end'] = "";
79                if ($this->input->post ( 'daterange' )) {
80                        $daterange = explode ( " - ", $this->input->post ( 'daterange' ) );
81                        $daterange [0] = str_replace ( '/', '-', $daterange [0] );
82                        $daterange [1] = str_replace ( '/', '-', $daterange [1] );
83                        $data ['daterange_start'] = date ( 'Y-m-d H:i:s', strtotime ( $daterange [0] ) );
84                        $data ['daterange_end'] = date ( 'Y-m-d H:is:s', strtotime ( $daterange [1] . ' + 1 day' ) );
85                }
86                $data ['start'] = ($data ['current_page'] - 1) * $data ['perpage'];
87                $data ['total'] = $this->user_model->get_total_users ( $data );
88                $us = $this->user_model->get_list_users ( $data );
89                $users = array ();
90               
91                foreach ( $us as $u ) {
92                        $dist = $this->user_model->getDistrictByIdAndProvince($u['district'], $u['province']);
93                        $u['district_name'] = $dist['type']." ".$dist['district_name'];
94                        $u ['province'] = isset($provinces[$u ['province']]) ? $provinces[$u ['province']] : $u ['province'];
95                       
96                        $userinfo = $this->get_userinfo ( $u ['us_id'] );
97                        if ($userinfo) {
98                                $u ['username'] = $userinfo ['username'];
99                                $u['fullname'] = $userinfo['fullname'];
100                        }
101                        array_push ( $users, $u );
102                }
103               
104                $data ['users'] = $users;
105                $data ['paging_url'] = base_url () . "admin/nguoi_dung/trang/";
106                $data ['num_links'] = 2;
107                $data ['paging'] = pagging ( $data );
108               
109                if ($this->input->is_ajax_request ()) {
110                        return $this->load->view ( 'user/listview', $data );
111                }
112                return $this->load->view ( 'user/listview', $data, true );
113        }
114       
115        public function edit_user() {
116
117                $admin_info = $this->session->userdata ( 'adminInfo' );
118                if ($admin_info) {
119                        $input = $this->input->post ();
120                        $result = array ();
121                        $result ['success'] = 0;
122                        $us_id = ( int ) $this->uri->segment ( 4, 0 );
123                        if ($us_id == 0) {
124                                $result ['success'] = 0;
125                        } else {
126                                $this->load->model ( 'user_model' );
127                                $input ['updated_time'] = date ( "Y-m-d H:i:s" );
128                                $this->user_model->update ( $us_id, $input );
129                                $result ['success'] = 1;
130                        }
131                        echo json_encode ( $result );
132                } else {
133                        $this->load->view ( 'login' );
134                }
135        }
136       
137        public function delete_user() {
138                $admin_info = $this->session->userdata ( 'adminInfo' );
139                if ($admin_info) {
140                        $result = array ();
141                        $result ['success'] = 0;
142                        $us_id = ( int ) $this->uri->segment ( 4, 0 );
143                        if ($us_id == 0) {
144                                $result ['success'] = 0;
145                        } else {
146                                $this->load->model ( 'user_model' );
147                                $this->user_model->delete ( $us_id );
148                                $result ['success'] = 1;
149                        }
150                        echo json_encode ( $result );
151                } else {
152                        $this->load->view ( 'login' );
153                }
154        }
155       
156        public function get_user_by_id() {
157                $admin_info = $this->session->userdata ( 'adminInfo' );
158                if ($admin_info) {
159                        $result = array ();
160                        $result ['success'] = 0;
161                        $us_id = ( int ) $this->uri->segment ( 4, 0 );
162                        if ($us_id == 0) {
163                                $result ['success'] = 0;
164                        } else {
165                                $this->load->model ( 'user_model' );
166                                $data = $this->user_model->search_by_id ( $us_id );
167                                $result ['item'] = $data;
168                                $result ['success'] = 1;
169                        }
170                        echo json_encode ( $result );
171                } else {
172                        $this->load->view ( 'login' );
173                }
174        }
175       
176        private function get_userinfo($us_id) {
177           
178                $src = 'violet';
179                $token = md5 ( $us_id . self::TOKENPW );
180                $this->load->model ( 'user_model' );
181                $data = $this->user_model->get_user_info ( $src, $us_id, $token );
182                $result = array ();
183                parse_str ( $data, $result );
184                return $result;
185        }
186       
187        public function export(){
188               
189                $this->load->helper ( 'pagging' );
190                $this->load->model ( 'user_model' );
191                $provinces = lang('_PROVINCES_');
192       
193                $data ['current_page'] = $this->uri->segment ( 4, 1 );
194                $data ['itemsoptions'] = array (
195                                10,
196                                25,
197                                50,
198                                100
199                );
200
201                $data ['perpage'] = $this->uri->segment (5, 10);
202                $data ['statusoptions'] = array (
203                                0 => "Tất cả",
204                                1 => "Đã đăng kÜ VIP",
205                                2 => "Dùng thá»­ 7 ngày",
206                                3=> "Dùng thá»­ hạn chế",
207                                4=> "Hết hạn"
208                );
209                $data ['status'] = $this->uri->segment (7, 0);
210                /*
211                if ($this->input->post ( 'status' )) {
212                        $data ['status'] = ( int ) $this->input->post ( 'status' );
213                }
214                */
215                $data['provinces'] = $provinces;
216                $data['province'] = $this->uri->segment (8);
217                if ($data['province'] == 'default') $data['province'] = null;
218                if ($this->input->post ( 'province' )) {
219                        $data ['province'] = $this->input->post ( 'province' );
220                }
221                if ($data['province'])
222                        $data['districts'] = $this->user_model->getDistrictByProvince($data ['province']);
223                if ($this->input->post ( 'district' )) {
224                        $data['district'] = $this->input->post ( 'district' );
225                }
226               
227                $data['district'] = $this->uri->segment (9);
228                if ($data['district'] == 'default') $data['district'] = null;
229                $data ['keyword'] = $this->uri->segment (6);
230                if ($data['keyword'] == 'default') $data['keyword'] = null;
231                $data ['sorting_order'] = "sorting_desc";
232                $data ['sorting_field'] = "created_time";
233                $data ['sorting_order'] = $this->uri->segment (11);
234                $data ['sorting_field'] = $this->uri->segment (12);
235               
236                if ($this->input->post ( 'sorting_order' )) {
237                        if ($this->input->post ( 'sorting_order' ) != "sorting") {
238                                $data ['sorting_order'] = $this->input->post ( 'sorting_order' );
239                                $data ['sorting_field'] = $this->input->post ( 'sorting_field' );
240                        }
241                }
242               
243                if ($this->input->post ( 'items' )) {
244                        $data ['perpage'] = $this->input->post ( 'items' );
245                }
246               
247                if ($this->input->post ( 'keyword' )) {
248                        $data ['keyword'] = $this->input->post ( 'keyword' );
249                }
250               
251                $data ['daterange_start'] = "";
252                $data ['daterange_end'] = "";
253                $daterange = $this->uri->segment (10);
254                if ($daterange == 'default') $daterange = null;
255                if($daterange){
256                        $daterange = explode ( " - ", $daterange );
257                        $daterange [0] = str_replace ( '/', '-', $daterange [0] );
258                        $daterange [1] = str_replace ( '/', '-', $daterange [1] );
259                        $data ['daterange_start'] = date ( 'Y-m-d H:i:s', strtotime ( $daterange [0] ) );
260                        $data ['daterange_end'] = date ( 'Y-m-d H:is:s', strtotime ( $daterange [1] . ' + 1 day' ) );
261                }
262                if ($this->input->post ( 'daterange' )) {
263                        $daterange = explode ( " - ", $this->input->post ( 'daterange' ) );
264                        $daterange [0] = str_replace ( '/', '-', $daterange [0] );
265                        $daterange [1] = str_replace ( '/', '-', $daterange [1] );
266                        $data ['daterange_start'] = date ( 'Y-m-d H:i:s', strtotime ( $daterange [0] ) );
267                        $data ['daterange_end'] = date ( 'Y-m-d H:is:s', strtotime ( $daterange [1] . ' + 1 day' ) );
268                }
269                $data ['start'] = ($data ['current_page'] - 1) * $data ['perpage'];
270                $data ['total'] = $this->user_model->get_total_users ( $data );
271                $us = $this->user_model->get_list_users ( $data );
272                $users = array ();
273               
274                foreach ( $us as $u ) {
275                        $dist = $this->user_model->getDistrictByIdAndProvince($u['district'], $u['province']);
276                        $u['district_name'] = $dist['type']." ".$dist['district_name'];
277                        $u ['province'] = isset($provinces[$u ['province']]) ? $provinces[$u ['province']] : $u ['province'];
278                       
279                        $userinfo = $this->get_userinfo ( $u ['us_id'] );
280                        if ($userinfo) {
281                                $u ['username'] = $userinfo ['username'];
282                                $u['fullname'] = $userinfo['fullname'];
283                        }
284                       
285                        if (strtotime($u['expire_date']) > time() && $u['p_id'] != 5 ){
286                                $u['status'] = 'Đã đăng kÜ VIP';
287                        }elseif(strtotime($u['expire_date']) > time() && $u['p_id'] == 5){
288                                $u['status'] = 'Dùng thá»­ 7 ngày';
289                        }elseif(strtotime($u['expire_date']) < time() && $u['p_id'] == 5){
290                                $u['status'] = 'Dùng thá»­ hạn chế';
291                        }else{
292                                $u['status'] = 'Hết hạn';
293                        }
294                       
295                        array_push ( $users, $u );
296                }
297       
298                $data ['users'] = $users;
299                $data ['paging_url'] = base_url () . "admin/nguoi_dung/trang/";
300                $data ['num_links'] = 2;
301                $data ['paging'] = pagging ( $data );
302               
303                $this->load->library("PHPExcel");
304        $sheet = $this->phpexcel->getActiveSheet();
305               
306        $sheet->setTitle("bao cao thue bao " . $data['month'] . " - " . $data['year']);
307        $sheet->getColumnDimension('A')->setWidth(10);
308        $sheet->getColumnDimension('B')->setWidth(25);
309        $sheet->getColumnDimension('C')->setWidth(25);
310        $sheet->getColumnDimension('D')->setWidth(15);
311        $sheet->getColumnDimension('E')->setWidth(15);
312        $sheet->getColumnDimension('F')->setWidth(15);
313        $sheet->getColumnDimension('G')->setWidth(15);
314        $sheet->getColumnDimension('H')->setWidth(25);
315        $sheet->getColumnDimension('I')->setWidth(25);
316               
317               
318                $sheet->setCellValue('B1', "TẬP ĐOÀN VIỄN THÔNG QUÂN ĐỘI");
319                $style = array(
320                        'font' => array('bold' => true, 'size' => 12, 'name' =>'Cambria', 'color' => array('rgb' => '0070bf')),
321                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
322                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
323                                                                'wrap' => true )
324                );
325                $sheet->mergeCells('B1:I1');
326                $sheet->getStyle('B1')->applyFromArray($style);
327               
328                $sheet->setCellValue('B2', "TỔNG CÔNG TY VIỄN THÔNG VIETTEL");
329                $style = array(
330                        'font' => array('size' => 12, 'name' =>'Cambria', 'color' => array('rgb' => '0070bf')),
331                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
332                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
333                                                                'wrap' => true )
334                );
335                $sheet->mergeCells('B2:I2');
336                $sheet->getStyle('B2')->applyFromArray($style);
337               
338               
339                $sheet->setCellValue('A4', "DANH SÁCH NGƯỜI DÙNG");
340                $style = array(
341                        'font' => array('bold' => true, 'size' => 14, 'name' =>'Cambria'),
342                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
343                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
344                                                                'wrap' => true )
345                );
346                $sheet->mergeCells('A4:I4');
347                $sheet->getStyle('A4')->applyFromArray($style);
348               
349                $sheet->setCellValue('A6', 'STT');
350                $style = array(
351                        'font' => array('bold' => true, 'size' => 11, 'name' =>'Cambria'),
352                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
353                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
354                                                                'wrap' => true),
355                        'borders' =>    array(
356                                'allborders' => array(
357                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
358                                        )
359                        )
360                );
361                $sheet->getStyle('A6')->applyFromArray($style);
362                $style = array(
363                        'font' => array('bold' => true, 'size' => 11, 'name' =>'Cambria'),
364                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
365                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER,
366                                                                'wrap' => true),
367                        'borders' =>    array(
368                                'allborders' => array(
369                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
370                                        )
371                        )
372                );
373               
374                $sheet->setCellValue('B6', 'Số điện thoại');
375                $sheet->setCellValue('C6', "Họ tên)");
376                $sheet->setCellValue('D6', "Tài khoản SBG");
377                $sheet->setCellValue('E6', "Ngày đăng kÜ");
378                $sheet->setCellValue('F6', "Ngày hết hạn");
379                $sheet->setCellValue('G6', "Tỉnh/Thành phố");
380                $sheet->setCellValue('H6', "Quận/Huyện");
381                $sheet->setCellValue('I6', "Tình trạng");
382                $sheet->getStyle('A6:I6')->applyFromArray($style);
383               
384                $styleSTT = array(
385                        'font' => array('size' => 11, 'name' =>'Cambria'),
386                        'alignment' => array('horizontal' => \PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
387                                                                'vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER),
388                        'borders' =>    array(
389                                'allborders' => array(
390                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
391                                        )
392                        )
393                );
394                $style = array(
395                        'font' => array('size' => 11, 'name' =>'Cambria'),
396                        'alignment' => array('vertical' => \PHPExcel_Style_Alignment::VERTICAL_CENTER),
397                        'borders' =>    array(
398                                'allborders' => array(
399                                        'style' => \PHPExcel_Style_Border::BORDER_THIN
400                                        )
401                        )
402                );
403                $dem = 0;
404                foreach ($users as $index => $user):
405                        $sheet->setCellValue('A' . ($dem + 7), $index + 1);
406                        $sheet->setCellValueExplicit('B' . ($dem + 7), $user['username'], PHPExcel_Cell_DataType::TYPE_STRING);
407            $sheet->setCellValue('C' . ($dem + 7), $user['fullname']);
408            $sheet->setCellValue('D' . ($dem + 7), $user['acc_balanced']);
409            $sheet->setCellValue('E' . ($dem + 7), date('d/m/Y', strtotime($user['created_time'])));
410            $sheet->setCellValue('F' . ($dem + 7), isset($user['expire_date']) && strtotime($user['expire_date']) > 0 ? date('d/m/Y', strtotime($user['expire_date'])) : '');
411            $sheet->setCellValue('G' . ($dem + 7), $user['province']);
412            $sheet->setCellValue('H' . ($dem + 7), $user['district_name']);
413                        $sheet->setCellValue('I' . ($dem + 7), $user['status']);
414                        $sheet->getStyle('A' . ($dem + 7))->applyFromArray($styleSTT);
415                        $sheet->getStyle('B' . ($dem + 7).':I'.($dem + 7))->applyFromArray($style);
416                       
417                       
418                        $dem++;
419                endforeach;
420               
421                $writer = new PHPExcel_Writer_Excel5($this->phpexcel);
422                header('Content-Type: application/vnd.ms-excel');
423        header('Content-Disposition: attachment; filename="danhsachnguoidung_trang_'.$data['current_page'].'.xls"');
424        $writer->save('php://output');
425               
426        }
427       
428}
Note: See TracBrowser for help on using the repository browser.