64 lines
2.3 KiB
PHP
64 lines
2.3 KiB
PHP
<?php
|
|
use phpcommon\SqlHelper;
|
|
|
|
require_once('services/ServerSwitchService.php');
|
|
|
|
require_once('mt/Parameter.php');
|
|
require_once('mt/CircuitTime.php');
|
|
require_once('mt/CircuitReward.php');
|
|
|
|
require_once('models/CircuitReward.php');
|
|
require_once('models/Circuit.php');
|
|
require_once('models/User.php');
|
|
|
|
use services\ServerSwitchService;
|
|
use models\CircuitReward;
|
|
use models\Circuit;
|
|
use models\User;
|
|
class OutAppCircuitController extends BaseController {
|
|
|
|
|
|
public function circuitSettlement(){
|
|
$currentStageMeta = \mt\CircuitTime::getCurrentStage();
|
|
$prevStageMeta = \mt\CircuitTime::getPrevStage();
|
|
|
|
if (!$currentStageMeta && $prevStageMeta && !CircuitReward::_verifySettlement($prevStageMeta['circuit_season'],$prevStageMeta['circuit_phase'])){
|
|
$rows = Circuit::getRankingList($prevStageMeta['circuit_season']);
|
|
if (count($rows) > 0){
|
|
$totalWeight = 0;
|
|
$rate = \mt\Parameter::getVal('circuit_reward_rate','');
|
|
$count = floor(count($rows) * $rate) ;
|
|
foreach ($rows as $k=>$value){
|
|
$ranking = $k+1;
|
|
$rewardWeight = \mt\CircuitReward::getRewardWeight($ranking);
|
|
if ($ranking <= $count){
|
|
$totalWeight += $rewardWeight;
|
|
}
|
|
}
|
|
$cecPool = $prevStageMeta['cec_pool'];
|
|
foreach ($rows as $k=>$value){
|
|
$cec = 0;
|
|
$ranking = $k+1;
|
|
$rewardWeight = \mt\CircuitReward::getRewardWeight($ranking);
|
|
if ($ranking <= $count){
|
|
$cec = ($rewardWeight / $totalWeight) * $cecPool;
|
|
}
|
|
$user = User::find($value['account_id']);
|
|
CircuitReward::add(
|
|
$user['account_id'],
|
|
$user['address'],
|
|
$prevStageMeta['circuit_season'],
|
|
$prevStageMeta['circuit_phase'],
|
|
$ranking,
|
|
$cec
|
|
);
|
|
}
|
|
}
|
|
$this->_rspOk();
|
|
return;
|
|
}
|
|
$this->_rspErr(1,'未满足结算条件');
|
|
}
|
|
|
|
}
|