db_connection != null) { return true; } else { try { $this->db_connection = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME . ';charset=utf8', DB_USER, DB_PASS); return true; } catch (PDOException $e) { $this->errors[] = MESSAGE_DATABASE_ERROR . $e->getMessage(); } } return false; } private function insert_balance($CustomerId, $AssetTypeId, $Balance, $FrozenBalance) { if ($this->databaseConnection()) { $query = $this->db_connection->prepare("INSERT INTO `$this->customer_balance_table`(`sr_no`, `CustomerId`, `AssetTypeId`, `Balance`, `FrozenBalance`, `UpdateDate`, `InsertDate`, `SaveDate`) VALUES ('', :CustomerId,:AssetTypeId,:Balance,:FrozenBalance,NULL,NOW(),NOW())"); $query->bindValue(':CustomerId', $CustomerId, PDO::PARAM_STR); $query->bindValue(':AssetTypeId', $AssetTypeId, PDO::PARAM_STR); $query->bindValue(':Balance', $Balance, PDO::PARAM_STR); $query->bindValue(':FrozenBalance', $FrozenBalance, PDO::PARAM_STR); if($query->execute()) { return true; } } return false; } public function is_fb_registered($fb_id) { if ($this->databaseConnection()) { $query = $this->db_connection->prepare("SELECT * FROM $this->customers_table WHERE `fb_id`=:fb_id"); $query->bindValue(':fb_id', $fb_id, PDO::PARAM_STR); $query->execute(); $rowCount = $query->rowCount(); if($rowCount) { $user_obj = $query->fetchObject(); $user_email = $user_obj->Email; if($user_email !== '' || $user_email !== null) { $update_query = $this->db_connection->prepare("UPDATE $this->customers_table SET `Email`=:email, `UpdateDate`=NOW(), `SaveDate`=NOW() WHERE `fb_id`=:fb_id LIMIT 1"); $update_query->bindValue(':email', $user_email, PDO::PARAM_STR); $update_query->bindValue(':fb_id', $fb_id, PDO::PARAM_STR); $update_query->execute(); } $_SESSION['user_id'] = $user_obj->CustomerId; $_SESSION['user_name'] = $user_obj->Username; return true; } else { $this->user_name = $_SESSION['first_name'].time(); $this->name = $_SESSION['full_name']; $this->email = $_SESSION['email']; $query = $this->db_connection->prepare(" INSERT INTO $this->customers_table (`CustomerId`, `fb_id`, `Username`, `Email`, `Name`, `UpdateDate`, `InsertDate`, `SaveDate`, `is_active`) VALUES ('',:fb_id,:Username,:Email,:Name,NULL,NOW(),NULL,0) "); $query->bindValue(':fb_id', $fb_id, PDO::PARAM_INT); $query->bindValue(':Username', $this->user_name, PDO::PARAM_STR); $query->bindValue(':Email', $this->email, PDO::PARAM_STR); $query->bindValue(':Name', $this->name, PDO::PARAM_STR); if($query->execute()) { $_SESSION['user_id'] = $this->db_connection->lastInsertId(); $_SESSION['user_name'] = $this->user_name; $AssetTypeId = 'btc'; $Balance = 10.00; $FrozenBalance = 0.00; $crypto = $this->insert_balance($_SESSION['user_id'], $AssetTypeId, $Balance, $FrozenBalance); $AssetTypeId = 'traditional'; $Balance = 100.00; $FrozenBalance = 0.00; $cash = $this->insert_balance($_SESSION['user_id'], $AssetTypeId, $Balance, $FrozenBalance); $user_exist = $this->check_user($_SESSION['user_id']); if($user_exist && $crypto && $cash) { return true; } return false; } return false; } } else { return false; } } public function check_user($customerId) { if ($this->databaseConnection()) { $query = $this->db_connection->prepare("SELECT * FROM $this->customers_table WHERE customerId = :customerId AND is_active = 1 LIMIT 1"); $query->bindParam('customerId', $customerId); if ($query->execute()) { $row_count = $query->rowCount(); if ($row_count == 1) { return $user_details = $query->fetchObject(); } return false; } else { return false; } } return false; } public function displayUserTransaction($user_id, $start=0, $limit=10) { if ($this->databaseConnection()) { $transactions = array(); $query = $this->db_connection->prepare(" SELECT TransactionId AS T_ID, a_buyer AS BUYER_ID, b_seller AS SELLER_ID, (SELECT customer.Name FROM customer WHERE customer.CustomerId=BUYER_ID) AS BUYER, (SELECT customer.Name FROM customer WHERE customer.CustomerId=SELLER_ID) AS SELLER, B_AMOUNT AS TRADE_PRICE, transaction.InsertDate, transaction.qty_traded AS TRADED_QTY FROM transaction, customer WHERE `a_buyer`= :u_id OR `b_seller`= :u_id GROUP BY T_ID ORDER BY T_ID DESC LIMIT $start, $limit "); $query->bindParam('u_id', $user_id); if ($query->execute()) { $rowCount = $query->rowCount(); if ($rowCount > 0) { while ($tr = $query->fetchObject()) { $transactions[] = $tr; } } } return $transactions; } return false; } public function list_messages_by_userId($user_id, $start=0, $limit=10) { if ($this->databaseConnection()) { $messages = array(); $query = $this->db_connection->prepare(" SELECT * FROM `messages` WHERE `username_key`= :uk ORDER BY order_id DESC LIMIT $start, $limit "); $query->bindParam("uk", $user_id); if ($query->execute()) { $rowCount = $query->rowCount(); if ($rowCount > 0) { while ($tr = $query->fetchObject()) { $messages[] = $tr; } } } return $messages; } return false; } public function actions_user($u_id, $act=1) { if ($this->databaseConnection()) { if (!empty($u_id)) { $act = (int) $act; $u_id = (int) $u_id; $query = $this->db_connection->prepare(" UPDATE `customer` SET `is_active`= $act WHERE CustomerId = :u_id LIMIT 1 "); $query->bindParam('u_id', $u_id); if ($query->execute()) { return true; } } } return false; } }