diff --git a/webapp/controller/BaseController.class.php b/webapp/controller/BaseController.class.php index 0218f73f..548fe7f7 100644 --- a/webapp/controller/BaseController.class.php +++ b/webapp/controller/BaseController.class.php @@ -204,4 +204,16 @@ class BaseController { ); } + public function _getAccountIdByAddress($address) + { + $row = SqlHelper::ormSelectOne( + myself()->_getMysql(''), + 't_user', + array( + 'address' => $address + ) + ); + return $row ? $row['account_id'] : null; + } + } diff --git a/webapp/services/callback/GameItemMarketBuyOk.php b/webapp/services/callback/GameItemMarketBuyOk.php index 3e390088..c6705b6f 100644 --- a/webapp/services/callback/GameItemMarketBuyOk.php +++ b/webapp/services/callback/GameItemMarketBuyOk.php @@ -37,7 +37,19 @@ class GameItemMarketBuyOk { } Mall::buyOk($orderId, $buyer); - $accountId = $orderDb['seller']; + $accountId = myself()->_getAccountIdByAddress($buyer); + if (empty($accountId)) { + myself()->_addLogEx('', "mallBuyOk", "error_not_found_buyer", array( + 'param1' => $orderDb['order_id'], + 'param2' => json_encode(array( + 'item_id' => $orderDb['item_id'], + 'item_num' => $orderDb['item_num'], + )), + 'param3' => json_encode($orderDb), + )); + myself()->_rspOk(); + return; + } $itemId = $orderDb['item_id']; $itemNum = $orderDb['item_num']; myself()->_addLogEx($accountId, "mallBuyOk", "begin", array(