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

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