source: pro-violet-viettel/sourcecode/application/modules/frontend/controllers/user.php @ 520

Last change on this file since 520 was 517, checked in by dungnv, 11 years ago
File size: 15.9 KB
Line 
1<?php
2if (! defined ( 'BASEPATH' ))
3        exit ( 'No direct script access allowed' );
4class User extends MX_Controller {
5       
6        const TOKENPW = 'violet';
7
8        public function __construct() {
9                parent::__construct ();
10                $this->load->helper ( 'cookie' );
11        }
12       
13        public function profile() {
14                $user_info = $this->session->userdata ( 'userInfo' );
15                if ($user_info) {
16                        $this->load->model ( 'servicepackage_model' );
17                        $user = $user_info ['user'];
18                        $us_id = $user_info ['us_id'];
19                        $src = "SBG";
20                        $token = md5 ( $us_id . self::TOKENPW );
21                        $data = $this->get_data ( $src, $token, $us_id );
22                        $data ['packages'] = $this->servicepackage_model->getAllPackages ();
23                        $this->load->view ( 'frontend/user_profile', $data );
24                } else {
25                        redirect ( 'frontend/home' );
26                }
27        }
28       
29        public function packageRegister() {
30                $result = array ();
31                $input = $this->input->post ();
32                $user_info = $this->session->userdata ( 'userInfo' );
33                if ($user_info) {
34                        $this->load->model ( 'servicepackage_model' );
35                        $this->load->model ( 'user_model' );
36                        $package = $this->servicepackage_model->getPackage ( $input ['p_id'] );
37                        $user = $user_info ['user'];
38                        $us_id = $user_info ['us_id'];
39                        $user = $this->user_model->get_user_by_id ( $us_id );
40                        $result ['can_buy'] = 1;
41                        $result ['can_edit'] = 0;
42                        if ($user ['acc_balanced'] < $package ['p_price']) {
43                                $result ['can_buy'] = 0;
44                        }
45                       
46                        if ($user ['p_id'] < 1) {
47                                $result ['can_edit'] = 1;
48                        }
49                        $result ['user'] = $user;
50                        $result ['package'] = $package;
51                        $result ['modal'] = $this->load->view ( 'frontend/package_register_modal', $result, true );
52                } else {
53                }
54=======
55
56        if ($user_info) {
57            $this->load->model('servicepackage_model');
58            $user = $user_info['user'];
59            $us_id = $user_info['us_id'];
60            $src = "SBG";
61            $token = md5($us_id . self::TOKENPW);
62            $data = $this->get_data($src, $token, $us_id);
63            $data['current_tab'] = $this->uri->segment(4, 'edit-basic');
64            $data['packages'] = $this->servicepackage_model->getAllPackages();
65            $this->load->view('frontend/user_profile', $data);
66        } else {
67            redirect('frontend/home');
68        }
69    }
70
71    public function packageRegister() {
72        $result = array();
73        $input = $this->input->post();
74        $this->load->model('user_model');
75        $user_info = $this->session->userdata('userInfo');
76        if ($user_info) {
77            parse_str($user_info['user'], $info);
78            $this->load->model('servicepackage_model');
79
80            $package = $this->servicepackage_model->getPackage($input['p_id']);
81            $user = $user_info['user'];
82            $us_id = $user_info['us_id'];
83            $user = $this->user_model->get_user_by_id($us_id);
84            $result['can_buy'] = 1;
85            $result['can_edit'] = 0;
86            if ($user['acc_balanced'] < $package['p_price']) {
87                $result['can_buy'] = 0;
88            }
89            if ($user['p_id'] < 1) {
90                $result['can_edit'] = 1;
91            }
92            $result['info'] = $info;
93            $result['user'] = $user;
94            $result['package'] = $package;
95            $result['modal'] = $this->load->view('frontend/package_register_modal', $result, true);
96        } else {
97           
98        }
99        echo json_encode($result);
100    }
101
102    public function finishRegisterPackage() {
103        $result = array();
104        $result['success'] = 0;
105        $this->load->model('user_model');
106        $input = $this->input->post();
107        $user_info = $this->session->userdata('userInfo');
108        parse_str($user_info['user'], $info);
109        if (isset($input['fullname'])) {
110            if (strlen($input['fullname']) < 10) {
111                $result['errors'][] = "Vui lòng nhập tên đầy đủ tối thiểu 10 kí tá»±";
112            }
113            if (strlen($input['school']) < 10) {
114                $result['errors'][] = "Vui lòng nhập đơn vị quí vị đang cÃŽng tác tối thiểu 10 kí tá»±";
115            }
116            if (!isset($result['errors'])) {
117                $user_info = $this->session->userdata('userInfo');
118                if ($user_info) {
119
120                    $src = "SBG";
121                    $us_id = $user_info['us_id'];
122                    $input['password'] = '';
123                    $input['oldpass'] = '';
124                    $input['gender'] = '';
125                    $input['email'] = '';
126                    $input['province'] = '';
127                    $info['fullname'] = $input['fullname'];
128                    $info['school'] = $input['school'];
129                    $token = md5($us_id . self::TOKENPW);
130                    $user = $this->get_data($src, $token, $us_id);
131                    if ($input) {
132                        $this->load->model('user_model');
133                        $update = $this->user_model->update_user($src, $token, $input, $us_id);
134                        $info = urldecode(http_build_query($info));
135                        $userdata = array('username' => $user_info['username'], 'user' => $info, 'us_id' => $user_info['us_id'], 'logined_in' => TRUE);
136                        $this->session->set_userdata('userInfo', $userdata);
137                    }
138                }
139            }
140        }
141        if (isset($result['errors'])) {
142            echo json_encode($result);
143            die();
144        }
145        $this->load->model('servicepackage_model');
146        $us_id = $user_info['us_id'];
147        $user = $this->user_model->get_user_by_id($us_id);
148        $package = $this->servicepackage_model->getPackage($input['p_id']);
149        $user['acc_balanced'] = $user['acc_balanced'] - $package['p_price'];
150
151        if ($package['p_unit'] == "months") {
152            $user['expire_date'] = date('Y-m-d 00:00:00', strtotime("+" . $package['p_period'] . " months", strtotime($user['expire_date'])));
153        }
154        if ($package['p_unit'] == "days") {
155            $user['expire_date'] = date('Y-m-d 00:00:00', strtotime("+3 days", strtotime($user['expire_date'])));
156        }
157        $user['expire_date'] = date("Y-m-d 00:00:00", (strtotime($user['expire_date']) - 1));
158        $user['p_id'] = $package['p_id'];
159        $this->user_model->updateUser($us_id, $user);
160        $user['expire_date'] = date("d-m-Y", (strtotime($user['expire_date'])));
161        $result['expire_date'] = $user['expire_date'];
162        $result['success'] = 1;
163        echo json_encode($result);
164    }
165
166    private function get_data($src, $token, $us_id) {
167        $this->load->model('user_model');
168        $user = $this->user_model->get_user_info($src, $token, $us_id);
169
170        if (strpos($user, '&')) {
171            parse_str($user);
172            $us = $this->user_model->get_user_by_id($us_id);
173            $data = array('us_id' => $us_id, 'username' => $username, 'fullname' => $fullname,
174                'gender' => $gender, 'email' => $email, 'phone' => $phone, 'school' => $school, 'province' => $province,
175                'acc_balanced' => $us['acc_balanced'], 'expire_date' => $us['expire_date'], 'date_diff' => $this->dateDiff($us['expire_date'])
176            );
177            return $data;
178        } else {
179            return "";
180        }
181    }
182
183
184    private function dateDiff($expire_date) {
185        $date1 = date("Y-m-d");
186        if ((strtotime($expire_date) - strtotime($date1)) < 0)
187            return "0 ngày còn lại";
188        $diff = strtotime($expire_date) - strtotime($date1);
189        $years = floor($diff / (365 * 60 * 60 * 24));
190        $months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
191        $days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
192        if ($years > 0) {
193            return $years . " năm, " . $months . " tháng, " . $days . " ngày còn lại";
194        } else {
195            if ($months > 0) {
196                return $months . " tháng, " . $days . " ngày còn lại";
197            } else {
198                return $days . " ngày còn lại";
199            }
200        }
201    }
202
203    public function update_user() {
204        $us_id = $this->uri->segment(4);
205        $user_info = $this->session->userdata('userInfo');
206        if ($user_info) {
207            $result = array();
208            $result['success'] = 0;
209            $src = "SBG";
210            $token = md5($us_id . self::TOKENPW);
211            $user = $this->get_data($src, $token, $us_id);
212            $input = $this->input->post();
213            if ($input) {
214                $input['username'] = $user['username'];
215                if (array_key_exists('fullname', $input)) {
216                    if (strlen($input['fullname']) == 0) {
217                        $result['errors']['fullname_err'] = "Họ tên khÃŽng được để trống !";
218                    }
219                } else {
220                    $input['fullname'] = $user['fullname'];
221                }
222                /*
223                  if ($strlen($input['school']) == 0)
224                  {
225                  $result['errors']['school_err'] = "Đơn vị khÃŽng được để trống !";
226                  }
227                  if ($strlen($input['province']) == 0)
228                  {
229                  $result['errors']['province_err'] = "Tỉnh/thành khÃŽng được để trống !";
230                  } */
231                $input['password'] = '';
232                $input['oldpass'] = '';
233                $this->load->model('user_model');
234                //$result['fullname'] = $input['fullname'];
235                if (!isset($result['errors'])) {
236                    $result['data'] = $this->user_model->update_user($src, $token, $input, $us_id);
237                    $result['success'] = 1;
238                }
239>>>>>>> .r514
240<<<<<<< .mine
241                echo json_encode ( $result );
242        }
243       
244        private function get_data($src, $token, $us_id) {
245                $this->load->model ( 'user_model' );
246                $user = $this->user_model->get_user_info ( $src, $token, $us_id );
247               
248                if (strpos ( $user, '&' )) {
249                        parse_str ( $user );
250                        $us = $this->user_model->get_user_by_id ( $us_id );
251                        $data = array (
252                                        'us_id' => $us_id,
253                                        'username' => $username,
254                                        'fullname' => $fullname,
255                                        'gender' => $gender,
256                                        'email' => $email,
257                                        'phone' => $phone,
258                                        'school' => $school,
259                                        'province' => $province,
260                                        'acc_balanced' => $us ['acc_balanced'],
261                                        'expire_date' => $us ['expire_date'],
262                                        'date_diff' => $this->dateDiff ( $us ['expire_date'] )
263                        );
264                        return $data;
265                } else {
266                        return "";
267                }
268        }
269       
270        private function dateDiff($expire_date) {
271                $date1 = date ( "Y-m-d" );
272                if ((strtotime ( $expire_date ) - strtotime ( $date1 )) < 0)
273                        return "0 ngày còn lại";
274                $diff = strtotime ( $expire_date ) - strtotime ( $date1 );
275                $years = floor ( $diff / (365 * 60 * 60 * 24) );
276                $months = floor ( ($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24) );
277                $days = floor ( ($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24) );
278                if ($years > 0) {
279                        return $years . " năm, " . $months . " tháng, " . $days . " ngày còn lại";
280                } else {
281                        if ($months > 0) {
282                                return $months . " tháng, " . $days . " ngày còn lại";
283                        } else {
284                                return $days . " ngày còn lại";
285                        }
286                }
287        }
288       
289        public function update_user() {
290                $this->load->helper ( 'email' );
291                $us_id = $this->uri->segment ( 4 );
292                $user_info = $this->session->userdata ( 'userInfo' );
293                if ($user_info) {
294                        $result = array ();
295                        $result ['success'] = 0;
296                        $src = "SBG";
297                        $token = md5 ( $us_id . self::TOKENPW );
298                        $user = $this->get_data ( $src, $token, $us_id );
299                        $input = $this->input->post ();
300                        if ($input) {
301                                $input ['username'] = $user ['username'];
302                                $input ['fullname'] = $user ['fullname'];
303                                $input ['password'] = '';
304                                $input ['oldpass'] = '';
305                                $this->load->model ( 'user_model' );
306                                $result ['fullname'] = $input ['fullname'];
307                                if (strlen ( $input ['email'] ) > 0) {
308                                        if (! valid_email ( $input ['email'] )) {
309                                                $result ['errors'] ['email_err'] = "Email khÃŽng đúng định dạng";
310                                        }
311                                }
312                                if (! isset ( $result ['errors'] )) {
313                                        $result ['data'] = $this->user_model->update_user ( $src, $token, $input, $us_id );
314                                        $result ['success'] = 1;
315                                }
316                                echo json_encode ( $result );
317                        }
318                } else {
319                        redirect ( 'frontend/home' );
320                }
321        }
322       
323        public function change_password() {
324                $us_id = $this->uri->segment ( 4 );
325                $user_info = $this->session->userdata ( 'userInfo' );
326                if ($user_info) {
327                        $this->load->model ( 'user_model' );
328                        $us_id = $user_info ['us_id'];
329                        $src = "SBG";
330                        $token = md5 ( $us_id . self::TOKENPW );
331                        if (strlen ( $input ['passwd'] ) == 0) {
332                                $result ['errors'] ['passwd_old_err'] = "Mật khẩu khÃŽng được để trống !";
333                        }
334                        if (strlen ( $input ['passwd_new'] ) == 0) {
335                                $result ['errors'] ['passwd_new_err'] = "Mật khẩu khÃŽng được để trống !";
336                        } else if ($input ['passwd'] == $input ['passwd_new']) {
337                                $result ['errors'] ['passwd_new_err'] = "Mật khẩu trùng với mật khẩu hiện tại !";
338                        }
339                        if ($input ['passwd_new'] != $input ['confirm_passwd_new']) {
340                                $result ['errors'] ['confirm_passwd_new_err'] = "Mật khẩu khÃŽng trùng nhau !";
341                        }
342                        if (! isset ( $result ['errors'] )) {
343                                $user = array (
344                                                'username' => $username,
345                                                'fullname' => null
346                                );
347                                $data = $this->user_model->update_user ( $src, $token, $user, $us_id );
348                                parse_str ( $data );
349                                switch ($status) {
350                                        case 0 :
351                                                $result ['success'] = 1;
352                                                break;
353                                        case 6 :
354                                                $result ['errors'] ['passwd_old_err'] = "Mật khẩu cung cấp khÃŽng đúng !";
355                                                break;
356                                        default :
357                                                break;
358                                }
359                        }
360                       
361                        echo json_encode ( $result );
362                } else {
363                        redirect ( 'frontend/home' );
364                }
365        }
366}=======
367                echo json_encode($result);
368            }
369        } else {
370            redirect('frontend/home');
371        }
372    }
373
374    public function change_password() {
375        $us_id = $this->uri->segment(4);
376        $user_info = $this->session->userdata('userInfo');
377        if ($user_info) {
378            $this->load->model('user_model');
379            $us_id = $user_info['us_id'];
380            $src = "SBG";
381            $token = md5($us_id . self::TOKENPW);
382            $input = $this->input->post();
383            if (strlen($input['passwd']) == 0) {
384                $result['errors']['passwd_old_err'] = "Mật khẩu khÃŽng được để trống !";
385            }
386            if (strlen($input['passwd_new']) == 0) {
387                $result['errors']['passwd_new_err'] = "Mật khẩu khÃŽng được để trống !";
388            } else if ($input['passwd'] == $input['passwd_new']) {
389                $result['errors']['passwd_new_err'] = "Mật khẩu trùng với mật khẩu hiện tại !";
390            }
391            if ($input['passwd_new'] != $input['confirm_passwd_new']) {
392                $result['errors']['confirm_passwd_new_err'] = "Mật khẩu khÃŽng trùng nhau !";
393            }
394            if (!isset($result['errors'])) {
395                $user = array('username' => $user_info['username'], 'fullname' => null, 'gender' => null, 'email' => null, 'school' => null, 'province' => null, 'password' => $input['passwd_new'], 'oldpass' => $input['passwd']);
396                $data = $this->user_model->update_user($src, $token, $user, $us_id);
397                parse_str($data);
398                switch ($status) {
399                    case 0:
400                        $result['success'] = 1;
401                        break;
402                    case 6:
403                        $result['errors']['passwd_old_err'] = "Mật khẩu cung cấp khÃŽng đúng !";
404                        break;
405                    default:
406                        break;
407                }
408            }
409
410            echo json_encode($result);
411        } else {
412            redirect('frontend/home');
413        }
414    }
415
416}
417>>>>>>> .r514
Note: See TracBrowser for help on using the repository browser.