Selaa lähdekoodia

2023-5-22-1 新增服务区-2

yingzi 2 vuotta sitten
vanhempi
commit
14bba5cfcf
1 muutettua tiedostoa jossa 57 lisäystä ja 11 poistoa
  1. 57 11
      app/api/controller/User.php

+ 57 - 11
app/api/controller/User.php

@@ -122,28 +122,73 @@ class User extends BaseController
      * 获取用户总邀请人数排行榜
      * @param Request $request
      */
-    public function getInviterRanking(Request $request){
+//    public function getInviterRanking(Request $request){
+//        $time = $request->param('time', time());
+//        $times = explode(" - ",$time);
+////        $page = $request->param('page', 1);
+////        $pageSize = $request->param('pageSize', 6);
+//        if(sizeof($times)==2)
+//        {
+//            $count = (new UserModel) -> where('parent_uid', $request->user['uid'])->where('regtime','>=',$times[0])->where('regtime','<',$times[1])->count();
+//        }
+//        else
+//        {
+//            $count = (new UserModel) -> where('parent_uid', $request->user['uid'])->count();
+//        }
+//        $uids = (new UserModel) -> where('parent_uid', $request->user['uid'])
+//            -> column('uid');
+//        $InfoAudit= new InfoAudit();
+//        $list = [];
+//        if ($count == 0) {
+//            $list = (new UserModel)
+//                -> where('uid', '<>', $request->user['uid'])
+//                -> orderRaw('RAND()')
+////                -> limit(6)
+//                -> field('uid, nickname, avatar')
+//                -> select()
+//                -> toArray();
+//            foreach ($list as &$v) {
+//                $v['count'] = (new UserModel)->where('parent_uid', $v['uid'])->count();
+//            }
+//        } else {
+//            $list = (new UserModel)
+//                -> where('parent_uid', 'in', $uids)
+//                -> group('parent_uid')
+//                -> field('parent_uid AS uid, COUNT(*) AS count')
+//                -> order('count', 'DESC')
+////                -> page($page, $pageSize)
+//                -> select()
+//                -> toArray();
+//            foreach ($list as &$v) {
+//                $user = (new UserModel)->where('uid', $v['uid'])->field('nickname, avatar')->find();
+//                $v['nickname'] = $user['nickname'];
+//                $v['avatar'] = $user['avatar'];
+//            }
+//        }
+//        return app('json')->success(compact('count','list'));
+//    }
+
+    public function getInviterRanking(Request $request)
+    {
         $time = $request->param('time', time());
         $times = explode(" - ",$time);
-//        $page = $request->param('page', 1);
-//        $pageSize = $request->param('pageSize', 6);
         if(sizeof($times)==2)
         {
-            $count = (new UserModel) -> where('parent_uid', $request->user['uid'])->where('regtime','>=',$times[0])->where('regtime','<',$times[1])->count();
+            $count = (new UserModel) -> where('parent_uid', 'in', function ($query) use ($request) {
+                $query->table('user')->where('uid', $request->user['uid'])->field('parent_uid');
+            })->where('regtime','>=',$times[0])->where('regtime','<',$times[1])->count();
         }
         else
         {
-            $count = (new UserModel) -> where('parent_uid', $request->user['uid'])->count();
+            $count = (new UserModel) -> where('parent_uid', 'in', function ($query) use ($request) {
+                $query->table('user')->where('uid', $request->user['uid'])->field('parent_uid');
+            })->count();
         }
-        $uids = (new UserModel) -> where('parent_uid', $request->user['uid'])
-            -> column('uid');
-        $InfoAudit= new InfoAudit();
         $list = [];
         if ($count == 0) {
             $list = (new UserModel)
                 -> where('uid', '<>', $request->user['uid'])
                 -> orderRaw('RAND()')
-//                -> limit(6)
                 -> field('uid, nickname, avatar')
                 -> select()
                 -> toArray();
@@ -152,11 +197,12 @@ class User extends BaseController
             }
         } else {
             $list = (new UserModel)
-                -> where('parent_uid', 'in', $uids)
+                -> where('parent_uid', 'in', function ($query) use ($request) {
+                    $query->table('user')->where('uid', $request->user['uid'])->field('parent_uid');
+                })
                 -> group('parent_uid')
                 -> field('parent_uid AS uid, COUNT(*) AS count')
                 -> order('count', 'DESC')
-//                -> page($page, $pageSize)
                 -> select()
                 -> toArray();
             foreach ($list as &$v) {