diff --git a/webapp/services/callback/MarketBuyOrderOk.php b/webapp/services/callback/MarketBuyOrderOk.php index b3825738..dcc7e833 100644 --- a/webapp/services/callback/MarketBuyOrderOk.php +++ b/webapp/services/callback/MarketBuyOrderOk.php @@ -8,10 +8,8 @@ require_once('services/callback/common/SignatureService.php'); use services\MarketCallbackBase; use phpcommon\SqlHelper; +class MarketBuyOrderOk extends MarketCallbackBase { - -class MarketBuyOrderOk extends MarketCallbackBase -{ public function process() { SignatureService::web3ServiceCheck(); @@ -80,11 +78,12 @@ class MarketBuyOrderOk extends MarketCallbackBase return; } else { - // 操作失败,暂时视为未找到订单 - $this->_rspErr(2, 'order status error, o_link=' . $o_link); - return; + // 操作失败,暂时视为未找到订单 + $this->_rspErr(2, 'order status error, o_link=' . $o_link); + return; } } } + } diff --git a/webapp/services/callback/MarketCancelOrderOk.php b/webapp/services/callback/MarketCancelOrderOk.php index df748a95..9f8e5794 100644 --- a/webapp/services/callback/MarketCancelOrderOk.php +++ b/webapp/services/callback/MarketCancelOrderOk.php @@ -8,52 +8,53 @@ require_once ('services/callback/common/SignatureService.php'); use services\MarketCallbackBase; use phpcommon\SqlHelper; -class MarketCancelOrderOk extends MarketCallbackBase -{ - public function process() - { - SignatureService::web3ServiceCheck(); - error_log('MarketCancelOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT)); +class MarketCancelOrderOk extends MarketCallbackBase { - $orderId = getReqVal('orderId', ''); - $nftToken = getReqVal('nftToken', ''); - $tokenId = getReqVal('tokenId', ''); - error_log( - "eventCancelOrder:" . json_encode( - array( - 'orderId' => $orderId, - 'nftToken' => $nftToken, - 'tokenId' => $tokenId, - ), - JSON_PRETTY_PRINT - ) - ); + public function process() + { + SignatureService::web3ServiceCheck(); + error_log('MarketCancelOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT)); - $o_link = $orderId; - $conn = myself()->_getMysql(''); - - // 检查订单是否在销售中,并且没有人购买 - $chk = SqlHelper::selectOne($conn, 't_market_store', array('status'), array('o_link' => $o_link, 'status' => 0)); - if (empty($chk)) { - $this->_rspErr(2, 'not found order, o_link=' . $o_link); - return; - } - - if ($chk['status'] == '0') { - $r = SqlHelper::update( - $conn, - 't_market_store', - array( - 'o_link' => $o_link - ), - array( - 'status' => 1, + $orderId = getReqVal('orderId', ''); + $nftToken = getReqVal('nftToken', ''); + $tokenId = getReqVal('tokenId', ''); + error_log( + "eventCancelOrder:" . json_encode( + array( + 'orderId' => $orderId, + 'nftToken' => $nftToken, + 'tokenId' => $tokenId, + ), + JSON_PRETTY_PRINT ) ); - if ($r) { - $this->_rspOk(); + + $o_link = $orderId; + $conn = myself()->_getMysql(''); + + // 检查订单是否在销售中,并且没有人购买 + $chk = SqlHelper::selectOne($conn, 't_market_store', array('status'), array('o_link' => $o_link, 'status' => 0)); + if (empty($chk)) { + $this->_rspErr(2, 'not found order, o_link=' . $o_link); return; } + + if ($chk['status'] == '0') { + $r = SqlHelper::update( + $conn, + 't_market_store', + array( + 'o_link' => $o_link + ), + array( + 'status' => 1, + ) + ); + if ($r) { + $this->_rspOk(); + return; + } + } } - } + } diff --git a/webapp/services/callback/MarketPriceUpdateOrderOk.php b/webapp/services/callback/MarketPriceUpdateOrderOk.php index a8f43b4b..c240187c 100644 --- a/webapp/services/callback/MarketPriceUpdateOrderOk.php +++ b/webapp/services/callback/MarketPriceUpdateOrderOk.php @@ -8,59 +8,60 @@ require_once ('services/callback/common/SignatureService.php'); use services\MarketCallbackBase; use phpcommon\SqlHelper; -class MarketPriceUpdateOrderOk extends MarketCallbackBase -{ - public function process() - { - SignatureService::web3ServiceCheck(); - error_log('MarketPriceUpdateOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT)); +class MarketPriceUpdateOrderOk extends MarketCallbackBase { - $orderId = getReqVal('orderId', '');; - $nftToken = getReqVal('nftToken', ''); - $tokenId = getReqVal('tokenId', ''); - $priceOld = getReqVal('priceOld', ''); - $price = getReqVal('price', ''); - error_log( - "eventPriceUpdateOrder:" . json_encode( - array( - 'orderId' => $orderId, - 'nftToken' => $nftToken, - 'tokenId' => $tokenId, - 'priceOld' => $priceOld, - 'price' => $price, - ), - JSON_PRETTY_PRINT - ) - ); + public function process() + { + SignatureService::web3ServiceCheck(); + error_log('MarketPriceUpdateOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT)); - $o_link = $orderId; - $conn = myself()->_getMysql(''); - - // 订单没找到 - $chk = SqlHelper::selectOne($conn, 't_market_store', array('status'), array('o_link' => $o_link, 'status' => 0, 's_price' => $priceOld)); - if (empty($chk)) { - $this->_rspErr(2, 'not found order, o_link=' . $o_link); - return; - } - - if ($chk['status'] == '0') { - $r = SqlHelper::update( - $conn, - 't_market_store', - array( - 'o_link' => $o_link, - ), - array( - 's_price' => $price, + $orderId = getReqVal('orderId', '');; + $nftToken = getReqVal('nftToken', ''); + $tokenId = getReqVal('tokenId', ''); + $priceOld = getReqVal('priceOld', ''); + $price = getReqVal('price', ''); + error_log( + "eventPriceUpdateOrder:" . json_encode( + array( + 'orderId' => $orderId, + 'nftToken' => $nftToken, + 'tokenId' => $tokenId, + 'priceOld' => $priceOld, + 'price' => $price, + ), + JSON_PRETTY_PRINT ) ); - if ($r) { - $this->_rspOk(); + + $o_link = $orderId; + $conn = myself()->_getMysql(''); + + // 订单没找到 + $chk = SqlHelper::selectOne($conn, 't_market_store', array('status'), array('o_link' => $o_link, 'status' => 0, 's_price' => $priceOld)); + if (empty($chk)) { + $this->_rspErr(2, 'not found order, o_link=' . $o_link); return; - } else { - $this->_rspErr(2, 'not found order, o_link=' . $o_link); - return; + } + + if ($chk['status'] == '0') { + $r = SqlHelper::update( + $conn, + 't_market_store', + array( + 'o_link' => $o_link, + ), + array( + 's_price' => $price, + ) + ); + if ($r) { + $this->_rspOk(); + return; + } else { + $this->_rspErr(2, 'not found order, o_link=' . $o_link); + return; + } } } - } + } diff --git a/webapp/services/callback/MarketSellOrderOk.php b/webapp/services/callback/MarketSellOrderOk.php index 5b7beed7..635d917b 100644 --- a/webapp/services/callback/MarketSellOrderOk.php +++ b/webapp/services/callback/MarketSellOrderOk.php @@ -17,130 +17,131 @@ use models\Gun; use models\Chip; use models\Fragment; -class MarketSellOrderOk extends MarketCallbackBase -{ - public function process() - { - SignatureService::web3ServiceCheck(); - error_log('MarketSellOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT)); +class MarketSellOrderOk extends MarketCallbackBase { - $tokenId = getReqVal('tokenId', ''); - $owner = strtolower(getReqVal('owner', '')); - $nftToken = getReqVal('nftToken', ''); - $amount = getReqVal('amount', 0); - $orderId = getReqVal('orderId', ''); - $currency = getReqVal('currency', ''); - $price = getReqVal('price', ''); + public function process() + { + SignatureService::web3ServiceCheck(); + error_log('MarketSellOrderOk:' . json_encode($_REQUEST, JSON_PRETTY_PRINT)); - error_log( - "eventSellOrder:" . json_encode( + $tokenId = getReqVal('tokenId', ''); + $owner = strtolower(getReqVal('owner', '')); + $nftToken = getReqVal('nftToken', ''); + $amount = getReqVal('amount', 0); + $orderId = getReqVal('orderId', ''); + $currency = getReqVal('currency', ''); + $price = getReqVal('price', ''); + + error_log( + "eventSellOrder:" . json_encode( + array( + 'tokenId' => $tokenId, + 'owner' => $owner, + 'nftToken' => $nftToken, + 'amount' => $amount, + 'orderId' => $orderId, + 'currency' => $currency, + 'price' => $price, + ), + JSON_PRETTY_PRINT + ) + ); + + $o_link = $orderId; + $conn = myself()->_getMysql(''); + + // 1. check order status and repeat order + $chk = SqlHelper::selectOne($conn, 't_market_store', array('status'), array('o_link' => $o_link)); + if (!empty($chk)) { + $this->_rspErr(1, 'repeat sell order, o_link=' . $o_link); + return; + } + + // 2. insert sell order to t_market_store + $nftDb = Nft::findNftByOwner($owner, $tokenId); + if (empty($nftDb)) { + $nftDb = Nft::getNft($tokenId); + } + $nftDetail = Nft::toDto($nftDb); + $detail = $this->getNftGameData($nftDb); + $r = SqlHelper::insert( + $conn, + 't_market_store', array( - 'tokenId' => $tokenId, - 'owner' => $owner, - 'nftToken' => $nftToken, + 'token_id' => $tokenId, + 'o_link' => $o_link, + 'nft_token' => $nftToken, + 'status' => 0, + 'owner_address' => $owner, + 'token_type' => $nftDetail['type'], 'amount' => $amount, - 'orderId' => $orderId, - 'currency' => $currency, - 'price' => $price, - ), - JSON_PRETTY_PRINT - ) - ); - - $o_link = $orderId; - $conn = myself()->_getMysql(''); - - // 1. check order status and repeat order - $chk = SqlHelper::selectOne($conn, 't_market_store', array('status'), array('o_link' => $o_link)); - if (!empty($chk)) { - $this->_rspErr(1, 'repeat sell order, o_link=' . $o_link); - return; - } - - // 2. insert sell order to t_market_store - $nftDb = Nft::findNftByOwner($owner, $tokenId); - if (empty($nftDb)) { - $nftDb = Nft::getNft($tokenId); - } - $nftDetail = Nft::toDto($nftDb); - $detail = $this->getNftGameData($nftDb); - $r = SqlHelper::insert( - $conn, - 't_market_store', - array( - 'token_id' => $tokenId, - 'o_link' => $o_link, - 'nft_token' => $nftToken, - 'status' => 0, - 'owner_address' => $owner, - 'token_type' => $nftDetail['type'], - 'amount' => $amount, - 'createtime' => myself()->_getNowTime(), - 'modifytime' => myself()->_getNowTime(), - 's_currency' => $currency, - 's_price' => $price, - 'c_name' => $nftDetail['info']['name'], - 'c_job' => isset($nftDetail['info']['job']) ? $nftDetail['info']['job'] + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime(), + 's_currency' => $currency, + 's_price' => $price, + 'c_name' => $nftDetail['info']['name'], + 'c_job' => isset($nftDetail['info']['job']) ? $nftDetail['info']['job'] : (isset($detail['chip_type']) ? $detail['chip_type'] - : (isset($detail['type']) ? $detail['type'] - : 0)), - 'c_lv' => @$detail['gun_lv'] | @$detail['hero_lv'] | @$detail['chip_grade'], - 'c_quality' => isset($nftDetail['info']['quality']) ? $nftDetail['info']['quality'] : 0, - 'c_durability' => isset($nftDetail['info']['durability']) ? $nftDetail['info']['durability'] : (isset($detail['hero_tili']) ? $detail['hero_tili'] : 0), - 'c_type' => isset($detail['type']) ? $detail['type'] : 0, - 'c_id' => $nftDetail['item_id'], - ) - ); - if (!$r) { - // 上架操作失败,这种情况一般不不应该发生,如果发生了,就是系统bug - $this->_rspErr(2, 'unknown error, o_link=' . $o_link); + : (isset($detail['type']) ? $detail['type'] + : 0)), + 'c_lv' => @$detail['gun_lv'] | @$detail['hero_lv'] | @$detail['chip_grade'], + 'c_quality' => isset($nftDetail['info']['quality']) ? $nftDetail['info']['quality'] : 0, + 'c_durability' => isset($nftDetail['info']['durability']) ? $nftDetail['info']['durability'] : (isset($detail['hero_tili']) ? $detail['hero_tili'] : 0), + 'c_type' => isset($detail['type']) ? $detail['type'] : 0, + 'c_id' => $nftDetail['item_id'], + ) + ); + if (!$r) { + // 上架操作失败,这种情况一般不不应该发生,如果发生了,就是系统bug + $this->_rspErr(2, 'unknown error, o_link=' . $o_link); + } + + // 成功上架,更新nft状态 + $this->_rspOk(); } - // 成功上架,更新nft状态 - $this->_rspOk(); - } + private function getNftGameData($nftRowInfo) + { + $t = $nftRowInfo['token_type']; + $token_id = $nftRowInfo['token_id']; + switch ($t) { + case Nft::HERO_TYPE: { + return $this->appendChipsInfo(Hero::toDtoInfo(Hero::findByTokenId2($token_id))); + } + break; + case Nft::EQUIP_TYPE: { + return $this->appendChipsInfo(Gun::toDtoInfo(Gun::findByTokenId2($token_id))); + } + break; + case Nft::CHIP_TYPE: { + return Chip::toDto(Chip::getChipByTokenId($token_id)); + } + break; + case Nft::FRAGMENT_TYPE: { + return Fragment::ToDto($nftRowInfo); + } + break; + default: { + } + break; + } + return array('unknown' => 'unknown game data type, cannot find data'); + } - private function getNftGameData($nftRowInfo) - { - $t = $nftRowInfo['token_type']; - $token_id = $nftRowInfo['token_id']; - switch ($t) { - case Nft::HERO_TYPE: { - return $this->appendChipsInfo(Hero::toDtoInfo(Hero::findByTokenId2($token_id))); - } - break; - case Nft::EQUIP_TYPE: { - return $this->appendChipsInfo(Gun::toDtoInfo(Gun::findByTokenId2($token_id))); - } - break; - case Nft::CHIP_TYPE: { - return Chip::toDto(Chip::getChipByTokenId($token_id)); - } - break; - case Nft::FRAGMENT_TYPE: { - return Fragment::ToDto($nftRowInfo); - } - break; - default: { - } - break; - } - return array('unknown' => 'unknown game data type, cannot find data'); - } + private function appendChipsInfo($detail) + { + $detail['chips_info'] = array(); + if (!empty($detail['chip_ids'])) { + $chips = explode('|', $detail['chip_ids']); + foreach ($chips as $chip) { + $chip_info = ""; + if (!empty($chip)) { + $chip_info = Chip::toDto(Chip::getChipByTokenId($chip)); + } + array_push($detail['chips_info'], $chip_info); + } + } + return $detail; + } - private function appendChipsInfo($detail) - { - $detail['chips_info'] = array(); - if (!empty($detail['chip_ids'])) { - $chips = explode('|', $detail['chip_ids']); - foreach ($chips as $chip) { - $chip_info = ""; - if (!empty($chip)) { - $chip_info = Chip::toDto(Chip::getChipByTokenId($chip)); - } - array_push($detail['chips_info'], $chip_info); - } - } - return $detail; - } }