vservices->setApiUrl($this->config->item('api_url')); $this->vservices->setConnection($this->curl); } function checkLogin ($src, $token, $username, $password) { $data = $this->vservices->actionExecute('login', array('src' => $src, 'token' => $token, 'username' => $username, 'password' => $password), 'user'); $arr_users = explode("&", $data); $str_status = ''; $str_fullname = ''; $str_usid = ''; $usid = ''; $fullname = ''; for ($i=0; $i < count($arr_users); $i++) { if (strpos($arr_users[$i], 'status=') !== false) { $str_status = $arr_users[$i]; } if (strpos($arr_users[$i], 'fullname=') !== false) { $str_fullname = $arr_users[$i]; } if (strpos($arr_users[$i], 'id=') !== false) { $str_usid = $arr_users[$i]; } } $arr_status = explode("=", $str_status); if ($str_fullname != '') { $arr_fullname = explode("=", $str_fullname); $fullname = $arr_fullname[1]; } if ($str_usid !== '') { $arr_usid = explode("=", $str_usid); $usid = $arr_usid[1]; } $status = (int)$arr_status[1]; if ($status == 0 || $status == 4){ $us_id = (int)$usid; $query = "SELECT * FROM tbluser WHERE us_id = ?"; $result = $this->db->query($query, array($us_id)); if($result->num_rows() == 1){ return $data; }else { return null; } }else { return $data; } } function register ($username, $collaborator, &$status) { $user = array(); $password = $this->create_random_password(); $src = 'SBG'; $sms = ''; $id = 0; $errMsg = ''; $username = '0'.substr($username, 2, strlen($username)); $token = md5($username.self::TOKENPW); $phone = $username; if (!is_null($collabolator) || $collabolator != ''){ if($this->isExistCollabolator($collabolator)){ $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user'); parse_str($data); switch((int)$status) { case 0: $us_id = $id; $user['created_time'] = date('Y-m-d H:i:s'); $user['us_id'] = $us_id; $user['cellphone'] = $username; $user['collaborator'] = $collaborator; $this->db->insert('tbluser', $user); $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."; $status = 1; break; case 2: case 4: $sms = "So dien thoai cua Qui vi da duoc dang ky !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } } else { $sms = "So dien thoai cua Qui vi chua la cong tac vien cua soanbaigiang.smas.vn!"; $status = 0; } }else { $data = $this->vservices->actionExecute('update', array('src'=>$src, 'username'=>$username, 'password'=>$password, 'fullname'=>null, 'phone'=>$username, 'token'=>$token), 'user'); parse_str($data); switch((int)$status) { case 0: $col['login_name'] = $username; $col['passwd'] = md5($password); $col['cellphone'] = $username; $col['created_time'] = date('Y-m-d H:i:s'); $col['activated'] = 1; $this->db->insert('tblcollabolator', $col); $us_id = $id; $user['created_time'] = date('Y-m-d H:i:s'); $user['us_id'] = $us_id; $user['cellphone'] = $username; $user['collaborator'] = $username; $this->db->insert('tbluser', $user); $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."; $status = 1; break; case 2: case 4: $sms = "So dien thoai cua Qui vi da duoc dang ky !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } } return $status.'|'.$sms; } function create_random_password() { $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"; $pass = array(); $alphaLength = strlen($alphabet) - 1; for ($i = 0; $i < 6; $i++) { $n = rand(0, $alphaLength); $pass[] = $alphabet[$n]; } return implode($pass); } function get_user_by_id($us_id) { $this->db->select('*')->from('tbluser')->where('us_id', $us_id); $query = $this->db->get(); if($query->num_rows() > 0) { $row = $query->row_array(); return $row; } } function get_user_info($src, $token, $us_id) { $data = $this->vservices->actionExecute('getinfo', array('src' => $src, 'us_id' => $us_id, 'token'=>$token), 'user'); return $data; } function update_user($src, $token, $user, $us_id) { $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'password'=>$user['password'], 'fullname'=>$user['fullname'], 'gender'=>$user['gender'], 'email'=>$user['email'], 'school'=>$user['school'], 'province'=>$user['province'], 'oldpass'=>$user['oldpass']), 'user'); return $data; } function changeProfile($sentNumber, $username, $password, &$status) { $user = array(); $src = 'SBG'; $errMsg = ''; $sms = ''; $result = $this->get_user_by_cellphone($username); if($result) { $us_id = $result['us_id']; $token = md5($us_id.self::TOKENPW); $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, 'username'=>$sentNumber, "password"=>$password, 'oldpass'=>$password, 'phone'=>$sentNumber), 'user'); parse_str($data); switch((int)$status) { case 0: $us_id = $id; $user['updated_time'] = date('Y-m-d H:i:s'); $user['us_id'] = $us_id; $user['cellphone'] = $sentNumber; $this->updateUser($us_id, $user); $sms = "Qui vi da doi so dien thoai tren soanbaigiang.smas.vn sang so dien thoai [".$sentNumber."]"; $status = 1; break; case 5: $sms = "So dien thoai của Qui vi chua duoc dang ky !"; $status = 0; break; case 6: $sms = "Mat khau cua qui vi khong dung !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } }else { $sms = "So dien thoai của Qui vi chua duoc dang ky !"; $status = 0; } return $status.'|'.$sms; } function changePassword($username, $password, &$status) { $user = array(); $src = 'SBG'; $errMsg = ''; $sms = ''; $isForgotPassword = false; $pass = $password; if (is_null($password) || $password == '') { $pass = $this->create_random_password(); $$isForgotPassword = true; } $result = $this->get_user_by_cellphone($username); if($result) { $us_id = $result['us_id']; $token = md5($us_id.self::TOKENPW); $data = $this->vservices->actionExecute('update', array('src'=>$src, 'token'=>$token, 'us_id'=>$us_id, "password"=>$pass), 'user'); parse_str($data); switch((int)$status) { case 0: $us_id = $id; $user['updated_time'] = date('Y-m-d H:i:s'); $user['cellphone'] = $sentNumber; $this->updateUser($us_id, $user); if ($isForgotPassword) { $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$password."]"; }else{ $sms = "Qui vi da doi thanh cong mat khau tren soanbaigiang.smas.vn. "; } $status = 1; break; case 5: $sms = "So dien thoai của Qui vi chua duoc dang ky !"; $status = 0; break; default: $status = 0; $sms = $errMsg; break; } } else { $sms = "So dien thoai của Qui vi da duoc dang ky !"; $status = 0; } return $status.'|'.$sms; } function checkLicense ($userId) { $isNotExpired = false; $userInfo = $this->get_user_by_id($userId); $expireDate = $userInfo['expire_date']; if ((trim($expireDate) == '')) return $isNotExpired; $today = mktime(); $expireTime = strtotime($expireDate.' 23:59:59'); $isNotExpired = ($today < $expireTime); return $isNotExpired; } function registerVip($username, $p_name, &$status) { $user = array(); $sms = ''; $result = $this->get_user_by_cellphone($username); if($result){ $package = $this->get_package($p_name); if ($result['acc_balanced']>=$package['p_price']) { $us_id = $result['us_id']; $user['acc_balanced'] = $result['acc_balanced'] - $p_price; if ($this->checkLicense($us_id)){ $user['expire_date'] = date('Y-m-d', strtotime($result['expire_date'].' + '.$package['p_period'].' month')); }else { $user['expire_date'] = date('Y-m-d', strtotime('now + '.$package['p_period'].' month')); } $user['user_package'] = $p_id; $user['updated_time'] = date('Y-m-d H:i:s'); $this->updateUser($us_id, $user); $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'])); $status = 1; }else { $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!"; $status = 0; } }else{ $sms = "Tai khoan [".$username."] chua dang ki tai khoan tren he thong SBG Online soanbaigiang.smas.vn."; $status = 0; } return $status.'|'.$sms; } function rechargeAccount($username, $amount, &$status) { $user = array(); $sms = ''; $result = $this->get_user_by_cellphone($username); if($result) { $us_id = $result['us_id']; $user['acc_balanced'] = $result['acc_balanced'] + $amount; $user['updated_time'] = date('Y-m-d H:i:s'); $this->updateUser($us_id, $user); $sms = "Qui vi da nap thanh cong [".$amount."] vao tai khoan ".$username." tren soanbaigiang.smas.vn"; $status = 1; }else { $sms = "Tai khoan [".$username."] chua dang ki tai khoan tren he thong SBG Online soanbaigiang.smas.vn."; $status = 0; } return $status.'|'.$sms; } function get_user_by_cellphone($cellphone) { $this->db->select('*')->from('tbluser')->where('cellphone', $cellphone)->limit(1); $result = $this->db->get()->row_array(); return $result; } function isExistCollabolator($collabolator) { $this->db->select('*')->from('tbluser')->where('collabolator', $cellphone)->limit(1); $result = $this->db->get()->row_array(); if ($result) return true; else return false; } function updateUser($us_id, $data) { $this->db->where('us_id', $us_id); $this->db->update('tbluser', $data); } function get_package($p_name) { $this->db->select('*')->from('tblservicepackage')->where('p_name', $p_name); $query = $this->db->get(); if($query->num_rows() > 0) { $row = $query->row_array(); return $row; } } function insertSmslog($sentNumber, $userID, $serviceID, $commandcode, $info, $receiveTime) { $smslog = array(); $smslog['sender'] = $sentNumber; $smslog['us_id'] = $userID; $smslog['service_id'] = $serviceID; $smslog['commandcode'] = $commandcode; $smslog['info'] = $info; $smslog['created_time'] = $receiveTime; $this->db->insert('tblsmslog', $smslog); } }