This commit is contained in:
hujiabin 2023-11-13 17:37:13 +08:00
parent 13f3ec521b
commit 3549a07d5f
2 changed files with 208 additions and 167 deletions

View File

@ -1,167 +1,180 @@
<?php <?php
require_once('services/MissionService.php'); require_once('services/MissionService.php');
require_once('mt/RankSeason.php'); require_once('mt/RankSeason.php');
require_once('mt/HashRateCommon.php'); require_once('mt/HashRateCommon.php');
require_once('mt/ActivityRewards.php');
require_once('models/Mission.php');
require_once('models/Fragment.php'); require_once('models/Mission.php');
require_once('models/Season.php'); require_once('models/Fragment.php');
require_once('models/SignLog.php'); require_once('models/Season.php');
require_once('models/RankingSetRecord.php'); require_once('models/SignLog.php');
require_once('models/Staking.php'); require_once('models/RankingSetRecord.php');
require_once('models/SeasonRanking.php'); require_once('models/Staking.php');
require_once('models/RewardsCec.php'); require_once('models/SeasonRanking.php');
require_once('models/RewardsCec.php');
use models\SignLog;
use phpcommon\SqlHelper; use models\SignLog;
use models\Mission; use phpcommon\SqlHelper;
use models\Fragment; use models\Mission;
use models\Season; use models\Fragment;
use models\RankingSetRecord; use models\Season;
use models\Staking; use models\RankingSetRecord;
use models\SeasonRanking; use models\Staking;
use models\RewardsCec; use models\SeasonRanking;
class OtherController extends BaseAuthedController { use models\RewardsCec;
const MISSION = 1; class OtherController extends BaseAuthedController {
const PIECE = 2; const MISSION = 1;
const PIECE = 2;
public function tag()
{ public function tag()
$param = getReqVal('param', 0); {
$req = array( $param = getReqVal('param', 0);
'mission' => 0, $req = array(
'piece' => array(), 'mission' => 0,
); 'piece' => array(),
switch ($param){ );
case self::MISSION : { switch ($param){
$userInfo = $this->_safeGetOrmUserInfo(); case self::MISSION : {
// $currRankSeasonMeta = mt\RankSeason::getCurrentSeason(); $userInfo = $this->_safeGetOrmUserInfo();
// $seasonDb = Season::find($currRankSeasonMeta['id']); // $currRankSeasonMeta = mt\RankSeason::getCurrentSeason();
$missionService = new services\MissionService(); // $seasonDb = Season::find($currRankSeasonMeta['id']);
$missionService->init($userInfo, null);; $missionService = new services\MissionService();
$missionMetaList = mt\Task::getCustomTypeMetaList(1, $missionService); $missionService->init($userInfo, null);;
$missionHash = Mission::allToHash(); $missionMetaList = mt\Task::getCustomTypeMetaList(1, $missionService);
foreach ($missionMetaList as $missionMeta) { $missionHash = Mission::allToHash();
$missionDb = getXVal($missionHash, $missionMeta['id'], null); foreach ($missionMetaList as $missionMeta) {
$missionDto = $missionService->getMissionDto('', '', $missionDb, $missionMeta); $missionDb = getXVal($missionHash, $missionMeta['id'], null);
if ($missionDto['state'] == Mission::RECEIVEABLE_STATE){ $missionDto = $missionService->getMissionDto('', '', $missionDb, $missionMeta);
$req['mission'] = 1; if ($missionDto['state'] == Mission::RECEIVEABLE_STATE){
break; $req['mission'] = 1;
} break;
} }
} }
break; }
case self::PIECE : { break;
$req['piece'] = Fragment::isSatisfy(); case self::PIECE : {
} $req['piece'] = Fragment::isSatisfy();
break; }
default:{ break;
$req = array( default:{
'mission' => 0, $req = array(
'piece' => array(), 'mission' => 0,
); 'piece' => array(),
} );
} }
$this->_rspData(array( }
'data'=>$req $this->_rspData(array(
)); 'data'=>$req
} ));
}
public function getGameModuleState(){
//七日签到 public function getGameModuleState(){
$signState = 0; //七日签到
$signDb = SignLog::find(); $signState = 0;
if(($signDb['days'] == 7 && $signDb['is_receive'] == 1) || $signDb['days'] > 7){ $signDb = SignLog::find();
$signState = 1; if(($signDb['days'] == 7 && $signDb['is_receive'] == 1) || $signDb['days'] > 7){
} $signState = 1;
//排位 }
$rankState = 0; //排位
$currSeasonMeta = mt\RankSeason::getCurrentSeason(); $rankState = 0;
if($currSeasonMeta){ $currSeasonMeta = mt\RankSeason::getCurrentSeason();
$rankState = 1; if($currSeasonMeta){
$rankState = 1;
}
$countdown = 0; }
$nextCurrSeasonMeta = mt\RankSeason::getNextCurrentSeason(); $countdown = 0;
if ($nextCurrSeasonMeta){ $nextCurrSeasonMeta = mt\RankSeason::getNextCurrentSeason();
$countdown = strtotime($nextCurrSeasonMeta['start_time']) - myself()->_getNowTime(); if ($nextCurrSeasonMeta){
} $countdown = strtotime($nextCurrSeasonMeta['start_time']) - myself()->_getNowTime();
//算力 }
$hashRateState = 0; //算力
$hashRateMeta = \mt\HashRateCommon::find(1); $hashRateState = 0;
if (myself()->_getNowTime() > strtotime($hashRateMeta['start_time'])){ $hashRateMeta = \mt\HashRateCommon::find(1);
$hashRateState = 1; if (myself()->_getNowTime() > strtotime($hashRateMeta['start_time'])){
} $hashRateState = 1;
}
$data = array(
"firstTopUp" => myself()->_getV(TN_FIRST_TUPOP_STATUS,0), $data = array(
"signDayState" => $signState, "firstTopUp" => myself()->_getV(TN_FIRST_TUPOP_STATUS,0),
"rankState" => $rankState, "signDayState" => $signState,
"nextRankSeasonCountdown" => $countdown, "rankState" => $rankState,
"hashRateState" => $hashRateState, "nextRankSeasonCountdown" => $countdown,
); "hashRateState" => $hashRateState,
$this->_rspData(array( );
'data'=>$data $this->_rspData(array(
)); 'data'=>$data
} ));
}
public function getRankingState(){
$recordDb = RankingSetRecord::find(); public function getRankingState(){
$data = array( $recordDb = RankingSetRecord::find();
'state' => 0 , $data = array(
); 'state' => 0 ,
if ($recordDb){ );
$data = RankingSetRecord::toDto($recordDb);; if ($recordDb){
} $data = RankingSetRecord::toDto($recordDb);;
$this->_rspData(array( }
'data'=>$data $this->_rspData(array(
)); 'data'=>$data
} ));
}
public function getCecRewardHistory(){
$historyList = array(); public function getCecRewardHistory(){
$totalCecVal = 0; $historyList = array();
SeasonRanking::getSeasonList(function ($row) use (&$historyList,&$totalCecVal) { $totalCecVal = 0;
if ($row && $row['ranking_point'] > 0){ SeasonRanking::getSeasonList(function ($row) use (&$historyList,&$totalCecVal) {
$totalCecVal += ($row['ranking_point'] * 0.15); if ($row && $row['ranking_point'] > 0){
array_push($historyList,array( $totalCecVal += ($row['ranking_point'] * 0.15);
'type' => 1, array_push($historyList,array(
'cecVal' => $row['ranking_point'] * 0.15, 'type' => 1,
'createtime' => $row['createtime'], 'cecVal' => $row['ranking_point'] * 0.15,
)); 'createtime' => $row['createtime'],
} ));
}); }
});
\models\RewardsCec::all(function ($row) use (&$historyList,&$totalCecVal) {
if ($row){ \models\RewardsCec::all(function ($row) use (&$historyList,&$totalCecVal) {
$totalCecVal += $row['reward_cec']; if ($row){
array_push($historyList,array( $totalCecVal += $row['reward_cec'];
'type' => 2, array_push($historyList,array(
'cecVal' => $row['reward_cec'], 'type' => 2,
'createtime' => $row['createtime'], 'cecVal' => $row['reward_cec'],
)); 'createtime' => $row['createtime'],
} ));
}); }
});
$stakingDb = Staking::all(myself()->_getAddress());
foreach ($stakingDb as $row) { $stakingDb = Staking::all(myself()->_getAddress());
if ($row['status'] == Staking::REDEEM_STATUS) { foreach ($stakingDb as $row) {
$item = Staking::toDto($row); if ($row['status'] == Staking::REDEEM_STATUS) {
$totalCecVal += $item['total_rewards']; $item = Staking::toDto($row);
array_push($historyList, array( $totalCecVal += $item['total_rewards'];
"type" => 3, array_push($historyList, array(
"cecVal" => $item['total_rewards'], "type" => 3,
"createtime" => $item['redeem_time'] "cecVal" => $item['total_rewards'],
)); "createtime" => $item['redeem_time']
} ));
} }
$this->_rspData(array( }
'cec'=>$totalCecVal, $rewards = \mt\ActivityRewards::find(myself()->_getAccountId());
'list'=>$historyList, if ($rewards){
)); foreach ($rewards as $reward){
array_push($historyList, array(
"type" => -1,
} "event_name" => $reward['event_name'],
"cecVal" => $reward['cec'],
} "createtime" => $reward['time']
));
}
}
$this->_rspData(array(
'cec'=>$totalCecVal,
'list'=>$historyList,
));
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace mt;
class ActivityRewards
{
public static function find($account){
$data = array();
foreach (self::getMetaList() as $mate){
if ($mate['account_id'] == $account){
array_push($data,$mate);
}
}
return $data;
}
protected static function getMetaList()
{
if (!self::$metaList) {
self::$metaList = getMetaTable('ActivityRewards@ActivityRewards.php');
}
return self::$metaList;
}
protected static $metaList;
}