ソースを参照

公会长看到的贡献榜和魅力榜

lizhen_gitee 1 年間 前
コミット
e92df6946d
1 ファイル変更110 行追加6 行削除
  1. 110 6
      application/api/controller/Guild.php

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

@@ -842,24 +842,46 @@ class Guild extends Api
     }
 
     /**
-     * 公会贡献榜排行
-     * @return void
+     * 公会魅力榜排行
      */
     public function getRankList()
     {
-        try {
+        //今日
+        $todaystatime = strtotime(date('Y-m-d'));
+        $todayendtime = $todaystatime + 86399;
+        //昨日
+        $yestodaystatime = $todaystatime - 86400;
+        $yestodayendtime = $todaystatime - 1;
+        //近七日
+        $servenday_statime = $todaystatime - 86400*6;
+        $servenday_endtime = $todayendtime;
+
+        //时间条件
+        $where_time = [];
+        $timetype = input('timetype',1);
+        $where_time['a.createtime'] = ['BETWEEN',[$todaystatime,$todayendtime]];
+        if($timetype == 2){
+            $where_time['a.createtime'] = ['BETWEEN',[$yestodaystatime,$yestodayendtime]];
+        }
+        if($timetype == 3){
+            $where_time['a.createtime'] = ['BETWEEN',[$servenday_statime,$servenday_endtime]];
+        }
+
             $id = input('guild_id',0);
+
             $guildMemberWhere['guild_id'] = $id;
-//            $guildMemberWhere['status'] = 1;
             $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];
+                $where['a.is_baobi'] = 1;
                 $list = model('GiftUserParty')->alias("a")
                     ->field('sum(a.value) as total_price,a.user_to_id,u.avatar,u.nickname,u.is_online,u.onlinetime')
                     ->where($where)
+                    ->where($where_time)
                     ->join('user u','u.id = a.user_to_id')
                     ->group('a.user_to_id')
                     ->order('total_price',"desc")
@@ -901,9 +923,91 @@ class Guild extends Api
             }
 
             $this->success(__('Operation completed'),$list);
-        } catch (Exception $e) {
-            $this->error($e->getMessage());
+
+    }
+    /**
+     * 公会财富榜
+     */
+    public function getwealthList()
+    {
+        //今日
+        $todaystatime = strtotime(date('Y-m-d'));
+        $todayendtime = $todaystatime + 86399;
+        //昨日
+        $yestodaystatime = $todaystatime - 86400;
+        $yestodayendtime = $todaystatime - 1;
+        //近七日
+        $servenday_statime = $todaystatime - 86400*6;
+        $servenday_endtime = $todayendtime;
+
+        //时间条件
+        $where_time = [];
+        $timetype = input('timetype',1);
+        $where_time['a.createtime'] = ['BETWEEN',[$todaystatime,$todayendtime]];
+        if($timetype == 2){
+            $where_time['a.createtime'] = ['BETWEEN',[$yestodaystatime,$yestodayendtime]];
+        }
+        if($timetype == 3){
+            $where_time['a.createtime'] = ['BETWEEN',[$servenday_statime,$servenday_endtime]];
         }
+
+            $id = input('guild_id',0);
+
+            $guildMemberWhere['guild_id'] = $id;
+            $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_id'] = ['in', $userIds];
+                $where['a.is_baobi'] = 1;
+                $list = model('GiftUserParty')->alias("a")
+                    ->field('sum(a.value) as total_price,a.user_id,u.avatar,u.nickname,u.is_online,u.onlinetime')
+                    ->where($where)
+                    ->where($where_time)
+                    ->join('user u','u.id = a.user_id')
+                    ->group('a.user_id')
+                    ->order('total_price',"desc")
+                    ->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_id']]) ? $guildMemberData[$value['user_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';
+                        }
+                        unset($value['total_price']);
+                    }
+                }
+            }
+
+            $this->success(__('Operation completed'),$list);
+
     }
 
     /**