cec记录
This commit is contained in:
parent
6e179337e0
commit
99de6c1a45
18
doc/Other.py
18
doc/Other.py
@ -43,4 +43,22 @@ class Other(object):
|
|||||||
], '信息'],
|
], '信息'],
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'name': 'getCecRewardHistory',
|
||||||
|
'desc': 'cec历史记录界面',
|
||||||
|
'group': 'Other',
|
||||||
|
'url': 'webapp/index.php?c=Other&a=getCecRewardHistory',
|
||||||
|
'params': [
|
||||||
|
_common.ReqHead(),
|
||||||
|
],
|
||||||
|
'response': [
|
||||||
|
_common.RspHead(),
|
||||||
|
['!list', [
|
||||||
|
['type',0,'1:排位 2:算力 3:质押'],
|
||||||
|
['cecVal',0,'cec数量'],
|
||||||
|
['createtime',0,'获取时间']
|
||||||
|
], '历史记录'],
|
||||||
|
['cec',0,'cec'],
|
||||||
|
]
|
||||||
|
},
|
||||||
]
|
]
|
@ -120,6 +120,8 @@ class ComputingPowerController extends BaseAuthedController
|
|||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
$param = explode('|',$hashRateMeta['parameter']);
|
$param = explode('|',$hashRateMeta['parameter']);
|
||||||
|
$paramEd = explode(':',$param[0]);
|
||||||
|
$paramEx = explode(':',$param[1]);
|
||||||
$crystalNum = 0;
|
$crystalNum = 0;
|
||||||
switch ($itemId){
|
switch ($itemId){
|
||||||
case ComputingPower::CRYSTAL1 : {
|
case ComputingPower::CRYSTAL1 : {
|
||||||
@ -129,22 +131,22 @@ class ComputingPowerController extends BaseAuthedController
|
|||||||
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
||||||
$starNumEd = myself()->_getV(TN_TOTAL_STAR_NUM,-1);
|
$starNumEd = myself()->_getV(TN_TOTAL_STAR_NUM,-1);
|
||||||
$starNumEx = $starNum - $starNumEd ;
|
$starNumEx = $starNum - $starNumEd ;
|
||||||
$crystalNum = max(0,floor($killsNumEx / $param[0]) +
|
$crystalNum = max(0,floor($killsNumEx / $paramEd[0]) * $paramEd[1] +
|
||||||
floor($starNumEx / $param[1]) );
|
floor($starNumEx / $paramEx[0]) * $paramEx[1] );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ComputingPower::CRYSTAL2 : {
|
case ComputingPower::CRYSTAL2 : {
|
||||||
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
||||||
$consumeCostEd = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,-1);
|
$consumeCostEd = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,-1);
|
||||||
$consumeCostEx = $consumeCost - $consumeCostEd ;
|
$consumeCostEx = $consumeCost - $consumeCostEd ;
|
||||||
$crystalNum = max(0,floor($consumeCostEx / \services\HashRateService::EXCHANGE_RATE / $param[0]));
|
$crystalNum = max(0,floor($consumeCostEx / \services\HashRateService::EXCHANGE_RATE / $paramEd[0]) * $paramEd[1]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ComputingPower::CRYSTAL3 : {
|
case ComputingPower::CRYSTAL3 : {
|
||||||
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
||||||
$consumeCostEd = myself()->_getV(TN_TOTAL_CEG_CONSUME,-1);
|
$consumeCostEd = myself()->_getV(TN_TOTAL_CEG_CONSUME,-1);
|
||||||
$consumeCostEx = $consumeCost - $consumeCostEd;
|
$consumeCostEx = $consumeCost - $consumeCostEd;
|
||||||
$crystalNum = max(0,floor($consumeCostEx / \services\HashRateService::EXCHANGE_RATE / $param[0]));
|
$crystalNum = max(0,floor($consumeCostEx / \services\HashRateService::EXCHANGE_RATE / $paramEd[0]) * $paramEd[1]);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ComputingPower::CRYSTAL4 : {
|
case ComputingPower::CRYSTAL4 : {
|
||||||
@ -155,7 +157,7 @@ class ComputingPowerController extends BaseAuthedController
|
|||||||
}
|
}
|
||||||
$rate = Parameter::getVal('cec_exchange_rate',10);
|
$rate = Parameter::getVal('cec_exchange_rate',10);
|
||||||
$cecVal = Staking::getStakingTotalValue();
|
$cecVal = Staking::getStakingTotalValue();
|
||||||
$crystalNum = max(0,floor($cecVal / $rate / $param[0]));
|
$crystalNum = max(0,floor($cecVal / $rate / $paramEd[0]) * $paramEd[1]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -184,18 +186,19 @@ class ComputingPowerController extends BaseAuthedController
|
|||||||
$killsNumEd = myself()->_getV(TN_TOTAL_KILLS_NUM,-1);
|
$killsNumEd = myself()->_getV(TN_TOTAL_KILLS_NUM,-1);
|
||||||
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
$starNum = myself()->_getV(TN_TOTAL_STAR_NUM,0);
|
||||||
$starNumEd = myself()->_getV(TN_TOTAL_STAR_NUM,-1);
|
$starNumEd = myself()->_getV(TN_TOTAL_STAR_NUM,-1);
|
||||||
$newKillsNum = floor(($killsNum-$killsNumEd)/$param[0]) * $param[0];
|
//floor($killsNumEx / $paramEd[0]) * $paramEd[1] 222 100:3 222/100=2 2*3=6 6/3=2 2*100
|
||||||
|
$newKillsNum = floor(($killsNum-$killsNumEd)/$paramEd[0]) * $paramEd[0];
|
||||||
myself()->_incV(TN_TOTAL_KILLS_NUM,-1,$newKillsNum);
|
myself()->_incV(TN_TOTAL_KILLS_NUM,-1,$newKillsNum);
|
||||||
$newStarNum = floor(($starNum-$starNumEd)/$param[1]) * $param[1];
|
$newStarNum = floor(($starNum-$starNumEd)/$paramEx[0]) * $paramEx[0];
|
||||||
myself()->_incV(TN_TOTAL_STAR_NUM,-1,$newStarNum);
|
myself()->_incV(TN_TOTAL_STAR_NUM,-1,$newStarNum);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ComputingPower::CRYSTAL2 : {
|
case ComputingPower::CRYSTAL2 : {
|
||||||
myself()->_incV(TN_TOTAL_DIAMOND_CONSUME,-1,$crystalNum * $param[0] * \services\HashRateService::EXCHANGE_RATE);
|
myself()->_incV(TN_TOTAL_DIAMOND_CONSUME,-1,$crystalNum / $paramEd[1] * $paramEd[0] * \services\HashRateService::EXCHANGE_RATE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ComputingPower::CRYSTAL3 : {
|
case ComputingPower::CRYSTAL3 : {
|
||||||
myself()->_incV(TN_TOTAL_CEG_CONSUME,-1,$crystalNum * $param[0] * \services\HashRateService::EXCHANGE_RATE);
|
myself()->_incV(TN_TOTAL_CEG_CONSUME,-1,$crystalNum / $paramEd[1] * $paramEd[0] * \services\HashRateService::EXCHANGE_RATE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,9 @@ require_once('models/Fragment.php');
|
|||||||
require_once('models/Season.php');
|
require_once('models/Season.php');
|
||||||
require_once('models/SignLog.php');
|
require_once('models/SignLog.php');
|
||||||
require_once('models/RankingSetRecord.php');
|
require_once('models/RankingSetRecord.php');
|
||||||
|
require_once('models/Staking.php');
|
||||||
|
require_once('models/SeasonRanking.php');
|
||||||
|
require_once('models/RewardsCec.php');
|
||||||
|
|
||||||
use models\SignLog;
|
use models\SignLog;
|
||||||
use phpcommon\SqlHelper;
|
use phpcommon\SqlHelper;
|
||||||
@ -16,6 +19,9 @@ use models\Mission;
|
|||||||
use models\Fragment;
|
use models\Fragment;
|
||||||
use models\Season;
|
use models\Season;
|
||||||
use models\RankingSetRecord;
|
use models\RankingSetRecord;
|
||||||
|
use models\Staking;
|
||||||
|
use models\SeasonRanking;
|
||||||
|
use models\RewardsCec;
|
||||||
class OtherController extends BaseAuthedController {
|
class OtherController extends BaseAuthedController {
|
||||||
const MISSION = 1;
|
const MISSION = 1;
|
||||||
const PIECE = 2;
|
const PIECE = 2;
|
||||||
@ -113,4 +119,49 @@ class OtherController extends BaseAuthedController {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getCecRewardHistory(){
|
||||||
|
$historyList = array();
|
||||||
|
$totalCecVal = 0;
|
||||||
|
SeasonRanking::getSeasonList(function ($row) use (&$historyList,&$totalCecVal) {
|
||||||
|
if ($row && $row['ranking_point'] > 0){
|
||||||
|
$totalCecVal += ($row['ranking_point'] * 0.15);
|
||||||
|
array_push($historyList,array(
|
||||||
|
'type' => 1,
|
||||||
|
'cecVal' => $row['ranking_point'] * 0.15,
|
||||||
|
'createtime' => $row['createtime'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
\models\RewardsCec::all(function ($row) use (&$historyList,&$totalCecVal) {
|
||||||
|
if ($row){
|
||||||
|
$totalCecVal += $row['reward_cec'];
|
||||||
|
array_push($historyList,array(
|
||||||
|
'type' => 2,
|
||||||
|
'cecVal' => $row['reward_cec'],
|
||||||
|
'createtime' => $row['createtime'],
|
||||||
|
));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$stakingDb = Staking::all(myself()->_getAddress());
|
||||||
|
foreach ($stakingDb as $row) {
|
||||||
|
if ($row['status'] == Staking::REDEEM_STATUS) {
|
||||||
|
$item = Staking::toDto($row);
|
||||||
|
$totalCecVal += $item['total_rewards'];
|
||||||
|
array_push($historyList, array(
|
||||||
|
"type" => 3,
|
||||||
|
"cecVal" => $item['total_rewards'],
|
||||||
|
"createtime" => $item['redeem_time']
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->_rspData(array(
|
||||||
|
'cec'=>$totalCecVal,
|
||||||
|
'list'=>$historyList,
|
||||||
|
));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,20 @@ use phpcommon\SqlHelper;
|
|||||||
use phpcommon;
|
use phpcommon;
|
||||||
class RewardsCec extends BaseModel
|
class RewardsCec extends BaseModel
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public static function all($cb){
|
||||||
|
SqlHelper::ormSelect(
|
||||||
|
myself()->_getSelfMysql(),
|
||||||
|
't_hash_rate_reward',
|
||||||
|
array(
|
||||||
|
'account_id' => myself()->_getAccountId(),
|
||||||
|
),
|
||||||
|
function ($row) use($cb) {
|
||||||
|
$cb($row);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getTotalCecNum(){
|
public static function getTotalCecNum(){
|
||||||
$rows = SqlHelper::ormSelect(
|
$rows = SqlHelper::ormSelect(
|
||||||
myself()->_getSelfMysql(),
|
myself()->_getSelfMysql(),
|
||||||
|
@ -43,41 +43,45 @@ class HashRateService extends BaseService
|
|||||||
'param1' => floatval($killsNumEx),
|
'param1' => floatval($killsNumEx),
|
||||||
'param2' => floatval($starNumEx),
|
'param2' => floatval($starNumEx),
|
||||||
);
|
);
|
||||||
$totalNum = max(0,floor($killsNumEx / $param[0]) +
|
$paramKill = explode(':',$param[0]);
|
||||||
floor($starNumEx / $param[1]) );
|
$paramStar = explode(':',$param[1]);
|
||||||
|
$totalNum = max(0,floor($killsNumEx / $paramKill[0]) * $paramKill[1] +
|
||||||
|
floor($starNumEx / $paramStar[0]) * $paramStar[1] );
|
||||||
$crystalDto['pending'] = intval($totalNum);
|
$crystalDto['pending'] = intval($totalNum);
|
||||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 2 : {
|
case 2 : {
|
||||||
// 游戏内消费总价值
|
// 游戏内消费总价值
|
||||||
|
$param = explode(':',$hashRateMeta['parameter']);
|
||||||
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
$consumeCost = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,0);
|
||||||
$consumeCostEd = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,-1);
|
$consumeCostEd = myself()->_getV(TN_TOTAL_DIAMOND_CONSUME,-1);
|
||||||
$consumeCostEx = $consumeCost - $consumeCostEd ;
|
$consumeCostEx = $consumeCost - $consumeCostEd ;
|
||||||
$crystalDto['total'] = array(
|
$crystalDto['total'] = array(
|
||||||
'param1' => floatval($consumeCostEx / self::EXCHANGE_RATE),
|
'param1' => floatval($consumeCostEx / self::EXCHANGE_RATE),
|
||||||
);
|
);
|
||||||
$totalNum = max(0,floor($consumeCostEx / self::EXCHANGE_RATE / $hashRateMeta['parameter']));
|
$totalNum = max(0,floor($consumeCostEx / self::EXCHANGE_RATE / $param[0]) * $param[1]);
|
||||||
$crystalDto['pending'] = intval($totalNum);
|
$crystalDto['pending'] = intval($totalNum);
|
||||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3 : {
|
case 3 : {
|
||||||
// Market交易总价值
|
// Market交易总价值
|
||||||
|
$param = explode(':',$hashRateMeta['parameter']);
|
||||||
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
$consumeCost = myself()->_getV(TN_TOTAL_CEG_CONSUME,0);
|
||||||
$consumeCostEd = myself()->_getV(TN_TOTAL_CEG_CONSUME,-1);
|
$consumeCostEd = myself()->_getV(TN_TOTAL_CEG_CONSUME,-1);
|
||||||
$consumeCostEx = $consumeCost - $consumeCostEd ;
|
$consumeCostEx = $consumeCost - $consumeCostEd ;
|
||||||
$crystalDto['total'] = array(
|
$crystalDto['total'] = array(
|
||||||
'param1' => floatval($consumeCostEx / self::EXCHANGE_RATE),
|
'param1' => floatval($consumeCostEx / self::EXCHANGE_RATE),
|
||||||
);
|
);
|
||||||
$totalNum = max(0,floor($consumeCostEx / self::EXCHANGE_RATE / $hashRateMeta['parameter']));
|
$totalNum = max(0,floor($consumeCostEx / self::EXCHANGE_RATE / $param[0]) * $param[1]);
|
||||||
$crystalDto['pending'] = intval($totalNum);
|
$crystalDto['pending'] = intval($totalNum);
|
||||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 4 : {
|
case 4 : {
|
||||||
// 质压总价值
|
// 质压总价值
|
||||||
|
$param = explode(':',$hashRateMeta['parameter']);
|
||||||
$rate = Parameter::getVal('cec_exchange_rate',10);
|
$rate = Parameter::getVal('cec_exchange_rate',10);
|
||||||
$cecVal = Staking::getStakingTotalValue();
|
$cecVal = Staking::getStakingTotalValue();
|
||||||
$crystalDto['total'] = array(
|
$crystalDto['total'] = array(
|
||||||
@ -87,7 +91,7 @@ class HashRateService extends BaseService
|
|||||||
if ($recordDb && myself()->_getNowDaySeconds() == myself()->_getDaySeconds($recordDb['createtime'])){
|
if ($recordDb && myself()->_getNowDaySeconds() == myself()->_getDaySeconds($recordDb['createtime'])){
|
||||||
$crystalDto['pending'] = 0;
|
$crystalDto['pending'] = 0;
|
||||||
}else{
|
}else{
|
||||||
$totalNum = max(0,floor($cecVal / $rate / $hashRateMeta['parameter']));
|
$totalNum = max(0,floor($cecVal / $rate / $param[0]) * $param[1]);
|
||||||
$crystalDto['pending'] = intval($totalNum);
|
$crystalDto['pending'] = intval($totalNum);
|
||||||
}
|
}
|
||||||
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
$crystalDto['state'] = $crystalDto['pending'] > 0 ? self::RECEIVED_STATE : self::NONE_STATE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user