Selaa lähdekoodia

家族贡献榜/详情调整

zhangxiaobin 1 vuosi sitten
vanhempi
commit
e5c3b64508
1 muutettua tiedostoa jossa 30 lisäystä ja 6 poistoa
  1. 30 6
      application/api/controller/Guild.php

+ 30 - 6
application/api/controller/Guild.php

@@ -102,7 +102,7 @@ class Guild extends Api
         $guildInfo = \app\common\model\Guild::field("id,image,name,g_id,user_id,party_id,desc,notice,status")->where(["id"=>$guild_id])->find();
         // 获取公会成员信息
         $guildMemberInfo = \app\common\model\GuildMember::alias("a")
-            ->field("a.user_id,a.role,u.nickname,u.avatar")
+            ->field("a.id,a.user_id,a.role,u.nickname,u.avatar")
             ->join("hx_user u","a.user_id = u.id")
             ->where(["a.guild_id"=>$guild_id])->limit(5)->order("a.role","desc")->select();
         if(!$guildInfo || !$guildMemberInfo) $this->error("公会信息获取失败!");
@@ -590,7 +590,7 @@ class Guild extends Api
             ->limit($pageStart,$pageNum)
             ->order("a.role","desc")
             ->select();
-        $role = ["","管理","会长"];
+        $role = [0=>'成员',1=>'副族长',2=>'族长'];
         if($guildMemberList) {
             foreach($guildMemberList as $k => &$v) {
                 $v["role_text"] = $role[$v["role"]];
@@ -765,22 +765,46 @@ class Guild extends Api
             $id = $this->request->param('guild_id',0);
             $guildMemberWhere['guild_id'] = $id;
             $guildMemberWhere['status'] = 1;
-            $guildMember = model('GuildMember')->field('id,user_id')->where($guildMemberWhere)->select();
+            $guildMember = model('GuildMember')->field('id,user_id,role')->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')
+                    ->field('sum(a.value) as total_price,a.user_to_id,u.avatar,u.nickname,u.is_online,u.onlinetime')
                     ->where($where)
-                    ->join('hx_user u','u.id = a.user_id')
+                    ->join('hx_user u','u.id = a.user_to_id')
                     ->group('a.user_to_id')
                     ->order('total_price',"desc")
-                    ->limit(100)
+                    ->autopage()
                     ->select();
                 if (!empty($list)) {
+                    $role = [0=>'成员',1=>'副族长',2=>'族长'];
+                    $guildMemberData = [];
+                    foreach ($guildMember as $mKey => $mVal) {
+                        $guildMemberData[$mVal['user_id']] = [
+                            'id' => $mVal['id'],
+                            'role' => $mVal['role'],
+                            'role_text' => isset($role[$mVal['role']]) ? $role[$mVal['role']] : '',
+                        ];
+                    }
                     foreach ($list as $key => &$value) {
+                        $member = isset($guildMemberData[$value['user_to_id']]) ? $guildMemberData[$value['user_to_id']] : [];
+                        $value['member_id'] = isset($member['id']) ? $member['id'] : 0;
+                        $value['role'] = isset($member['role']) ? $member['role'] : 0;
+                        $value['role_text'] = isset($member['role_text']) ? $member['role_text'] : '';
+                        if ($value['is_online'] == 1) {
+                            $onlineText = '在线';
+                        } else {
+                            $onlineTime = get_last_time($value['onlinetime']);
+                            $onlineText = $onlineTime.'在线';
+                            $limitTime = time() - (3600 * 6);
+                            if ($value['onlinetime'] < $limitTime) {
+                                $onlineText = '离线';
+                            }
+                        }
+                        $value['online_text'] = $onlineText;
                         $value['total_price_text'] = $value['total_price'];
                         if ($value['total_price'] >= 10000) {
                             $value['total_price_text'] = bcdiv($value['total_price'],10000,1).'w';