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

Last change on this file since 466 was 466, checked in by namnd, 11 years ago
File size: 7.6 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                $arr_users = explode("&", $data);
18                $str_status = "";
19                $str_fullname = "";
20                $str_usid = "";
21                $usid = "";
22                $fullname = "";
23                for ($i=0; $i<count($arr_users); $i++)
24                {
25                        if (strpos($arr_users[$i], 'status=') !== false)
26                        {
27                                $str_status = $arr_users[$i];
28                        }
29                       
30                        if (strpos($arr_users[$i], 'fullname=') !== false)
31                        {
32                                $str_fullname = $arr_users[$i];
33                        }
34                       
35                        if (strpos($arr_users[$i], 'id=') !== false)
36                        {
37                                $str_usid = $arr_users[$i];
38                        }
39                }
40                $arr_status = explode("=", $str_status);
41                if ($str_fullname != "")
42                {
43                        $arr_fullname = explode("=", $str_fullname);
44                        $fullname = $arr_fullname[1];
45                }
46                if ($str_usid !== "")
47                {
48                        $arr_usid = explode("=", $str_usid);
49                        $usid = $arr_usid[1];
50                }
51                $status = (int)$arr_status[1];
52                if ($status == 0 || $status = 4){
53                        $us_id = (int)$usid;
54                        $query = "SELECT * FROM tbluser WHERE us_id = ?";
55                        $result = $this->db->query($query, array($us_id));
56                        if($result->num_rows() == 1){
57                                return $data;
58                        }else
59                        {
60                                return null;
61                        }
62                }else
63                {
64                        return $data;
65                }
66        }
67
68        function register ($sentNumber, $receiverID, $serviceID, $commandcode, $info, $receiveTime, &$status)
69        {
70                $username = '';
71                $collaborator = '';
72                $username = $receiverID;
73                $user = array();
74                $smslog = array();
75                $password = $this->create_random_password();
76                $src = 'SBG';
77                $username = '0'.substr($username, 2, strlen($username));
78                $token = md5($username.self::TOKENPW);         
79                $phone = $username;
80                $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user');
81
82                $id = 0;
83                $errMsg = '';
84                parse_str($data);
85                $sms = "";
86               
87                switch((int)$status)
88                {
89                        case 0:
90                                $us_id = $id;
91                                $user['created_time'] = $receiveTime;
92                                $user['us_id'] = $us_id;
93                                $user['cellphone'] = $username;
94                                $user['collaborator'] = $collaborator;
95                                $this->db->insert('tbluser', $user);
96                               
97                                $smslog['sender'] = $sentNumber;
98                                $smslog['us_id'] = $us_id;
99                                $smslog['service_id'] = $serviceID;
100                                $smslog['commandcode'] = $commandcode;
101                                $smslog['info'] = $info;
102                                $smslog['created_time'] = $receiveTime;
103                                $this->db->insert('tblsmslog', $smslog);
104                                $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.";
105                                $status = 1;
106                                break;
107                        case 2:                         
108                        case 4:
109                                $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
110                                $status = 0;
111                                break;
112                        default:
113                                $status = 0;
114                                $sms = $errMsg;
115                                break;
116                }
117               
118                return $status.'|'.$sms;
119        }
120       
121        function create_random_password()
122        {
123                $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
124                $pass = array();
125                $alphaLength = strlen($alphabet) - 1;
126                for ($i = 0; $i < 6; $i++) {
127                        $n = rand(0, $alphaLength);
128                        $pass[] = $alphabet[$n];
129                }
130                return implode($pass);
131        }
132       
133        function get_user_by_id($us_id)
134        {
135                $this->db->select('*')->from('tbluser')->where('us_id', $us_id);
136                $query = $this->db->get();
137                if($query->num_rows() > 0)
138                {
139                        $row = $query->row_array();
140                        return $row;
141                }
142        }
143       
144        function get_user_info($src, $token, $us_id)
145        {
146                $data = $this->vservices->actionExecute('getinfo', array('src' => $src, 'us_id' => $us_id, 'token'=>$token), 'user');
147        return $data;
148        }
149       
150        function update_user($src, $token, $user, $us_id)
151        {
152                $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id,
153                                                                                                                                'password'=>$user['password'], 'fullname'=>$user['fullname'], 'gender'=>$user['gender'],
154                                                                                                                                'email'=>$user['email'], 'school'=>$user['school'], 'province'=>$user['province'], 'oldpass'=>$user['oldpass']),
155                                                                                                'user');
156                return $data;
157                                                               
158        }
159       
160        function changeProfile($sentNumber, $receiverID, $password, $serviceID, $commandcode, $info, $receiveTime, &$status)
161        {
162                $username = '';
163                $username = $receiverID;
164                $user = array();
165                $src = 'SBG';
166                $errMsg = '';
167                $sms = "";
168                $this->db->select('*')->from('tbluser')->where('cellphone', $username);
169                $query = $this->db->get();
170                $row = 0;
171                if($query->num_rows() > 0)
172                {
173                        $row = $query->row_array();
174                        $us_id = $row['us_id'];
175                        $token = md5($us_id.self::TOKENPW);
176                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'username'=>$sentNumber, "password"=>$password, 'oldpass'=>$password), 'user');
177                        parse_str($data);
178                        switch((int)$status)
179                        {
180                                case 0:
181                                        $us_id = $id;
182                                        $user['updated_time'] = $receiveTime;
183                                        $user['us_id'] = $us_id;
184                                        $user['cellphone'] = $sentNumber;
185                                        $user['collaborator'] = $collaborator;
186                                        $this->db->where('us_id', $us_id);
187                                        $this->db->update('tbluser', $user);
188                                        $sms = "Qui vi da doi so dien thoai tren soanbaigiang.smas.vn sang so dien thoai [".$sentNumber."]";
189                                        $status = 1;
190                                        break;
191                                case 5:
192                                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
193                                        $status = 0;
194                                        break;
195                                case 6:
196                                        $sms = "Mat khau cua qui vi khong dung !";
197                                        $status = 0;
198                                        break;
199                                default:
200                                        $status = 0;
201                                        $sms = $errMsg;
202                                        break;                         
203                        }
204                }else
205                {
206                        $sms = "So dien thoai cá»§a Qui vi chua duoc dang ky !";
207                        $status = 0;
208                }
209                return $status.'|'.$sms;
210        }
211       
212        function changePassword($sentNumber, $password, $serviceID, $commandcode, $info, $receiveTime, &$status)
213        {
214                $username = $sentNumber;
215                $user = array();
216                $src = 'SBG';
217                $errMsg = '';
218                $sms = "";
219                $flag = false;
220                $pass = $password;
221                if (is_null($password) || $password = "")
222                {
223                        $pass = $this->create_random_password();
224                        $flag = true;
225                }
226                $this->db->select('*')->from('tbluser')->where('cellphone', $username);
227                $query = $this->db->get();
228                $row = 0;
229                if($query->num_rows() > 0)
230                {
231                        $row = $query->row_array();
232                        $us_id = $row['us_id'];
233                        $token = md5($us_id.self::TOKENPW);
234                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, "password"=>$pass), 'user');
235                        parse_str($data);
236                        switch((int)$status)
237                        {
238                                case 0:
239                                        $us_id = $id;
240                                        $user['updated_time'] = $receiveTime;
241                                        $user['us_id'] = $us_id;
242                                        $user['cellphone'] = $sentNumber;
243                                        $this->db->where('us_id', $us_id);
244                                        $this->db->update('tbluser', $user);
245                                        if ($flag)
246                                        {
247                                                $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$password."]";
248                                        }else{
249                                                $sms = "Qui vi da doi thanh cong mat khau tren soanbaigiang.smas.vn. ";
250                                        }
251                                        $status = 1;
252                                        break;
253                                case 5:
254                                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
255                                        $status = 0;
256                                        break;
257                                default:
258                                        $status = 0;
259                                        $sms = $errMsg;
260                                        break; 
261                        }
262                }
263                else
264                {
265                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
266                        $status = 0;
267                }
268                return $status.'|'.$sms;
269        }
270       
271        function insert_smslog($sentNumber, $userID, $serviceID, $commandcode, $info, $receiveTime)
272        {
273                $smslog = array();
274                $smslog['sender'] = $sentNumber;
275                $smslog['us_id'] = $userID;
276                $smslog['service_id'] = $serviceID;
277                $smslog['commandcode'] = $commandcode;
278                $smslog['info'] = $info;
279                $smslog['created_time'] = $receiveTime;
280                $this->db->insert('tblsmslog', $smslog);
281        }
282}
Note: See TracBrowser for help on using the repository browser.