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

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