|
@@ -639,5 +639,44 @@ class Guild extends Api
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * 家族贡献榜排行
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function getRankList()
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $id = $this->request->param('guild_id',0);
|
|
|
+ $guildMemberWhere['guild_id'] = $id;
|
|
|
+ $guildMemberWhere['status'] = 1;
|
|
|
+ $guildMember = model('GuildMember')->field('id,user_id')->where($guildMemberWhere)->select();
|
|
|
+ $list = [];
|
|
|
+ if (!empty($guildMember)) {
|
|
|
+ $userIds = array_column($guildMember,'user_id');
|
|
|
+ $where = [];
|
|
|
+ $where['a.user_to_id'] = ['in', $userIds];
|
|
|
+ $list = model('GiftUserParty')->alias("a")
|
|
|
+ ->field('sum(a.value) as total_price,a.user_id,u.avatar,u.nickname')
|
|
|
+ ->where($where)
|
|
|
+ ->join('hx_user u','u.id = a.user_id')
|
|
|
+ ->group('a.user_to_id')
|
|
|
+ ->order('total_price',"desc")
|
|
|
+ ->limit(100)
|
|
|
+ ->select();
|
|
|
+ if (!empty($list)) {
|
|
|
+ foreach ($list as $key => &$value) {
|
|
|
+ $value['total_price_text'] = $value['total_price'];
|
|
|
+ if ($value['total_price'] >= 10000) {
|
|
|
+ $value['total_price_text'] = bcdiv($value['total_price'],10000,1).'w';
|
|
|
+ }
|
|
|
+ unset($value['total_price']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ $this->success(__('Operation completed'),$list);
|
|
|
+ } catch (Exception $e) {
|
|
|
+ $this->error($e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|