Browse Source

我的礼物贡献榜

lizhen_gitee 2 months ago
parent
commit
aed303d223
1 changed files with 35 additions and 0 deletions
  1. 35 0
      application/api/controller/Usercenter.php

+ 35 - 0
application/api/controller/Usercenter.php

@@ -1208,6 +1208,41 @@ $resArray['money'] = $money;  //返回给前端的计算结果
         $this->success("获取成功!",$data);
     }
 
+    //我的礼物榜
+    public function gift_ranklist(){
+        //日榜
+        $sql1 = Db::name('gift_user_typing') ->field('user_id,total_price')->where('user_to_id',$this->auth->id)->whereTime('createtime','today')->select(false);
+        $sql2 = Db::name('gift_user_dongtai')->field('user_id,total_price')->where('user_to_id',$this->auth->id)->whereTime('createtime','today')->select(false);
+
+        $sql = 'select log.user_id,sum(log.total_price) sum_price,user.nickname,user.avatar from ('.$sql1.' UNION ALL '.$sql2.') as log LEFT JOIN mt_user user on log.user_id = user.id group by log.user_id order by sum_price desc limit 10';
+
+        $rs_day = Db::query($sql);
+
+        //周榜
+        $sql1 = Db::name('gift_user_typing') ->field('user_id,total_price')->where('user_to_id',$this->auth->id)->whereTime('createtime','week')->select(false);
+        $sql2 = Db::name('gift_user_dongtai')->field('user_id,total_price')->where('user_to_id',$this->auth->id)->whereTime('createtime','week')->select(false);
+
+        $sql = 'select log.user_id,sum(log.total_price) sum_price,user.nickname,user.avatar from ('.$sql1.' UNION ALL '.$sql2.') as log LEFT JOIN mt_user user on log.user_id = user.id group by log.user_id order by sum_price desc limit 10';
+
+        $rs_week = Db::query($sql);
+
+        //月榜
+        $sql1 = Db::name('gift_user_typing') ->field('user_id,total_price')->where('user_to_id',$this->auth->id)->whereTime('createtime','month')->select(false);
+        $sql2 = Db::name('gift_user_dongtai')->field('user_id,total_price')->where('user_to_id',$this->auth->id)->whereTime('createtime','month')->select(false);
+
+        $sql = 'select log.user_id,sum(log.total_price) sum_price,user.nickname,user.avatar from ('.$sql1.' UNION ALL '.$sql2.') as log LEFT JOIN mt_user user on log.user_id = user.id group by log.user_id order by sum_price desc limit 10';
+
+        $rs_month = Db::query($sql);
+
+        //
+        $rs = [
+            'day' => $rs_day,
+            'week' => $rs_week,
+            'month' => $rs_month,
+        ];
+        $this->success(1,$rs);
+    }
+
 /////////////////////////////////////////////////////