This commit is contained in:
hujiabin 2022-11-11 14:54:16 +08:00
parent ded703562d
commit cac797a640

View File

@ -617,6 +617,53 @@ class BlockChainController extends BaseAuthedController {
return; return;
} }
//CEG扣除
{
$costSum = 0;
foreach ($chipIds as $chipId){
$chipDb = Chip::getChipByTokenId($chipId);
if ($chipDb){
$tiliDiff = $chipDb['strength_max'] - $chipDb['strength'];
$costSum += \services\FormulaService::Chip_Demount_Mint($tiliDiff);
}
}
$decFeeCb = null;
if ($costSum > 0){
$costItems = array(
array(
'item_id' => V_ITEM_GOLD,
'item_num' => $costSum
),
);
$lackItem = null;
if (!$this->_hasEnoughItems($costItems, $lackItem)) {
$this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
return;
}
$decFeeCb = function ($transId) use ($costItems, $chipIds){
myself()->_decItems($costItems);
error_log(json_encode($costItems));
foreach ($costItems as $costItem){
TransactionPrefee::add($transId,$costItem);
}
foreach ($chipIds as $chipId){
$chipDb = Chip::getChipByTokenId($chipId);
$items = array(
'token_id' => $chipDb['token_id'],
'token_type' => $chipDb['chip_type'],
'item_id' => self::TEST_ITEM_ID,
'item_num' => $chipDb['strength_max'] - $chipDb['strength']
);
Chip::update($chipId,array(
'strength'=>$chipDb['strength_max']
));
TransactionPrefee::add($transId,$items);
}
};
}
}
switch ($type) { switch ($type) {
case 1: case 1:
{ {
@ -625,52 +672,7 @@ class BlockChainController extends BaseAuthedController {
myself()->_rspErr(101, 'token_id paramater error'); myself()->_rspErr(101, 'token_id paramater error');
return; return;
} }
//CEG扣除
{
$costSum = 0;
foreach ($chipIds as $chipId){
$chipDb = Chip::getChipByTokenId($chipId);
if ($chipDb){
$tiliDiff = $chipDb['strength_max'] - $chipDb['strength'];
$costSum += \services\FormulaService::Chip_Demount_Mint($tiliDiff);
}
}
$decFeeCb = null;
if ($costSum > 0){
$costItems = array(
array(
'item_id' => V_ITEM_GOLD,
'item_num' => $costSum
),
);
$lackItem = null;
if (!$this->_hasEnoughItems($costItems, $lackItem)) {
$this->_rspErr(3, $this->_getLackItemErrMsg($lackItem));
return;
}
$decFeeCb = function ($transId) use ($costItems, $chipIds){
myself()->_decItems($costItems);
error_log(json_encode($costItems));
foreach ($costItems as $costItem){
TransactionPrefee::add($transId,$costItem);
}
foreach ($chipIds as $chipId){
$chipDb = Chip::getChipByTokenId($chipId);
$items = array(
'token_id' => $chipDb['token_id'],
'token_type' => $chipDb['chip_type'],
'item_id' => self::TEST_ITEM_ID,
'item_num' => $chipDb['strength_max'] - $chipDb['strength']
);
Chip::update($chipId,array(
'strength'=>$chipDb['strength_max']
));
TransactionPrefee::add($transId,$items);
}
};
}
}
$this->internalBcCall( $this->internalBcCall(
array( array(
'c' => 'BcService', 'c' => 'BcService',
@ -721,7 +723,8 @@ class BlockChainController extends BaseAuthedController {
'tokenType' => Nft::EQUIP_TYPE, 'tokenType' => Nft::EQUIP_TYPE,
'itemUniId' => $gunDb['gun_uniid'], 'itemUniId' => $gunDb['gun_uniid'],
'itemId' => $gunDb['gun_id'] 'itemId' => $gunDb['gun_id']
) ),
$decFeeCb
); );
} }
break; break;