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

Last change on this file since 482 was 472, checked in by dungnv, 11 years ago
File size: 8.1 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                $smslog = array();
77                $password = $this->create_random_password();
78                $src = 'SBG';
79                $username = '0'.substr($username, 2, strlen($username));
80                $token = md5($username.self::TOKENPW);         
81                $phone = $username;
82                $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user');
83
84                $id = 0;
85                $errMsg = '';
86                parse_str($data);
87                $sms = '';
88               
89                switch((int)$status)
90                {
91                        case 0:
92                                $us_id = $id;
93                                $user['created_time'] = $receiveTime;
94                                $user['us_id'] = $us_id;
95                                $user['cellphone'] = $username;
96                                $user['collaborator'] = $collaborator;
97                                $this->db->insert('tbluser', $user);
98                               
99                                $smslog['sender'] = $sentNumber;
100                                $smslog['us_id'] = $us_id;
101                                $smslog['service_id'] = $serviceID;
102                                $smslog['commandcode'] = $commandcode;
103                                $smslog['info'] = $info;
104                                $smslog['created_time'] = $receiveTime;
105                                $this->db->insert('tblsmslog', $smslog);
106                                $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.";
107                                $status = 1;
108                                break;
109                        case 2:                         
110                        case 4:
111                                $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
112                                $status = 0;
113                                break;
114                        default:
115                                $status = 0;
116                                $sms = $errMsg;
117                                break;
118                }
119               
120                return $status.'|'.$sms;
121        }
122       
123        function create_random_password()
124        {
125                $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
126                $pass = array();
127                $alphaLength = strlen($alphabet) - 1;
128                for ($i = 0; $i < 6; $i++) {
129                        $n = rand(0, $alphaLength);
130                        $pass[] = $alphabet[$n];
131                }
132                return implode($pass);
133        }
134       
135        function get_user_by_id($us_id)
136        {
137                $this->db->select('*')->from('tbluser')->where('us_id', $us_id);
138                $query = $this->db->get();
139                if($query->num_rows() > 0)
140                {
141                        $row = $query->row_array();
142                        return $row;
143                }
144        }
145       
146        function get_user_info($src, $token, $us_id)
147        {
148                $data = $this->vservices->actionExecute('getinfo', array('src' => $src, 'us_id' => $us_id, 'token'=>$token), 'user');
149        return $data;
150        }
151       
152        function update_user($src, $token, $user, $us_id)
153        {
154                $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id,
155                                                                                                                                'password'=>$user['password'], 'fullname'=>$user['fullname'], 'gender'=>$user['gender'],
156                                                                                                                                'email'=>$user['email'], 'school'=>$user['school'], 'province'=>$user['province'], 'oldpass'=>$user['oldpass']),
157                                                                                                'user');
158                return $data;
159                                                               
160        }
161       
162        function changeProfile($sentNumber, $receiverID, $password, $serviceID, $commandcode, $info, $receiveTime, &$status)
163        {
164                $username = '';
165                $username = $receiverID;
166                $user = array();
167                $src = 'SBG';
168                $us_id = 0;
169                $errMsg = '';
170                $sms = '';
171                $this->db->select('*')->from('tbluser')->where('cellphone', $receiverID);
172                $query = $this->db->get();
173                if($query->num_rows() > 0)
174                {
175                        $row = $query->row_array();
176                        $us_id = $row['us_id'];
177                        $token = md5($us_id.self::TOKENPW);
178                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'username'=>$sentNumber, "password"=>$password, 'oldpass'=>$password, 'phone'=>$sentNumber), 'user');
179                        var_dump($data);
180                        parse_str($data);
181                        switch((int)$status)
182                        {
183                                case 0:
184                                        $us_id = $id;
185                                        $user['updated_time'] = $receiveTime;
186                                        $user['us_id'] = $us_id;
187                                        $user['cellphone'] = $sentNumber;
188                                        $this->db->where('us_id', $us_id);
189                                        $this->db->update('tbluser', $user);
190                                        $sms = "Qui vi da doi so dien thoai tren soanbaigiang.smas.vn sang so dien thoai [".$sentNumber."]";
191                                        $status = 1;
192                                        break;
193                                case 5:
194                                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
195                                        $status = 0;
196                                        break;
197                                case 6:
198                                        $sms = "Mat khau cua qui vi khong dung !";
199                                        $status = 0;
200                                        break;
201                                default:
202                                        $status = 0;
203                                        $sms = $errMsg;
204                                        break;                         
205                        }
206                }else
207                {
208                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
209                        $status = 0;
210                }
211                $this->insert_smslog($sentNumber, $us_id, $serviceID, $commandcode, $info, $receiveTime);
212                return $status.'|'.$sms;
213        }
214       
215        function changePassword($sentNumber, $password, $serviceID, $commandcode, $info, $receiveTime, &$status)
216        {
217                $username = $sentNumber;
218                $user = array();
219                $src = 'SBG';
220                $us_id = 0;
221                $errMsg = '';
222                $sms = '';
223                $flag = false;
224                $pass = $password;
225                if (is_null($password) || $password == '')
226                {
227                        $pass = $this->create_random_password();
228                        $flag = true;
229                }
230                $this->db->select('*')->from('tbluser')->where('cellphone', $username);
231                $query = $this->db->get();
232                if($query->num_rows() > 0)
233                {
234                        $row = $query->row_array();
235                        $us_id = $row['us_id'];
236                        $token = md5($us_id.self::TOKENPW);
237                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, "password"=>$pass), 'user');
238                        parse_str($data);
239                        switch((int)$status)
240                        {
241                                case 0:
242                                        $us_id = $id;
243                                        $user['updated_time'] = $receiveTime;
244                                        $user['us_id'] = $us_id;
245                                        $user['cellphone'] = $sentNumber;
246                                        $this->db->where('us_id', $us_id);
247                                        $this->db->update('tbluser', $user);
248                                        if ($flag)
249                                        {
250                                                $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$password."]";
251                                        }else{
252                                                $sms = "Qui vi da doi thanh cong mat khau tren soanbaigiang.smas.vn. ";
253                                        }
254                                        $status = 1;
255                                        break;
256                                case 5:
257                                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
258                                        $status = 0;
259                                        break;
260                                default:
261                                        $status = 0;
262                                        $sms = $errMsg;
263                                        break; 
264                        }
265                }
266                else
267                {
268                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
269                        $status = 0;
270                }
271                $this->insert_smslog($sentNumber, $us_id, $serviceID, $commandcode, $info, $receiveTime);
272                return $status.'|'.$sms;
273        }
274       
275       
276        function checkLicense ($userId)
277        {
278                $isNotExpired = false;
279                $userInfo = $this->get_user_by_id($userId);             
280                $expireDate = $userInfo['expire_date'];
281               
282                if ((trim($expireDate) == '')) return $isNotExpired;
283               
284                $today = mktime();
285                $expireTime = strtotime($expireDate.' 23:59:59');
286                $isNotExpired = ($today < $expireTime);
287                return $isNotExpired;
288        }
289       
290        function insert_smslog($sentNumber, $userID, $serviceID, $commandcode, $info, $receiveTime)
291        {
292                $smslog = array();
293                $smslog['sender'] = $sentNumber;
294                $smslog['us_id'] = $userID;
295                $smslog['service_id'] = $serviceID;
296                $smslog['commandcode'] = $commandcode;
297                $smslog['info'] = $info;
298                $smslog['created_time'] = $receiveTime;
299                $this->db->insert('tblsmslog', $smslog);
300        }
301}
Note: See TracBrowser for help on using the repository browser.