game2006api/webapp/services/HashRateService.php
2023-08-23 04:15:52 +08:00

60 lines
1.9 KiB
PHP

<?php
namespace services;
require_once('mt/HashRate.php');
require_once('models/Bag.php');
require_once('models/CrystalRecord.php');
use models\Bag;
use models\CrystalRecord;
use mt\HashRate;
class HashRateService extends BaseService
{
const NONE_STATE = 0;
const RECEIVED_STATE = 1;
public function getCrystalDto($crystalMeta,&$crystalDto){
$crystalDto = array(
'item_id' => $crystalMeta['id'],
'pending' => 0,
'total' => array(),
'claimed' => 0,
'state' => self::NONE_STATE,
);
$hashRateMeta = HashRate::findHash($crystalMeta['id']);
switch ($crystalMeta['sub_type']){
case 1 : {
$killsNum = myself()->_getV(TN_TOTAL_KILLS_NUM,0);
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
$rankNum = myself()->_getV(TN_TOTAL_RANK_NUM,0);
$crystalDto['total'] = array(
'param1' => intval($killsNum),
'param2' => intval($starNum),
'param3' => intval($rankNum),
);
$param = explode('|',$hashRateMeta['parameter']);
$totalNum = max(0,floor($killsNum/$param[0]) +
floor($starNum/$param[1]) + $rankNum);
$ownedNum = CrystalRecord::getCrystalNum($crystalMeta['id']);
$crystalDto['pending'] = intval(max(0,$totalNum - $ownedNum));
$crystalDto['claimed'] = intval($ownedNum);
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
}
break;
case 2 : {
// 游戏内消费总价值
}
break;
case 3 : {
// Market交易总价值
}
break;
case 4 : {
// 质压总价值
}
break;
}
}
}