source: pro-violet-viettel/sourcecode/application/modules/frontend/models/user_model.php @ 492

Last change on this file since 492 was 492, checked in by namnd, 11 years ago
File size: 10.9 KB
RevLine 
[447]1<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
[310]2
3class User_model extends CI_Model
4{
5       
[447]6        const TOKENPW = 'violet';
7       
[310]8        function __construct(){
9        parent::__construct();
[314]10                $this->vservices->setApiUrl($this->config->item('api_url'));
11                $this->vservices->setConnection($this->curl);
[310]12    }
13       
14        function checkLogin ($src, $token, $username, $password)
15        {
[472]16                $data = $this->vservices->actionExecute('login', array('src' => $src, 'token' => $token, 'username' => $username, 'password' => $password), 'user');
17                               
[326]18                $arr_users = explode("&", $data);
[472]19                $str_status = '';
20                $str_fullname = '';
21                $str_usid = '';
22                $usid = '';
23                $fullname = '';
24                for ($i=0; $i < count($arr_users); $i++)
[326]25                {
26                        if (strpos($arr_users[$i], 'status=') !== false)
27                        {
28                                $str_status = $arr_users[$i];
29                        }
30                       
31                        if (strpos($arr_users[$i], 'fullname=') !== false)
32                        {
33                                $str_fullname = $arr_users[$i];
34                        }
35                       
[393]36                        if (strpos($arr_users[$i], 'id=') !== false)
[326]37                        {
38                                $str_usid = $arr_users[$i];
39                        }
40                }
41                $arr_status = explode("=", $str_status);
[472]42                if ($str_fullname != '')
[326]43                {
44                        $arr_fullname = explode("=", $str_fullname);
45                        $fullname = $arr_fullname[1];
46                }
[472]47                if ($str_usid !== '')
[326]48                {
49                        $arr_usid = explode("=", $str_usid);
50                        $usid = $arr_usid[1];
51                }
52                $status = (int)$arr_status[1];
[472]53               
54                if ($status == 0 || $status == 4){
[326]55                        $us_id = (int)$usid;
56                        $query = "SELECT * FROM tbluser WHERE us_id = ?";
57                        $result = $this->db->query($query, array($us_id));
58                        if($result->num_rows() == 1){
59                                return $data;
60                        }else
61                        {
62                                return null;
63                        }
64                }else
65                {
66                        return $data;
67                }
[438]68        }
69
[492]70        function register ($username, $collaborator, &$status)
[447]71        {
72                $user = array();
73                $password = $this->create_random_password();
74                $src = 'SBG';
[492]75                $sms = '';
76                $id = 0;
77                $errMsg = '';
[460]78                $username = '0'.substr($username, 2, strlen($username));
79                $token = md5($username.self::TOKENPW);         
[447]80                $phone = $username;
[492]81                if (!is_null($collabolator) || $collabolator != ''){
82                        if($this->isExistCollabolator($collabolator)){
83                                $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user');
84                                parse_str($data);
85                                switch((int)$status)
86                                {
87                                        case 0:
88                                                $us_id = $id;
89                                                $user['created_time'] = date('Y-m-d H:i:s');
90                                                $user['us_id'] = $us_id;
91                                                $user['cellphone'] = $username;
92                                                $user['collaborator'] = $collaborator;
93                                                $this->db->insert('tbluser', $user);
94                                                $sms = "Chuc mung Qui vi da dang ky thanh cong tai khoan Soan Bai giang Online. Hay dang nhap vao soanbaigiang.smas.vn voi ten truy nhap ".$username.", mat khau ".$password." de su dung.";
95                                                $status = 1;
96                                                break;
97                                        case 2:                         
98                                        case 4:
99                                                $sms = "So dien thoai cua Qui vi da duoc dang ky !";
100                                                $status = 0;
101                                                break;
102                                        default:
103                                                $status = 0;
104                                                $sms = $errMsg;
105                                                break;
106                                }
107                        }
108                        else
109                        {
110                                $sms = "So dien thoai cua Qui vi chua la cong tac vien cua soanbaigiang.smas.vn!";
111                                $status = 0;
112                        }
113                }else
[447]114                {
[492]115                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user');
116                        parse_str($data);               
117                        switch((int)$status)
118                        {
119                                case 0:
120                                        $us_id = $id;
121                                        $user['created_time'] = date('Y-m-d H:i:s');
122                                        $user['us_id'] = $us_id;
123                                        $user['cellphone'] = $username;
124                                        $user['collaborator'] = $username;
125                                        $this->db->insert('tbluser', $user);
126                                        $sms = "Chuc mung Qui vi da dang ky thanh cong tai khoan Soan Bai giang Online. Hay dang nhap vao soanbaigiang.smas.vn voi ten truy nhap ".$username.", mat khau ".$password." de su dung.";
127                                        $status = 1;
128                                        break;
129                                case 2:                         
130                                case 4:
131                                        $sms = "So dien thoai cua Qui vi da duoc dang ky !";
132                                        $status = 0;
133                                        break;
134                                default:
135                                        $status = 0;
136                                        $sms = $errMsg;
137                                        break;
138                        }
[447]139                }
[460]140               
141                return $status.'|'.$sms;
[310]142        }
[447]143       
144        function create_random_password()
145        {
146                $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
147                $pass = array();
148                $alphaLength = strlen($alphabet) - 1;
149                for ($i = 0; $i < 6; $i++) {
150                        $n = rand(0, $alphaLength);
151                        $pass[] = $alphabet[$n];
152                }
153                return implode($pass);
154        }
[454]155       
156        function get_user_by_id($us_id)
157        {
158                $this->db->select('*')->from('tbluser')->where('us_id', $us_id);
159                $query = $this->db->get();
160                if($query->num_rows() > 0)
161                {
162                        $row = $query->row_array();
163                        return $row;
164                }
165        }
[466]166       
167        function get_user_info($src, $token, $us_id)
168        {
169                $data = $this->vservices->actionExecute('getinfo', array('src' => $src, 'us_id' => $us_id, 'token'=>$token), 'user');
170        return $data;
171        }
172       
173        function update_user($src, $token, $user, $us_id)
174        {
175                $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id,
176                                                                                                                                'password'=>$user['password'], 'fullname'=>$user['fullname'], 'gender'=>$user['gender'],
177                                                                                                                                'email'=>$user['email'], 'school'=>$user['school'], 'province'=>$user['province'], 'oldpass'=>$user['oldpass']),
178                                                                                                'user');
179                return $data;
180                                                               
181        }
182       
[492]183        function changeProfile($sentNumber, $username, $password, &$status)
[466]184        {
185                $user = array();
186                $src = 'SBG';
187                $errMsg = '';
[472]188                $sms = '';
[486]189                $result = $this->get_user_by_cellphone($username);
190                if($result)
[466]191                {
[486]192                        $us_id = $result['us_id'];
[466]193                        $token = md5($us_id.self::TOKENPW);
[469]194                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'username'=>$sentNumber, "password"=>$password, 'oldpass'=>$password, 'phone'=>$sentNumber), 'user');
[466]195                        parse_str($data);
196                        switch((int)$status)
197                        {
198                                case 0:
199                                        $us_id = $id;
[486]200                                        $user['updated_time'] = date('Y-m-d H:i:s');
[466]201                                        $user['us_id'] = $us_id;
202                                        $user['cellphone'] = $sentNumber;
[486]203                                        $this->updateUser($us_id, $user);
[466]204                                        $sms = "Qui vi da doi so dien thoai tren soanbaigiang.smas.vn sang so dien thoai [".$sentNumber."]";
205                                        $status = 1;
206                                        break;
207                                case 5:
208                                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
209                                        $status = 0;
210                                        break;
211                                case 6:
212                                        $sms = "Mat khau cua qui vi khong dung !";
213                                        $status = 0;
214                                        break;
215                                default:
216                                        $status = 0;
217                                        $sms = $errMsg;
218                                        break;                         
219                        }
220                }else
221                {
222                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
223                        $status = 0;
224                }
225                return $status.'|'.$sms;
226        }
227       
[492]228        function changePassword($username, $password, &$status)
[466]229        {
230                $user = array();
231                $src = 'SBG';
232                $errMsg = '';
[472]233                $sms = '';
[486]234                $isForgotPassword = false;
[466]235                $pass = $password;
[472]236                if (is_null($password) || $password == '')
[466]237                {
238                        $pass = $this->create_random_password();
[486]239                        $$isForgotPassword = true;
[466]240                }
[486]241                $result = $this->get_user_by_cellphone($username);
242                if($result)
[466]243                {
[486]244                        $us_id = $result['us_id'];
[466]245                        $token = md5($us_id.self::TOKENPW);
246                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, "password"=>$pass), 'user');
247                        parse_str($data);
248                        switch((int)$status)
249                        {
250                                case 0:
251                                        $us_id = $id;
[486]252                                        $user['updated_time'] = date('Y-m-d H:i:s');
[466]253                                        $user['cellphone'] = $sentNumber;
[486]254                                        $this->updateUser($us_id, $user);
255                                        if ($isForgotPassword)
[466]256                                        {
257                                                $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$password."]";
258                                        }else{
259                                                $sms = "Qui vi da doi thanh cong mat khau tren soanbaigiang.smas.vn. ";
260                                        }
261                                        $status = 1;
262                                        break;
263                                case 5:
[486]264                                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
[466]265                                        $status = 0;
266                                        break;
267                                default:
268                                        $status = 0;
269                                        $sms = $errMsg;
270                                        break; 
271                        }
272                }
273                else
274                {
275                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
276                        $status = 0;
277                }
278                return $status.'|'.$sms;
279        }
280       
[472]281       
282        function checkLicense ($userId)
283        {
284                $isNotExpired = false;
285                $userInfo = $this->get_user_by_id($userId);             
286                $expireDate = $userInfo['expire_date'];
287               
288                if ((trim($expireDate) == '')) return $isNotExpired;
289               
290                $today = mktime();
291                $expireTime = strtotime($expireDate.' 23:59:59');
292                $isNotExpired = ($today < $expireTime);
293                return $isNotExpired;
294        }
295       
[492]296        function registerVip($username, $p_name, &$status)
[466]297        {
[486]298                $user = array();
299                $sms = '';
300                $result = $this->get_user_by_cellphone($username);
301                if($result){
[492]302                         $package = $this->get_package($p_name);
303                        if ($result['acc_balanced']>=$package['p_price'])
[486]304                        {
305                                $us_id = $result['us_id'];
[492]306                                $user['acc_balanced'] = $result['acc_balanced'] - $p_price;
[486]307                                if ($this->checkLicense($us_id)){
[492]308                                        $user['expire_date'] = date('Y-m-d', strtotime($result['expire_date'].' + '.$package['p_period'].' month'));
[486]309                                }else
310                                {
[492]311                                        $user['expire_date'] = date('Y-m-d', strtotime('now + '.$package['p_period'].' month'));
[486]312                                }
[492]313                                $user['user_package'] = $p_id;
[486]314                                $user['updated_time'] = date('Y-m-d H:i:s');
315                                $this->updateUser($us_id, $user);
316                                $sms = "Chuc mung Qui vi da dang ky su dung Soan Bai giang truc tuyen tren soanbaigiang.smas.vn. Qui vi co the su dung dich vu den 24h00 ngay ".date('d/m/Y', strtotime($user['expire_date']));
317                                $status = 1;
318                        }else
319                        {
320                                $sms = "Tai khoan cua qui vi khong du de dang ky su dung dich vu Soan Bai giang truc tuyen tren soanbaigiang.smas.vn. Hay nap tien va dang ky lai. Cam on!";
321                                $status = 0;
322                        }
323                       
324                }else{
325                        $sms = "Tai khoan [".$username."] chua dang ki tai khoan tren he thong SBG Online soanbaigiang.smas.vn.";
326                        $status = 0;
327                }
328                return $status.'|'.$sms;
329        }
330       
[492]331        function rechargeAccount($username, $amount, &$status)
[486]332        {
333                $user = array();
334                $sms = '';
335                $result = $this->get_user_by_cellphone($username);
336                if($result)
337                {
338                        $us_id = $result['us_id'];
339                        $user['acc_balanced'] = $result['acc_balanced'] + $amount;
340                        $user['updated_time'] = date('Y-m-d H:i:s');
341                        $this->updateUser($us_id, $user);
342                        $sms = "Qui vi da nap thanh cong [".$amount."] vao tai khoan ".$username." tren soanbaigiang.smas.vn";
343                        $status = 1;
344                }else
345                {
346                        $sms = "Tai khoan [".$username."] chua dang ki tai khoan tren he thong SBG Online soanbaigiang.smas.vn.";
347                        $status = 0;
348                }
[492]349                return $status.'|'.$sms;               
[486]350        }
351       
352        function get_user_by_cellphone($cellphone)
353        {
354                $this->db->select('*')->from('tbluser')->where('cellphone', $cellphone)->limit(1);
355                $result = $this->db->get()->row_array();
356                return $result;
357        }
358       
[492]359        function isExistCollabolator($collabolator)
360        {
361                $this->db->select('*')->from('tbluser')->where('collabolator', $cellphone)->limit(1);
362                $result = $this->db->get()->row_array();
363                if ($result) return true; else return false;
364        }
365       
[486]366        function updateUser($us_id, $data)
367        {
368                $this->db->where('us_id', $us_id);
369                $this->db->update('tbluser', $data);
370        }
371       
[492]372        function get_package($p_name)
373        {
374                $this->db->select('*')->from('tblservicepackage')->where('p_name', $p_name);
375                $query = $this->db->get();
376                if($query->num_rows() > 0)
377                {
378                        $row = $query->row_array();
379                        return $row;
380                }
381        }
382       
[486]383        function insertSmslog($sentNumber, $userID, $serviceID, $commandcode, $info, $receiveTime)
384        {
[466]385                $smslog = array();
386                $smslog['sender'] = $sentNumber;
387                $smslog['us_id'] = $userID;
388                $smslog['service_id'] = $serviceID;
389                $smslog['commandcode'] = $commandcode;
390                $smslog['info'] = $info;
391                $smslog['created_time'] = $receiveTime;
392                $this->db->insert('tblsmslog', $smslog);
393        }
394}
Note: See TracBrowser for help on using the repository browser.