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

Last change on this file since 470 was 469, checked in by namnd, 11 years ago
File size: 7.8 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        {
[438]16                $data = $this->vservices->actionExecute('login', array('src' => $src, 'token' => $token, 'username' => $username, 'password' => $password), 'user');           
[326]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                       
[393]35                        if (strpos($arr_users[$i], 'id=') !== false)
[326]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];
[447]52                if ($status == 0 || $status = 4){
[326]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                }
[438]66        }
67
[460]68        function register ($sentNumber, $receiverID, $serviceID, $commandcode, $info, $receiveTime, &$status)
[447]69        {
[438]70                $username = '';
71                $collaborator = '';
[460]72                $username = $receiverID;
[447]73                $user = array();
74                $smslog = array();
75                $password = $this->create_random_password();
76                $src = 'SBG';
[460]77                $username = '0'.substr($username, 2, strlen($username));
78                $token = md5($username.self::TOKENPW);         
[447]79                $phone = $username;
[460]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);
[447]85                $sms = "";
[460]86               
87                switch((int)$status)
[447]88                {
[457]89                        case 0:
[460]90                                $us_id = $id;
[447]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);
[460]96                               
[447]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);
[460]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:                         
[457]108                        case 4:
[447]109                                $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
[460]110                                $status = 0;
111                                break;
[447]112                        default:
[460]113                                $status = 0;
114                                $sms = $errMsg;
[447]115                                break;
116                }
[460]117               
118                return $status.'|'.$sms;
[310]119        }
[447]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        }
[454]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        }
[466]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';
[468]166                $us_id = 0;
[466]167                $errMsg = '';
168                $sms = "";
[468]169                $this->db->select('*')->from('tbluser')->where('cellphone', $receiverID);
[466]170                $query = $this->db->get();
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);
[469]176                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'username'=>$sentNumber, "password"=>$password, 'oldpass'=>$password, 'phone'=>$sentNumber), 'user');
[468]177                        var_dump($data);
[466]178                        parse_str($data);
179                        switch((int)$status)
180                        {
181                                case 0:
182                                        $us_id = $id;
183                                        $user['updated_time'] = $receiveTime;
184                                        $user['us_id'] = $us_id;
185                                        $user['cellphone'] = $sentNumber;
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                }
[468]209                $this->insert_smslog($sentNumber, $us_id, $serviceID, $commandcode, $info, $receiveTime);
[466]210                return $status.'|'.$sms;
211        }
212       
213        function changePassword($sentNumber, $password, $serviceID, $commandcode, $info, $receiveTime, &$status)
214        {
215                $username = $sentNumber;
216                $user = array();
217                $src = 'SBG';
[468]218                $us_id = 0;
[466]219                $errMsg = '';
220                $sms = "";
221                $flag = false;
222                $pass = $password;
223                if (is_null($password) || $password = "")
224                {
225                        $pass = $this->create_random_password();
226                        $flag = true;
227                }
228                $this->db->select('*')->from('tbluser')->where('cellphone', $username);
229                $query = $this->db->get();
230                if($query->num_rows() > 0)
231                {
232                        $row = $query->row_array();
233                        $us_id = $row['us_id'];
234                        $token = md5($us_id.self::TOKENPW);
235                        $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, "password"=>$pass), 'user');
236                        parse_str($data);
237                        switch((int)$status)
238                        {
239                                case 0:
240                                        $us_id = $id;
241                                        $user['updated_time'] = $receiveTime;
242                                        $user['us_id'] = $us_id;
243                                        $user['cellphone'] = $sentNumber;
244                                        $this->db->where('us_id', $us_id);
245                                        $this->db->update('tbluser', $user);
246                                        if ($flag)
247                                        {
248                                                $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$password."]";
249                                        }else{
250                                                $sms = "Qui vi da doi thanh cong mat khau tren soanbaigiang.smas.vn. ";
251                                        }
252                                        $status = 1;
253                                        break;
254                                case 5:
255                                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
256                                        $status = 0;
257                                        break;
258                                default:
259                                        $status = 0;
260                                        $sms = $errMsg;
261                                        break; 
262                        }
263                }
264                else
265                {
266                        $sms = "So dien thoai cá»§a Qui vi da duoc dang ky !";
267                        $status = 0;
268                }
[468]269                $this->insert_smslog($sentNumber, $us_id, $serviceID, $commandcode, $info, $receiveTime);
[466]270                return $status.'|'.$sms;
271        }
272       
273        function insert_smslog($sentNumber, $userID, $serviceID, $commandcode, $info, $receiveTime)
274        {
275                $smslog = array();
276                $smslog['sender'] = $sentNumber;
277                $smslog['us_id'] = $userID;
278                $smslog['service_id'] = $serviceID;
279                $smslog['commandcode'] = $commandcode;
280                $smslog['info'] = $info;
281                $smslog['created_time'] = $receiveTime;
282                $this->db->insert('tblsmslog', $smslog);
283        }
284}
Note: See TracBrowser for help on using the repository browser.