This commit is contained in:
hujiabin 2022-11-16 14:51:54 +08:00
parent bb81294415
commit ee31a8c76a
5 changed files with 99 additions and 7 deletions

View File

@ -9,8 +9,8 @@ class EventRanking(object):
{
'name': 'eventRankingList',
'desc': '排行活动列表',
'group': 'History',
'url': 'webapp/index.php?c=Battle&a=eventRankingList',
'group': 'EventRanking',
'url': 'webapp/index.php?c=EventRanking&a=eventRankingList',
'params': [
_common.ReqHead(),
],
@ -19,5 +19,21 @@ class EventRanking(object):
['!list', [_common.EventRankingList()], '活动列表'],
]
},
{
'name': 'activityRankingList',
'desc': '活动排行榜',
'group': 'EventRanking',
'url': 'webapp/index.php?c=EventRanking&a=activityRankingList',
'params': [
_common.ReqHead(),
['wave', 0, '活动轮数'],
['type', 0, '排行榜类型 1:生存榜 2:击杀榜 3:英雄升级 4:英雄升阶'],
['page', 0, '页码(可选)'],
],
'response': [
_common.RspHead(),
['ranking_list', _common.RankingListEx(), '排行榜数据']
]
},
]

View File

@ -579,6 +579,14 @@ class RankingList(object):
['!ranking_list', [RankingItem()], '排行榜'],
['my_ranked', RankingItem(), '我的排名(如果ranked<1则表示自己未上榜)'],
]
class GuildEx(object):
def __init__(self):
self.fields = [
['guild_id', 0, '工会id'],
['guild_name', '', '工会名称'],
['guild_badge', '', '工会头像']
]
class RankingItemEx(object):
@ -586,6 +594,7 @@ class RankingItemEx(object):
self.fields = [
['ranked', 0, '排名'],
['user', UserSimple(), '用户信息'],
['guild', GuildEx(), '工会信息'],
['value', 0, '存活时间 击杀数'],
['rewardNum', 0, '奖励'],
['extraRewardNum', 0, '额外奖励'],

View File

@ -124,6 +124,23 @@ class BaseController {
return $this->marketDbConn;
}
public function _getRelationDbMysql()
{
if ($this->marketDbConn) {
return $this->marketDbConn;
}
$mysql_conf = getMarketMysqlConfig(crc32(''));
$this->marketDbConn = new phpcommon\Mysql(array(
'host' => $mysql_conf['host'],
'port' => $mysql_conf['port'],
'user' => $mysql_conf['user'],
'passwd' => $mysql_conf['passwd'],
'dbname' => getXVal($mysql_conf, 'dbname', 'relationdb1')
));
return $this->marketDbConn;
}
public function _getRedis($data)
{
$redis_conf = getRedisConfig(crc32($data));

View File

@ -1,11 +1,13 @@
<?php
require_once('models/User.php');
require_once('models/Guild.php');
require_once('mt/EventRanking.php');
require_once('services/RankActivityService.php');
use models\User;
use models\Guild;
class EventRankingController extends BaseAuthedController
{
public function eventRankingList(){
@ -161,25 +163,41 @@ class EventRankingController extends BaseAuthedController
)
);
$ranked = 0;
// print_r($userInfo);die;
foreach ($rows as $row) {
$ranked += 1;
$guildDb = Guild::find($row['guild_id']);
// $guildDb = null;
if (!$userInfo['guild_id']){
$this->myRanked = array();
}else if($userInfo['guild_id'] && $userInfo['guild_id'] == $row['guild_id']){
$this->myRanked['ranked'] = $ranked;
$this->myRanked['user'] = $row['guild_id'];
$this->myRanked['user'] = array();
$this->myRanked['guild'] = Guild::toSimple($guildDb);
$this->myRanked['value'] = $row['value'];
$this->myRanked['rewardNum'] = $this->celAward($wave,$type,$ranked)['rewardNum'];
$this->myRanked['extraRewardNum'] = $this->celAward($wave,$type,$ranked)['extraRewardNum'];
$this->myRanked['modifytime'] = $row['modifytime'];
}else{
// $this->myRanked['value'] = $row['value'];
// $this->myRanked['user'] = $row['guild_id'];
$guildDb = Guild::find($userInfo['guild_id']);
$value = myself()->_getSelfMysql()->execQuery(
'SELECT guild_id,SUM(value) AS value FROM t_rank_activity ' .
'WHERE wave=:wave AND type=:type AND guild_id=:guild_id ' .
'GROUP BY guild_id limit 1',
array(
':wave' => $wave,
':type' => $type,
':guild_id'=>$userInfo['guild_id']
)
);
$this->myRanked['user'] = array();
$this->myRanked['guild'] =Guild::toSimple($guildDb);
$this->myRanked['value'] =$value[0]['value'];
}
array_push($rankingList, array(
'ranked' => $ranked,
'user' => $row['guild_id'],
'user' => array(),
'guild'=>Guild::toSimple($guildDb),
'value' => $row['value'],
'rewardNum' => $this->celAward($wave,$type,$ranked)['rewardNum'],
'extraRewardNum' => $this->celAward($wave,$type,$ranked)['extraRewardNum'],

32
webapp/models/Guild.php Normal file
View File

@ -0,0 +1,32 @@
<?php
namespace models;
use mt;
use phpcommon\SqlHelper;
class Guild extends BaseModel
{
public static function find($guildId){
$row = SqlHelper::ormSelectOne(
myself()->_getRelationDbMysql(),
'guild',
array(
'guild_id' => $guildId,
)
);
return $row;
}
public static function toSimple($row){
if (! $row){
return array();
}
return array(
'guild_id' => $row['guild_id'],
'guild_name' => $row['guild_name'],
'guild_badge' => $row['guild_badge']
);
}
}