115 lines
3.3 KiB
PHP
115 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace services;
|
|
|
|
require_once('phpcommon/bchelper.php');
|
|
|
|
require_once('models/BcOrder.php');
|
|
|
|
require_once('ShopAddItemService.php');
|
|
require_once ('services/callback/BuyPassCbService.php');
|
|
require_once ('services/callback/BuyShopGoodsCbService.php');
|
|
require_once ('services/callback/common/SignatureService.php');
|
|
|
|
use phpcommon\SqlHelper;
|
|
|
|
use models\BcOrder;
|
|
|
|
/*
|
|
const params = {
|
|
'c': 'Callback',
|
|
'a': 'dispatch',
|
|
'action': 'gameItemMallBuyOk',
|
|
'trans_id': transId,
|
|
'order_id': orderId,
|
|
};
|
|
*/
|
|
class GameItemMallBuyOk {
|
|
|
|
public function process()
|
|
{
|
|
SignatureService::web3ServiceCheck();
|
|
$transId = getReqVal('trans_id', '');
|
|
$orderId = getReqVal('order_id', '');
|
|
|
|
error_log("GameItemMallBuyOk-------------------");
|
|
$orderDb = BcOrder::find($orderId);
|
|
if (!$orderDb) {
|
|
myself()->_rspErr(2, 'Order does not exist');
|
|
return;
|
|
}
|
|
if ($orderDb['status'] == 1){
|
|
myself()->_rspErr(1, 'Order shipped');
|
|
return;
|
|
}
|
|
BcOrder::update($orderDb['order_id'],
|
|
array(
|
|
'status' => 1
|
|
));
|
|
if ($orderDb['order_type'] == BcOrder::SPEC_ORDER_TYPE) {
|
|
$extData = json_decode($orderDb['ext_data'], true);
|
|
switch ($extData['mode']) {
|
|
case BcOrder::SHOP_BUY_MODE_NORMAL:
|
|
{
|
|
$this->procShopBuyModeNormal($orderDb, $extData);
|
|
}
|
|
break;
|
|
default:
|
|
{
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
/*
|
|
// 小胡 回调的处理
|
|
if ($this->_isVirtualItem($orderDb['item_id'])){
|
|
$passCbService = new BuyPassCbService();
|
|
$passCbService->process($orderDb);
|
|
} else {
|
|
// 老宋 处理...
|
|
$shopGoodsCbService = new BuyShopGoodsCbService();
|
|
$shopGoodsCbService->process($orderDb);
|
|
|
|
}
|
|
*/
|
|
|
|
myself()->_rspOk();
|
|
}
|
|
|
|
private function procShopBuyModeNormal($orderDb, $extData)
|
|
{
|
|
$accountId = $orderDb['account_id'];
|
|
$itemService = new ShopAddItemService();
|
|
myself()->_addLogEx($accountId, "shopBuyNormal", "begin", array(
|
|
'param1' => $orderDb['order_id'],
|
|
'param2' => json_encode(array(
|
|
'item_id' => $orderDb['item_id'],
|
|
'item_num' => $orderDb['item_num'],
|
|
)
|
|
),
|
|
'param3' => json_encode($orderDb),
|
|
));
|
|
$itemId = $orderDb['item_id'];
|
|
$itemNum = $orderDb['item_num'];
|
|
if ($itemId == V_ITEM_DIAMOND) {
|
|
$event = [
|
|
'name' => LogService::CEBG_TO_DIAMOND,
|
|
'val' => $itemNum
|
|
];
|
|
LogService::productDiamondCallback(
|
|
['account_id' => $accountId],
|
|
$event);
|
|
}
|
|
$itemService->addItemByAccountId($accountId, $itemId, $itemNum);
|
|
myself()->_addLogEx($accountId, "shopBuyNormal", "end", array(
|
|
'param1' => $orderDb['order_id'],
|
|
'param2' => json_encode(array(
|
|
'item_id' => $orderDb['item_id'],
|
|
'item_num' => $orderDb['item_num'],
|
|
)),
|
|
'param3' => json_encode($orderDb),
|
|
));
|
|
}
|
|
|
|
}
|