vservices->setApiUrl($this->config->item('api_url')); $this->vservices->setConnection($this->curl); } public 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; } } public function register ($username, $collaborator, &$status='') { $user = array(); $password = $this->create_random_password(); $src = 'SBG'; $sms = ''; $id = 0; $errMsg = ''; $token = md5($username.self::TOKENPW); $phone = $username; if (!is_null($collaborator) || $collaborator != ''){ if(!$this->isExistcollaborator($collaborator)){ $sms = "Khong tim thay cong tac vien nao co so dien thoai [".$collaborator."] tren soanbaigiang.smas.vn!"; $status = 0; return $status.'|'.$sms; } } $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; if (!is_null($collaborator) || $collaborator != ''){ $user['collaborator'] = $collaborator; } $this->db->query('UNLOCK TABLES'); $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; } public function create_random_password() { //$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"; $alphabet = "0123456789"; $pass = array(); $alphaLength = strlen($alphabet) - 1; for ($i = 0; $i < 6; $i++) { $n = rand(0, $alphaLength); $pass[] = $alphabet[$n]; } return implode($pass); } public function get_user_by_id($us_id) { $this->db->query('UNLOCK TABLES'); $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; } } public 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; } public 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'], 'school'=>$user['school'], 'province'=>$user['province'], 'oldpass'=>$user['oldpass']), 'user'); return $data; } public function changeProfile($sentNumber, $username, $password, &$status='') { $user = array(); $src = 'SBG'; $errMsg = ''; $sms = ''; $checkSentNumber = $this->get_user_by_cellphone($sentNumber); if($checkSentNumber) { $sms = "So Dien thoai ".$sentNumber." da dang ky tren he thong SBG Online soanbaigiang.smas.vn nen Qui vi khong the doi sang so dien thoai nay duoc."; $status = 0; return $status.'|'.$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; } public 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'); $this->updateUser($us_id, $user); if ($isForgotPassword) { $sms = "Mat khau moi cua quy vi tren soanbaigiang.smas.vn la [".$pass."]"; }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; } public function checkLicense ($userId) { $isNotExpired = false; $userInfo = array(); $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; } public function registerVip($username, $p_code) { $user = array(); $sms = ''; $result = $this->get_user_by_cellphone($username); $package = $this->get_package((int)$p_code); if($result){ if ($result['acc_balanced'] >= $package['p_price']) { $us_id = $result['us_id']; $user['acc_balanced'] = $result['acc_balanced'] - $package['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['p_id'] = $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; } public function rechargeAccount($username, $amount) { $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."VND 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; } public function get_user_by_cellphone($cellphone) { $this->db->query('UNLOCK TABLES'); $sql = 'SELECT * FROM tbluser where cellphone = ? LIMIT 0,1'; $query = $this->db->query($sql, array($cellphone)); $row = $query->row_array(); return $row; } public function isExistcollaborator($collaborator) { $this->db->query('UNLOCK TABLES'); $this->db->select('*')->from('tblcollaborator')->where('login_name', $collaborator)->limit(1); $result = $this->db->get()->row_array(); if ($result) return true; else return false; } public function updateUser($us_id, $data) { $this->db->query('UNLOCK TABLES'); $this->db->where('us_id', $us_id); $this->db->update('tbluser', $data); } public function get_package($p_code) { $this->db->query('UNLOCK TABLES'); $sql = 'SELECT * FROM tblservicepackage where p_code = ? LIMIT 0,1'; $query = $this->db->query($sql, array($p_code)); $row = $query->row_array(); return $row; } public function insertSmslog($sentNumber, $serviceID, $commandcode, $info, $receiveTime) { if (preg_match('/^(84)([0-9]{9,10})$/', $sentNumber, $aryMatch) == 1) { $sentNumber = '0'. $aryMatch[2]; } try { $user = $this->get_user_by_cellphone($sentNumber); } catch(Exception $e) { } $smslog = array(); $smslog['sender'] = $sentNumber; $smslog['us_id'] = isset($user['us_id']) ? $user['us_id']:NULL; $smslog['service_id'] = $serviceID; $smslog['commandcode'] = $commandcode; $smslog['info'] = $info; $smslog['created_time'] = $receiveTime; $this->db->query('UNLOCK TABLES'); $sql = 'INSERT INTO tblsmslog(sender, us_id, service_id, commandcode, info, created_time) VALUES(?,?,?,?,?,?)'; $query = $this->db->query($sql, $smslog); //$this->db->insert('tblsmslog', $smslog); } public function insertPaidlog($sentNumber, $receiveID, $paidType, $amount, $paidTime) { if (preg_match('/^(84)([0-9]{9,10})$/', $sentNumber, $aryMatch) == 1) { $sentNumber = '0'. $aryMatch[2]; } try { $user = $this->get_user_by_cellphone($sentNumber); } catch(Exception $e) { } $paidlog = array(); $paidlog['us_id'] = isset($user['us_id']) ? $user['us_id']:NULL; $paidlog['paidType'] = $paidType; $paidlog['amount'] = $amount; $paidlog['paidTime'] = $paidTime; $this->db->query('UNLOCK TABLES'); $sql = 'INSERT INTO tblpaidlog(us_id, paidType, amount, paidTime) VALUES (?,?,?,?)'; $query = $this->db->query($sql, $paidog); } }