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

Last change on this file since 549 was 549, checked in by quyenla, 11 years ago

front end

File size: 12.3 KB
RevLine 
[521]1<?php
2
3if (!defined('BASEPATH'))
4    exit('No direct script access allowed');
5
[503]6class User extends MX_Controller {
[466]7
[521]8    const TOKENPW = 'violet';
[503]9
[521]10    public function __construct() {
11        parent::__construct();
12        $this->load->helper('cookie');       
13    }
14
15    public function profile() {
16        $user_info = $this->session->userdata('userInfo');
[503]17        if ($user_info) {
[538]18            $this->load->model('user_model');
[503]19            $this->load->model('servicepackage_model');
20            $user = $user_info['user'];
21            $us_id = $user_info['us_id'];
22            $src = "SBG";
23            $token = md5($us_id . self::TOKENPW);
24            $data = $this->get_data($src, $token, $us_id);
[538]25            $u = $this->user_model->get_user_by_id($us_id);
[508]26            $data['current_tab'] = $this->uri->segment(4, 'edit-basic');
[503]27            $data['packages'] = $this->servicepackage_model->getAllPackages();
[538]28            parse_str($user, $info);
29            $data=  array_merge($data,$u);
[542]30            $data=  array_merge($data,$user_info);
[503]31            $this->load->view('frontend/user_profile', $data);
[508]32        } else {
[503]33            redirect('frontend/home');
34        }
35    }
36
37    public function packageRegister() {
38        $result = array();
39        $input = $this->input->post();
40        $this->load->model('user_model');
41        $user_info = $this->session->userdata('userInfo');
42        if ($user_info) {
43            parse_str($user_info['user'], $info);
44            $this->load->model('servicepackage_model');
[508]45
[503]46            $package = $this->servicepackage_model->getPackage($input['p_id']);
47            $user = $user_info['user'];
48            $us_id = $user_info['us_id'];
49            $user = $this->user_model->get_user_by_id($us_id);
50            $result['can_buy'] = 1;
51            $result['can_edit'] = 0;
52            if ($user['acc_balanced'] < $package['p_price']) {
53                $result['can_buy'] = 0;
54            }
55            if ($user['p_id'] < 1) {
56                $result['can_edit'] = 1;
57            }
58            $result['info'] = $info;
59            $result['user'] = $user;
60            $result['package'] = $package;
61            $result['modal'] = $this->load->view('frontend/package_register_modal', $result, true);
62        } else {
63           
64        }
65        echo json_encode($result);
66    }
[521]67   
[503]68    public function finishRegisterPackage() {
69        $result = array();
70        $result['success'] = 0;
71        $this->load->model('user_model');
72        $input = $this->input->post();
73        $user_info = $this->session->userdata('userInfo');
[508]74        parse_str($user_info['user'], $info);
[503]75        if (isset($input['fullname'])) {
[548]76            if (strlen($input['fullname']) < 1) {
77                $result['errors'][] = "Vui lòng nhập họ tên đầy đủ tiếng Việt";
[503]78            }
[548]79            if (strlen($input['school']) < 1) {
80                $result['errors'][] = "Vui lòng nhập đơn vị cÃŽng tác";               
[503]81            }
82            if (!isset($result['errors'])) {
[490]83                $user_info = $this->session->userdata('userInfo');
[503]84                if ($user_info) {
[508]85
[503]86                    $src = "SBG";
[508]87                    $us_id = $user_info['us_id'];
[503]88                    $input['password'] = '';
89                    $input['oldpass'] = '';
90                    $input['gender'] = '';
[508]91                    $input['email'] = '';
[503]92                    $input['province'] = '';
[508]93                    $info['fullname'] = $input['fullname'];
94                    $info['school'] = $input['school'];
[503]95                    $token = md5($us_id . self::TOKENPW);
96                    $user = $this->get_data($src, $token, $us_id);
97                    if ($input) {
[490]98                        $this->load->model('user_model');
[503]99                        $update = $this->user_model->update_user($src, $token, $input, $us_id);
[508]100                        $info = urldecode(http_build_query($info));
[549]101                        $userdata = array('username' => $user_info['username'], 'user' => $info, 'us_id' => $user_info['us_id'], 'logined_in' => TRUE,'is_viettel' => $user_info['is_viettel']);
[503]102                        $this->session->set_userdata('userInfo', $userdata);
103                    }
104                }
105            }
106        }
107        if (isset($result['errors'])) {
[521]108            echo json_encode ($result);
[503]109            die();
110        }
111        $this->load->model('servicepackage_model');
112        $us_id = $user_info['us_id'];
113        $user = $this->user_model->get_user_by_id($us_id);
114        $package = $this->servicepackage_model->getPackage($input['p_id']);
[508]115        $user['acc_balanced'] = $user['acc_balanced'] - $package['p_price'];
[530]116        $user['expire_date'] = date('Y-m-d 00:00:00', strtotime("+" . $package['p_period'] . " ".$package['p_unit'], strtotime($user['expire_date'])));
[508]117        $user['expire_date'] = date("Y-m-d 00:00:00", (strtotime($user['expire_date']) - 1));
118        $user['p_id'] = $package['p_id'];
119        $this->user_model->updateUser($us_id, $user);
120        $user['expire_date'] = date("d-m-Y", (strtotime($user['expire_date'])));
121        $result['expire_date'] = $user['expire_date'];
[503]122        $result['success'] = 1;
123        echo json_encode($result);
124    }
[521]125   
126    public function regpackage ()
127    {
128        $user_info = $this->session->userdata('userInfo');
129        parse_str($user_info['user'], $info);
130        $p_id = $this->input->post('p_id', TRUE);
131       
132        $us_id = (int)$info['id'];
133        $this->load->model('servicepackage_model');
134        $this->load->model('user_model');
135       
136        $user = $this->user_model->get_user_by_id($us_id);
137        $package = $this->servicepackage_model->getPackage($p_id);
138       
139        if ($user['acc_balanced'] < $package['p_price']) {
140                $message = 'Số tiền trong Tài khoản SBG Online hiện tại cá»§a Quí vị là '. $user['acc_balanced'] .' đồng.<br /> Để Đăng kí Sá»­ dụng dịch vụ Soạn Bài giảng trá»±c tuyến, Quí vị cần nạp thêm tiền vào tài khoản.';
141        }
142        else {
143                $user['acc_balanced'] = $user['acc_balanced'] - $package['p_price'];
144                $currentExpireDate = $user['expire_date'] == NULL || trim($user['expire_date']) == '' ? date('Y-m-d 00:00:00') : $user['expire_date'];
145               
146                $user['expire_date'] = date('Y-m-d', strtotime("+" . $package['p_period'] ." ". $package['p_unit'], strtotime($currentExpireDate)));           
147                //$user['expire_date'] = date("Y-m-d", (strtotime($user['expire_date']) - 1));
148               
149                $user['p_id'] = $package['p_id'];
150               
151                $this->user_model->updateUser($us_id, $user);
152                $message = 'QuÜ vị đã đăng kí sá»­ dụng CÃŽng cụ Soạn Bài giảng trức tuyến. Quí vị được sá»­ dụng dịch vụ đến hết ngày '. date('d-m-Y', strtotime($user['expire_date']));
153        }
154       
155        $this->session->set_flashdata('message', $message);
156        redirect('frontend/user/profile#services-register');
157    }
[503]158
159    private function get_data($src, $token, $us_id) {
160        $this->load->model('user_model');
161        $user = $this->user_model->get_user_info($src, $token, $us_id);
162
163        if (strpos($user, '&')) {
164            parse_str($user);
165            $us = $this->user_model->get_user_by_id($us_id);
166            $data = array('us_id' => $us_id, 'username' => $username, 'fullname' => $fullname,
167                'gender' => $gender, 'email' => $email, 'phone' => $phone, 'school' => $school, 'province' => $province,
168                'acc_balanced' => $us['acc_balanced'], 'expire_date' => $us['expire_date'], 'date_diff' => $this->dateDiff($us['expire_date'])
169            );
170            return $data;
171        } else {
172            return "";
173        }
174    }
175
[508]176
[503]177    private function dateDiff($expire_date) {
178        $date1 = date("Y-m-d");
179        if ((strtotime($expire_date) - strtotime($date1)) < 0)
180            return "0 ngày còn lại";
181        $diff = strtotime($expire_date) - strtotime($date1);
182        $years = floor($diff / (365 * 60 * 60 * 24));
183        $months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
184        $days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
185        if ($years > 0) {
186            return $years . " năm, " . $months . " tháng, " . $days . " ngày còn lại";
187        } else {
188            if ($months > 0) {
189                return $months . " tháng, " . $days . " ngày còn lại";
190            } else {
191                return $days . " ngày còn lại";
192            }
193        }
194    }
[508]195
[503]196    public function update_user() {
197        $us_id = $this->uri->segment(4);
198        $user_info = $this->session->userdata('userInfo');
199        if ($user_info) {
200            $result = array();
201            $result['success'] = 0;
202            $src = "SBG";
203            $token = md5($us_id . self::TOKENPW);
204            $user = $this->get_data($src, $token, $us_id);
205            $input = $this->input->post();
206            if ($input) {
207                $input['username'] = $user['username'];
[508]208                if (array_key_exists('fullname', $input)) {
209                    if (strlen($input['fullname']) == 0) {
[521]210                        $result['errors']['fullname_err'] = "Họ tên khÃŽng được để trống!";
[508]211                    }
212                } else {
213                    $input['fullname'] = $user['fullname'];
214                }
215                /*
216                  if ($strlen($input['school']) == 0)
217                  {
[521]218                  $result['errors']['school_err'] = "Đơn vị khÃŽng được để trống!";
[508]219                  }
220                  if ($strlen($input['province']) == 0)
221                  {
[521]222                  $result['errors']['province_err'] = "Tỉnh/thành khÃŽng được để trống!";
[508]223                  } */
[503]224                $input['password'] = '';
225                $input['oldpass'] = '';
226                $this->load->model('user_model');
[508]227                //$result['fullname'] = $input['fullname'];
[503]228                if (!isset($result['errors'])) {
229                    $result['data'] = $this->user_model->update_user($src, $token, $input, $us_id);
230                    $result['success'] = 1;
231                }
[490]232                echo json_encode($result);
[503]233            }
234        } else {
235            redirect('frontend/home');
[490]236        }
[508]237    }
238
239    public function change_password() {
240        $us_id = $this->uri->segment(4);
241        $user_info = $this->session->userdata('userInfo');
242        if ($user_info) {
243            $this->load->model('user_model');
244            $us_id = $user_info['us_id'];
245            $src = "SBG";
246            $token = md5($us_id . self::TOKENPW);
247            $input = $this->input->post();
[521]248           
249           
250           
[508]251            if (strlen($input['passwd']) == 0) {
[521]252                $result['errors']['passwd_old_err'] = "Mật khẩu khÃŽng được để trống!";
[508]253            }
254            if (strlen($input['passwd_new']) == 0) {
[521]255                $result['errors']['passwd_new_err'] = "Mật khẩu khÃŽng được để trống!";
[508]256            } else if ($input['passwd'] == $input['passwd_new']) {
[521]257                $result['errors']['passwd_new_err'] = "Mật khẩu trùng với mật khẩu hiện tại!";
[508]258            }
[521]259            if ($input['passwd_new']!= $input['confirm_passwd_new']) {
260                $result['errors']['confirm_passwd_new_err'] = "Mật khẩu khÃŽng trùng nhau!";
[508]261            }
[521]262           
[508]263            if (!isset($result['errors'])) {
264                $user = array('username' => $user_info['username'], 'fullname' => null, 'gender' => null, 'email' => null, 'school' => null, 'province' => null, 'password' => $input['passwd_new'], 'oldpass' => $input['passwd']);
265                $data = $this->user_model->update_user($src, $token, $user, $us_id);
266                parse_str($data);
267                switch ($status) {
268                    case 0:
269                        $result['success'] = 1;
270                        break;
271                    case 6:
[521]272                        $result['errors']['passwd_old_err'] = "Mật khẩu cung cấp khÃŽng đúng!";
[508]273                        break;
274                    default:
275                        break;
276                }
277            }
278
279            echo json_encode($result);
280        } else {
281            redirect('frontend/home');
282        }
283    }
284
[521]285}
Note: See TracBrowser for help on using the repository browser.