运营活动结算
This commit is contained in:
parent
12d51341f2
commit
741b4327f7
@ -36,5 +36,18 @@ class EventRanking(object):
|
|||||||
['ranking_list', _common.RankingListEx(), '排行榜数据']
|
['ranking_list', _common.RankingListEx(), '排行榜数据']
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'name': 'settlementRankingAward',
|
||||||
|
'desc': '活动结算',
|
||||||
|
'group': 'EventRanking',
|
||||||
|
'url': 'webapp/index.php?c=EventRanking&a=settlementRankingAward',
|
||||||
|
'params': [
|
||||||
|
_common.ReqHead(),
|
||||||
|
],
|
||||||
|
'response': [
|
||||||
|
_common.RspHead(),
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -175,16 +175,16 @@ class EventRankingController extends BaseAuthedController
|
|||||||
'rows' => $rankingList,
|
'rows' => $rankingList,
|
||||||
'my_ranked' => $this->myRanked
|
'my_ranked' => $this->myRanked
|
||||||
);
|
);
|
||||||
error_log(json_encode(
|
// error_log(json_encode(
|
||||||
array(
|
// array(
|
||||||
'account_id'=>$userInfo['account_id'],
|
// 'account_id'=>$userInfo['account_id'],
|
||||||
'guild_id'=>$userInfo['guild_id'],
|
// 'guild_id'=>$userInfo['guild_id'],
|
||||||
'type' => $type,
|
// 'type' => $type,
|
||||||
'pages' => $pages,
|
// 'pages' => $pages,
|
||||||
'rows' => $rankingList,
|
// 'rows' => $rankingList,
|
||||||
'my_ranked' => $this->myRanked
|
// 'my_ranked' => $this->myRanked
|
||||||
)
|
// )
|
||||||
));
|
// ));
|
||||||
return $rankingData;
|
return $rankingData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,12 +252,7 @@ class EventRankingController extends BaseAuthedController
|
|||||||
|
|
||||||
public function settlementRankingAward(){
|
public function settlementRankingAward(){
|
||||||
$currentRankingMeta = mt\EventRanking::getCurrentRanking();
|
$currentRankingMeta = mt\EventRanking::getCurrentRanking();
|
||||||
$userInfo = $this->_getOrmUserInfo();
|
$awardList = array();
|
||||||
$myAward = array(
|
|
||||||
'ranked' => -1,
|
|
||||||
'rewardNum' => 0,
|
|
||||||
'extraRewardNum' => 0
|
|
||||||
);
|
|
||||||
if ($currentRankingMeta){
|
if ($currentRankingMeta){
|
||||||
$lastRankingMeta = mt\EventRanking::find($currentRankingMeta['id']-1);
|
$lastRankingMeta = mt\EventRanking::find($currentRankingMeta['id']-1);
|
||||||
if ($lastRankingMeta){
|
if ($lastRankingMeta){
|
||||||
@ -273,25 +268,26 @@ class EventRankingController extends BaseAuthedController
|
|||||||
':type' => $lastRankingMeta['themeType']
|
':type' => $lastRankingMeta['themeType']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$ranked = 0;
|
$ranked = 0;
|
||||||
foreach ($rows as $row){
|
foreach ($rows as $row){
|
||||||
$ranked+=1;
|
$ranked+=1;
|
||||||
if ($row['account_id'] == myself()->_getAccountId()) {
|
array_push($awardList,array(
|
||||||
$myAward['ranked'] = $ranked;
|
'ranked'=>$ranked,
|
||||||
$myAward['rewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'];
|
'account_id'=>$row['account_id'],
|
||||||
$myAward['extraRewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'];
|
'rewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'],
|
||||||
|
'extraRewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'],
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
if ($awardList){
|
||||||
if ($myAward['ranked'] > 0){
|
|
||||||
//记录此活动的CEG奖励
|
//记录此活动的CEG奖励
|
||||||
$cegNum = $myAward['rewardNum']+$myAward['extraRewardNum'];
|
foreach ($awardList as $value){
|
||||||
EventRanking::setV($lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
$cegNum = $value['rewardNum']+$value['extraRewardNum'];
|
||||||
|
EventRanking::setV($value['account_id'],$lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
||||||
}
|
}
|
||||||
error_log(json_encode(array(
|
|
||||||
'myAward' => $myAward,
|
}
|
||||||
'ranking' => 'KillRanking',
|
error_log('********** KILL RANKING SETTLEMENT SUCCESS ***********');
|
||||||
'number'=>$myAward['rewardNum']+$myAward['extraRewardNum']
|
|
||||||
)));
|
|
||||||
$this->_rspOk();
|
$this->_rspOk();
|
||||||
};break;
|
};break;
|
||||||
case \services\RankActivityService::WINS_TYPE : {
|
case \services\RankActivityService::WINS_TYPE : {
|
||||||
@ -305,25 +301,25 @@ class EventRankingController extends BaseAuthedController
|
|||||||
':type' => $lastRankingMeta['themeType']
|
':type' => $lastRankingMeta['themeType']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$ranked = 0;
|
$ranked = 0;
|
||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
$ranked += 1;
|
$ranked += 1;
|
||||||
if ($row['account_id'] == myself()->_getAccountId()) {
|
array_push($awardList,array(
|
||||||
$myAward['ranked'] = $ranked;
|
'ranked'=>$ranked,
|
||||||
$myAward['rewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'];
|
'account_id'=>$row['account_id'],
|
||||||
$myAward['extraRewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'];
|
'rewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'],
|
||||||
|
'extraRewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'],
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
if ($awardList){
|
||||||
if ($myAward['ranked'] > 0){
|
|
||||||
//记录此活动的CEG奖励
|
//记录此活动的CEG奖励
|
||||||
$cegNum = $myAward['rewardNum']+$myAward['extraRewardNum'];
|
foreach ($awardList as $value){
|
||||||
EventRanking::setV($lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
$cegNum = $value['rewardNum']+$value['extraRewardNum'];
|
||||||
|
EventRanking::setV($value['account_id'],$lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
||||||
}
|
}
|
||||||
error_log(json_encode(array(
|
}
|
||||||
'myAward' => $myAward,
|
error_log('********** WIN RANKING SETTLEMENT SUCCESS ***********');
|
||||||
'ranking' => 'WinRanking',
|
|
||||||
'number'=>$myAward['rewardNum']+$myAward['extraRewardNum']
|
|
||||||
)));
|
|
||||||
$this->_rspOk();
|
$this->_rspOk();
|
||||||
};break;
|
};break;
|
||||||
case \services\RankActivityService::BATTLES_TYPE : {
|
case \services\RankActivityService::BATTLES_TYPE : {
|
||||||
@ -340,22 +336,21 @@ class EventRankingController extends BaseAuthedController
|
|||||||
$ranked = 0;
|
$ranked = 0;
|
||||||
foreach ($rows as $row){
|
foreach ($rows as $row){
|
||||||
$ranked+=1;
|
$ranked+=1;
|
||||||
if ($row['account_id'] == myself()->_getAccountId()) {
|
array_push($awardList,array(
|
||||||
$myAward['ranked'] = $ranked;
|
'ranked'=>$ranked,
|
||||||
$myAward['rewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'];
|
'account_id'=>$row['account_id'],
|
||||||
$myAward['extraRewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'];
|
'rewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'],
|
||||||
|
'extraRewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'],
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
if ($awardList){
|
||||||
if ($myAward['ranked'] > 0){
|
|
||||||
//记录此活动的CEG奖励
|
//记录此活动的CEG奖励
|
||||||
$cegNum = $myAward['rewardNum']+$myAward['extraRewardNum'];
|
foreach ($awardList as $value){
|
||||||
EventRanking::setV($lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
$cegNum = $value['rewardNum']+$value['extraRewardNum'];
|
||||||
|
EventRanking::setV($value['account_id'],$lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
||||||
}
|
}
|
||||||
error_log(json_encode(array(
|
}
|
||||||
'myAward' => $myAward,
|
error_log('********** BATTLE RANKING SETTLEMENT SUCCESS ***********');
|
||||||
'ranking' => 'BattleRanking',
|
|
||||||
'number'=>$myAward['rewardNum']+$myAward['extraRewardNum']
|
|
||||||
)));
|
|
||||||
$this->_rspOk();
|
$this->_rspOk();
|
||||||
};break;
|
};break;
|
||||||
case \services\RankActivityService::GUILD_TYPE : {
|
case \services\RankActivityService::GUILD_TYPE : {
|
||||||
@ -371,29 +366,33 @@ class EventRankingController extends BaseAuthedController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
$ranked = 0;
|
$ranked = 0;
|
||||||
$guildAward = array(
|
|
||||||
'ranked' => -1,
|
|
||||||
'rewardNum' => 0,
|
|
||||||
'extraRewardNum' => 0
|
|
||||||
);
|
|
||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
$ranked += 1;
|
$ranked += 1;
|
||||||
if($userInfo['guild_id'] && $userInfo['guild_id'] == $row['guild_id']){
|
array_push($awardList,array(
|
||||||
$myAward['ranked'] = $ranked;
|
'ranked'=>$ranked,
|
||||||
$guildAward['ranked'] = $ranked;
|
'guild_id'=>$row['guild_id'],
|
||||||
$guildAward['rewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'];
|
'rewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['rewardNum'],
|
||||||
$guildAward['extraRewardNum'] = $this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'];
|
'extraRewardNum'=>$this->celAward($row['wave'],$row['type'],$ranked)['extraRewardNum'],
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
if ($awardList) {
|
||||||
if ($myAward['ranked'] > 0){
|
|
||||||
//记录此活动的CEG奖励
|
//记录此活动的CEG奖励
|
||||||
$myValue = myself()->_getSelfMysql()->execQuery(
|
foreach ($awardList as $value) {
|
||||||
|
$usersDb = User::getListByGuildId($value['guild_id']);
|
||||||
|
$guildDb = Guild::find($value['guild_id']);
|
||||||
|
if (!$guildDb) {
|
||||||
|
error_log('The Guild Does Not Exist : ' . $value['guild_id']);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ($usersDb) {
|
||||||
|
foreach ($usersDb as $user) {
|
||||||
|
$thisValue = myself()->_getSelfMysql()->execQuery(
|
||||||
'SELECT * FROM t_rank_activity ' .
|
'SELECT * FROM t_rank_activity ' .
|
||||||
'WHERE wave=:wave AND type=:type AND account_id=:account_id',
|
'WHERE wave=:wave AND type=:type AND account_id=:account_id',
|
||||||
array(
|
array(
|
||||||
':wave' => $lastRankingMeta['wave'],
|
':wave' => $lastRankingMeta['wave'],
|
||||||
':type' => $lastRankingMeta['themeType'],
|
':type' => $lastRankingMeta['themeType'],
|
||||||
':account_id' => myself()->_getAccountId()
|
':account_id' => $user['account_id']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$sumValue = myself()->_getSelfMysql()->execQuery(
|
$sumValue = myself()->_getSelfMysql()->execQuery(
|
||||||
@ -403,24 +402,33 @@ class EventRankingController extends BaseAuthedController
|
|||||||
array(
|
array(
|
||||||
':wave' => $lastRankingMeta['wave'],
|
':wave' => $lastRankingMeta['wave'],
|
||||||
':type' => $lastRankingMeta['themeType'],
|
':type' => $lastRankingMeta['themeType'],
|
||||||
':guild_id'=>$userInfo['guild_id']
|
':guild_id' => $value['guild_id']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
if ($myValue && $sumValue ){
|
if (!$thisValue || !$sumValue) {
|
||||||
$myAward['rewardNum'] = $myValue[0]['value']/$sumValue[0]['value']*$guildAward['rewardNum'];
|
error_log('该用户无贡献 : ' . $user['account_id'] . ' | 工会总收益有问题 : ' . $value['guild_id'] );
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
$guildDb = Guild::find($userInfo['guild_id']);
|
$rewardNum = $thisValue[0]['value'] / $sumValue[0]['value'] * $value['rewardNum'];
|
||||||
if ($guildDb && $guildDb['owner_id'] == myself()->_getAccountId() ){
|
$extraRewardNum = $guildDb['owner_id'] == $user['account_id'] ? $value['extraRewardNum'] : 0;
|
||||||
$myAward['extraRewardNum'] = $guildAward['extraRewardNum'];
|
$cegNum = $rewardNum + $extraRewardNum;
|
||||||
|
EventRanking::setV($user['account_id'], $lastRankingMeta['wave'], $lastRankingMeta['themeType'], $cegNum);
|
||||||
|
error_log(json_encode(
|
||||||
|
array(
|
||||||
|
'account_id' => $user['account_id'],
|
||||||
|
'guild_id' => $value['guild_id'],
|
||||||
|
'value' => $thisValue[0]['value'],
|
||||||
|
'sum_value' => $sumValue[0]['value'],
|
||||||
|
'rewardNum' => $rewardNum,
|
||||||
|
'extraRewardNum' => $extraRewardNum,
|
||||||
|
'CEG' => $cegNum
|
||||||
|
)
|
||||||
|
));
|
||||||
}
|
}
|
||||||
$cegNum = $myAward['rewardNum']+$myAward['extraRewardNum'];
|
|
||||||
EventRanking::setV($lastRankingMeta['wave'],$lastRankingMeta['themeType'],$cegNum);
|
|
||||||
}
|
}
|
||||||
error_log(json_encode(array(
|
}
|
||||||
'myAward' => $myAward,
|
}
|
||||||
'ranking' => 'BattleRanking',
|
error_log('********** GUILD RANKING SETTLEMENT SUCCESS ***********');
|
||||||
'number'=>$myAward['rewardNum']+$myAward['extraRewardNum']
|
|
||||||
)));
|
|
||||||
$this->_rspOk();
|
$this->_rspOk();
|
||||||
};break;
|
};break;
|
||||||
default : {
|
default : {
|
||||||
|
@ -52,10 +52,10 @@ class EventRanking extends BaseModel
|
|||||||
return $valData['value'];
|
return $valData['value'];
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function setV($x, $y, $defVal)
|
public static function setV($accountId,$x, $y, $defVal)
|
||||||
{
|
{
|
||||||
$key = self::calcKey($x, $y);
|
$key = self::calcKey($x, $y);
|
||||||
self::internalSetV($x, $y, $defVal);
|
self::internalSetV($accountId,$x, $y, $defVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function calcKey($x, $y)
|
public static function calcKey($x, $y)
|
||||||
@ -66,7 +66,7 @@ class EventRanking extends BaseModel
|
|||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function internalSetV($x, $y, $val)
|
private static function internalSetV($accountId,$x, $y, $val)
|
||||||
{
|
{
|
||||||
if (!is_int($x) || !is_int($y)) {
|
if (!is_int($x) || !is_int($y)) {
|
||||||
die('internalSet type error');
|
die('internalSet type error');
|
||||||
@ -85,7 +85,7 @@ class EventRanking extends BaseModel
|
|||||||
(myself()->_getSelfMysql(),
|
(myself()->_getSelfMysql(),
|
||||||
't_event_ranking',
|
't_event_ranking',
|
||||||
array(
|
array(
|
||||||
'account_id' => myself()->_getAccountId(),
|
'account_id' => $accountId,
|
||||||
'wave' => $x,
|
'wave' => $x,
|
||||||
'type' => $y
|
'type' => $y
|
||||||
),
|
),
|
||||||
@ -94,7 +94,7 @@ class EventRanking extends BaseModel
|
|||||||
'modifytime' => myself()->_getNowTime()
|
'modifytime' => myself()->_getNowTime()
|
||||||
),
|
),
|
||||||
array(
|
array(
|
||||||
'account_id' => myself()->_getAccountId(),
|
'account_id' => $accountId,
|
||||||
'wave' => $x,
|
'wave' => $x,
|
||||||
'type' => $y,
|
'type' => $y,
|
||||||
'value' => $val,
|
'value' => $val,
|
||||||
|
@ -26,7 +26,7 @@ class Guild extends BaseModel
|
|||||||
'guild_id' => $row['guild_id'],
|
'guild_id' => $row['guild_id'],
|
||||||
'guild_name' => $row['guild_name'],
|
'guild_name' => $row['guild_name'],
|
||||||
'guild_badge' => $row['guild_badge'],
|
'guild_badge' => $row['guild_badge'],
|
||||||
'owner_id' => $row['guild_badge'],
|
'owner_id' => $row['owner_id'],
|
||||||
'owner_name' => $row['owner_name'],
|
'owner_name' => $row['owner_name'],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,18 @@ class User extends BaseModel {
|
|||||||
return $row ? $row : null;
|
return $row ? $row : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getListByGuildId($guildId)
|
||||||
|
{
|
||||||
|
$rows = SqlHelper::ormSelect
|
||||||
|
(myself()->_getSelfMysql(),
|
||||||
|
't_user',
|
||||||
|
array(
|
||||||
|
'guild_id' => $guildId
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return $rows ? $rows : null;
|
||||||
|
}
|
||||||
|
|
||||||
public static function show($row)
|
public static function show($row)
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user