From ee31a8c76a74b3ea9c8aba65598122bfd7914e2b Mon Sep 17 00:00:00 2001 From: hujiabin Date: Wed, 16 Nov 2022 14:51:54 +0800 Subject: [PATCH] 1 --- doc/EventRanking.py | 20 ++++++++++-- doc/_common.py | 9 ++++++ webapp/controller/BaseController.class.php | 17 ++++++++++ .../EventRankingController.class.php | 28 +++++++++++++--- webapp/models/Guild.php | 32 +++++++++++++++++++ 5 files changed, 99 insertions(+), 7 deletions(-) create mode 100644 webapp/models/Guild.php diff --git a/doc/EventRanking.py b/doc/EventRanking.py index 0939c34f..a351ad46 100644 --- a/doc/EventRanking.py +++ b/doc/EventRanking.py @@ -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(), '排行榜数据'] + ] + }, ] diff --git a/doc/_common.py b/doc/_common.py index 3ee6be34..0ec49260 100644 --- a/doc/_common.py +++ b/doc/_common.py @@ -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, '额外奖励'], diff --git a/webapp/controller/BaseController.class.php b/webapp/controller/BaseController.class.php index e32c6748..afedba20 100644 --- a/webapp/controller/BaseController.class.php +++ b/webapp/controller/BaseController.class.php @@ -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)); diff --git a/webapp/controller/EventRankingController.class.php b/webapp/controller/EventRankingController.class.php index 93438e41..0614b7e8 100644 --- a/webapp/controller/EventRankingController.class.php +++ b/webapp/controller/EventRankingController.class.php @@ -1,11 +1,13 @@ 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'], diff --git a/webapp/models/Guild.php b/webapp/models/Guild.php new file mode 100644 index 00000000..ad80ad46 --- /dev/null +++ b/webapp/models/Guild.php @@ -0,0 +1,32 @@ +_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'] + ); + } + +} \ No newline at end of file