content= 'Текст по умолчанию'; // } /* * package info * */ public function packageDetails($idPackage){ return Yii::$app->db_ext->createCommand( 'SELECT w.*, c.*, o.*, cr.* FROM webshop w INNER JOIN currency c ON w.id_currency = c.id INNER JOIN orders o ON o.id_package = w.id INNER JOIN crypto_tranzactions ON cr.id_package = w.id WHERE w.id = :webshop AND o.status = :status AND user_id=:user_id' , ['webshop' => $idPackage, 'status' => 'new', 'user_id' => Yii::$app->user->id])->queryOne() } // public function getOrderDetails($idPackage){ // return Yii::$app->db_ext->createCommand( // 'SELECT w.*, c.*, o.*, cr.* FROM webshop w INNER JOIN currency c ON w.id_currency = c.id INNER JOIN orders o ON o.id_package = w.id INNER JOIN crypto_tranzactions ON cr.id_package = w.id WHERE w.id = :webshop AND o.status = :status AND user_id=:user_id' // , ['webshop' => $idPackage, 'status' => 'new', 'user_id' => Yii::$app->user->id])->queryOne(); // } /** * @param */ public function getCurrency($id){ return Yii::$app->db_ext->createCommand( 'SELECT * FROM currency as cr LEFT JOIN settings st ON st.key LIKE concat("%currency_'.$id.'%") LEFT JOIN webshop wb ON cr.id = wb.id_currency WHERE cr.id=:id ' , ['id' => $id])->queryAll(); } // get package by id public function getPackageById($id_package){ return Yii::$app->db_ext->createCommand('SELECT * FROM webshop WHERE id=:id_package', ['id_package' => $id_package])->queryOne(); } /** * @param */ public function getCurrencyList(){ return Yii::$app->db_ext->createCommand('SELECT * FROM currency WHERE show_auction = :show_auction', ['show_auction' => 1])->queryAll(); } // public function getCurrencyListShop(){ // return Yii::$app->db_ext->createCommand('SELECT * FROM currency where show_auction = 1')->queryAll(); // } /** * @param */ public function getCurrencyAuction(){ return Yii::$app->db_ext->createCommand('SELECT * FROM currency WHERE show_auction=:show_auction', ['show_auction' => 1])->queryAll(); } public function getWallet($id){ } /** * @param */ // public function getTransaction($id_user, $id_transaction){ // return Yii::$app->db_ext->createCommand('SELECT * FROM transaction WHERE id_user=:id_user', ['id_user' => $id_user])->queryAll(); // } /** * @param integer $quantity */ public function getTransactions($id_user){ return Yii::$app->db_ext->createCommand('SELECT * FROM transaction WHERE id_user=:id_user', ['id_user' => $id_user])->queryAll(); } public function getTransaction($id_user, $id_currency){ return Yii::$app->db_ext->createCommand('SELECT tr.id, tr.id_user, SUM(value) as value, cr.name FROM transaction as tr INNER JOIN currency cr ON tr.id_currency = cr.id where tr.id_user = :id_user and tr.id_currency = :id_currency', ['id_user' => $id_user, 'id_currency' => $id_currency])->queryAll()[0]; } /** * @param */ public function addTransaction($id_user, $id_currency, $value, $id_auction, $id_bid){ return Yii::$app->db_ext->createCommand()->insert('transaction', [ 'id_user' => $id_user, 'id_currency' => $id_currency, 'value' => $value, 'create_at' => date('Y-m-d H:i:s'), 'site' => 'auction', 'info' => 'Auction id = ' . $id_auction . ', Bid id = ' . $id_bid ])->execute(); } /** * @param order package id * @return true | false */ public function getOrder($id_package){ return Yii::$app->db_ext->createCommand( 'SELECT * FROM orders WHERE id_package=:id_package AND id_user=:id_user AND status=:status', [ 'id_package' => $id_package, 'id_user' => Yii::$app->user->id, 'status' => 'new' ]) ->queryOne(); } /** * @param array * @return package id */ public function createOrder($order){ $result = Yii::$app->db_ext->createCommand()->insert('orders', [ 'id_user' => Yii::$app->user->id, 'id_package' => $order['id_package'] ? $order['id_package'] : 0, 'price' => $order['price'], 'fee' => $order['fee'], 'total_to_pay' => $order['total_to_pay'], 'crypto_credits' => $order['crypto_credits'] ])->execute(); return $result ? Yii::$app->db_ext->getLastInsertID() : false; } // get tocken /** * @return true | false */ public function checkTocken(){ $token = Yii::$app->db_ext->createCommand('SELECT * FROM tranzaction_token')->queryOne(); return ($token && (time() < $token['valability'])) ? true : false; } /** * @return token string */ public function getTocken(){ $tocken = Yii::$app->db_ext->createCommand('SELECT * FROM tranzaction_token')->queryOne(); if ($tocken and (time() < $tocken['valability'])) { return $tocken['token']; } $auth = Yii::$app->api->authenticate(); if (!isset($auth['error'])) { // inser new token in db $newTocken = $this->setTocken($auth['access_token'], $auth['expires_in']); if ($newTocken) { return $auth['access_token']; } } return false; } // set tocken /** * @return true | false */ public function setTocken($token, $valability){ $result = Yii::$app->db_ext->createCommand()->insert('tranzaction_token', [ 'token' => $token, 'valability' => time() + $valability, ])->execute(); return $result ? true : false; } public function createCryptoOrder($package, $newPayment){ $order = $newPayment['object']; $insert = [ 'external_id' => $order['external_id'], 'user_id' => Yii::$app->user->id, 'id_package' => $package['id_package'] ? $package['id_package'] : 0, 'price' => $order['price'], 'callback_url' => $order['callback_url'], 'fee' => $order['fee'], 'total_to_pay' => $order['total_to_pay'], 'wallet' => $order['wallet'], 'status' => $order['status'], 'received' => $order['received'], 'updated_at' => $order['updated_at'], 'created_at' => $order['created_at'], 'id' => $order['id'], 'order_id' => $package['id'], 'id_currency' => $package['id_currency'], ]; $result = Yii::$app->db_ext->createCommand()->insert('crypto_tranzactions', $insert)->execute(); return $result ? $package['id_package'] : false; } public function getCryptoOrder($order_id){ return Yii::$app->db_ext->createCommand('SELECT * FROM crypto_tranzactions as crypto INNER JOIN orders ord ON crypto.order_id = ord.id WHERE order_id=:order_id', ['order_id' => $order_id])->queryOne(); } // currency orders /** * @param order array format * @return false | object */ public function checkCurrencyOrder($order){ $response = Yii::$app->db_ext->createCommand( 'SELECT * FROM orders WHERE id_user=:id_user AND id_package=0 AND price=:price AND fee=:fee AND total_to_pay=:total_to_pay AND crypto_credits=:crypto_credits AND status=:status', [ 'id_user' => Yii::$app->user->id, 'price' => $order['price'], 'fee' => $order['fee'], 'total_to_pay' => $order['total_to_pay'], 'crypto_credits' => $order['crypto_credits'], 'status' => 'new' ])->queryOne(); return $response ? $response : false; } /** * @param order object * @return true | false */ public function updateCryptoOrder($order, $order_id){ $response = Yii::$app->db_ext->createCommand() ->update('crypto_tranzactions', [ 'status' => $order->status, 'received' => $order->received ], "external_id = 'AUCT$order_id'" ) ->execute(); $response2 = Yii::$app->db_ext->createCommand() ->update('orders', [ 'status' => $order->status, ], 'id = ' . $order_id ) ->execute(); return $response ==1 && $response2 == 1 ? true : false; } /** * @param user id * @return array */ public function getUserTransactions($uid){ return Yii::$app->db_ext->createCommand('SELECT * FROM crypto_tranzactions tr LEFT JOIN webshop wb ON tr.id_package = wb.id WHERE user_id=:user_id', ['user_id' => $uid])->queryAll(); } /** * @param external_id * @return 1 row (array) */ public function getTransactionStatus($external_id){ return Yii::$app->db_ext->createCommand('SELECT * FROM crypto_tranzactions as crypto INNER JOIN orders ord ON crypto.order_id = ord.id WHERE ord.id=:order_id', ['order_id' => str_replace("AUCT", '', $external_id)])->queryOne(); } /** * @param user, id, total summ, information (text) * @return true | false */ public function addUserCurrency($id_user, $id_currency, $value, $information){ return Yii::$app->db_ext->createCommand()->insert('transaction', [ 'id_user' => $id_user, 'id_currency' => $id_currency, 'value' => $value, 'created_at' => date('Y-m-d H:i:s'), 'site' => 'auction', 'info' => $information ])->execute(); } /** * @param user id * @return user balance list with currencies */ public function getUserBalanceInfo($uid, $cid){ return Yii::$app->db_ext->createCommand('SELECT c.*, tr.* FROM currency as c LEFT JOIN transaction tr ON c.id = tr.id_currency AND tr.id_user = :id_user WHERE c.id=:cid AND c.show_auction = :show_auction', ['id_user' => $uid, 'cid' => $cid, 'show_auction' => 1])->queryAll(); } }