From 32ebc4bde58decaa77e96a9d5122e72bb877eb52 Mon Sep 17 00:00:00 2001 From: hujiabin <519660157@qq.com> Date: Sun, 25 Jun 2023 18:06:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=9E=E8=B0=83=E7=9A=84?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webapp/services/callback/BuyPassCbService.php | 33 ++++++++++++++++++- .../services/callback/GameItemMallBuyOk.php | 24 +++++++++++--- .../services/callback/ShopAddItemService.php | 19 +++++++++++ 3 files changed, 71 insertions(+), 5 deletions(-) diff --git a/webapp/services/callback/BuyPassCbService.php b/webapp/services/callback/BuyPassCbService.php index 677d5610..9fc5684c 100644 --- a/webapp/services/callback/BuyPassCbService.php +++ b/webapp/services/callback/BuyPassCbService.php @@ -4,6 +4,7 @@ namespace services; require_once('mt/BattlePass.php'); +require_once ('services/callback/ShopAddItemService.php'); use mt\BattlePass; use phpcommon\SqlHelper; @@ -11,16 +12,46 @@ use phpcommon\SqlHelper; class BuyPassCbService { public function process($order){ - + $itemService = new ShopAddItemService(); switch ($order['item_id']){ //购买通行证回调 case V_ITEM_PASS : { + $itemService->addGameLog($order['address'],"buyItem","begin",array( + 'param1' => $order['order_id'], + 'param2' => json_encode(array( + 'item_id' => $order['item_id'], + 'item_num' => $order['item_num'], + )), + )); $this->_activateUser($order['address']); + error_log("callback buyBattlePass address: {$order['address']}, order_id: {$order['order_id']}, item_id: {$order['item_id']}, item_num: {$order['item_num']}"); + $itemService->addGameLog($order['address'],"buyItem","end",array( + 'param1' => $order['order_id'], + 'param2' => json_encode(array( + 'item_id' => $order['item_id'], + 'item_num' => $order['item_num'], + )), + )); } break; //购买等级回调 case V_ITEM_EXP : { + $itemService->addGameLog($order['address'],"buyItem","begin",array( + 'param1' => $order['order_id'], + 'param2' => json_encode(array( + 'item_id' => $order['item_id'], + 'item_num' => $order['item_num'], + )), + )); $this->_updateUserLevel($order['address'],$order['item_num']); + error_log("callback buyPassExp address: {$order['address']}, order_id: {$order['order_id']}, item_id: {$order['item_id']}, item_num: {$order['item_num']}"); + $itemService->addGameLog($order['address'],"buyItem","end",array( + 'param1' => $order['order_id'], + 'param2' => json_encode(array( + 'item_id' => $order['item_id'], + 'item_num' => $order['item_num'], + )), + )); } default : { diff --git a/webapp/services/callback/GameItemMallBuyOk.php b/webapp/services/callback/GameItemMallBuyOk.php index 3d85f7e6..9001bf64 100644 --- a/webapp/services/callback/GameItemMallBuyOk.php +++ b/webapp/services/callback/GameItemMallBuyOk.php @@ -22,21 +22,37 @@ class GameItemMallBuyOk { 'order_id' => $orderId ) ); + //1:已发货 2:订单不存在 + if (!$orderDb){ + return json_encode(array( + 'errcode' => 2, + 'errmsg' => "Order does not exist", + )); + } + if ($orderDb['status'] == 1){ + return json_encode(array( + 'errcode' => 1, + 'errmsg' => "Order shipped", + )); + } + +// 修改订单状态 + $this->_updateOrderState($address,$orderId); // 小胡 回调的处理 if ($this->_isVirtualItem($orderDb['item_id'])){ $passCbService = new BuyPassCbService(); $passCbService->process($orderDb); - } else { // 老宋 处理... $shopGoodsCbService = new BuyShopGoodsCbService(); $shopGoodsCbService->process($orderDb); } - -// 修改订单状态 - $this->_updateOrderState($address,$orderId); + return json_encode(array( + 'errcode' => 0, + 'errmsg' => "callback success", + )); } private function _isVirtualItem($itemId){ diff --git a/webapp/services/callback/ShopAddItemService.php b/webapp/services/callback/ShopAddItemService.php index 0bf95537..614ac92d 100644 --- a/webapp/services/callback/ShopAddItemService.php +++ b/webapp/services/callback/ShopAddItemService.php @@ -10,6 +10,25 @@ use phpcommon\SqlHelper; use mt; class ShopAddItemService { + public function addGameLog($address,$type, $subtype, $params){ + $accountId = $this->getAccountId($address); + $conn = myself()->_getMysql($address); + SqlHelper::insert( + $conn, + 't_game_log', + array( + 'account_id' => $accountId, + 'type' => $type, + 'subtype' => $subtype, + 'param1' => getXVal($params, 'param1', ''), + 'param2' => getXVal($params, 'param2', ''), + 'param3' => getXVal($params, 'param3', ''), + 'param4' => getXVal($params, 'param4', ''), + 'createtime' => myself()->_getNowTime(), + 'modifytime' => myself()->_getNowTime() + ) + ); + } public function addItem($address,$itemId,$itemNum){ if ($itemNum < 1){