Browse Source

Default Changelist

yingzi 2 years ago
parent
commit
173cd64cb4
1 changed files with 42 additions and 57 deletions
  1. 42 57
      app/api/controller/User.php

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

@@ -122,63 +122,48 @@ class User extends BaseController
      * 获取用户总邀请人数排行榜
      * @param Request $request
      */
-    public function getInviterRanking(Request $request)
-    {
-        $time = $request->param('time', time());
-        $times = explode(' - ', $time);
-        $page = $request->param('page', 1); // 获取请求中的页码参数,默认为 1
-        $pageSize = $request->param('pageSize', 6); // 获取请求中的每页记录数参数,默认为 6
-        $uids = [];
-
-        // 判断用户和 $times 是否存在
-        if ($request->has('user') && $request->has('time')) {
-            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');
-        } else {
-            $count = 0;
-        }
-
-        $list = [];
-
-        if ($count) {
-            $InfoAudit = new InfoAudit();
-
-            $list = (new UserModel)
-                ->whereIn('parent_uid', $uids)
-                ->group('parent_uid')
-                ->field('parent_uid, COUNT(*) AS count')
-                ->order('count', 'DESC')
-                ->page($page, $pageSize)
-                ->select()
-                ->toArray();
-
-            foreach ($list as &$v) {
-                $v['user_info'] = (new UserModel)
-                    ->where('uid', $v['parent_uid'])
-                    ->find();
-
-                $v['auth_info'] = $InfoAudit->where('uid', $v['parent_uid'])->where('status', 1)->find();
-            }
-        } else {
-            $list = array_fill(0, 6, (new UserModel)->where('uid', $uids)->select());
-        }
-
-        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); // 获取请求中的页码参数,默认为 1
+         $pageSize = $request->param('pageSize', 6); // 获取请求中的每页记录数参数,默认为 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)
+                 -> select()
+                 -> toArray();
+             foreach ($list as &$v) {
+                 $v['auth_info'] = $InfoAudit->where('uid', $v['uid'])->where('status', 1)->find();
+             }
+         } else {
+             $list = (new UserModel)
+                 -> where('parent_uid', 'in', $uids)
+                 -> group('parent_uid')
+                 -> field('parent_uid, COUNT(*) AS count')
+                 -> order('count', 'DESC')
+                 -> page($page, $pageSize)
+                 -> select()
+                 -> toArray();
+             foreach ($list as &$v) {
+                 $v['auth_info'] = $InfoAudit->where('uid', $v['uid'])->where('status', 1)->find();
+             }
+         }
+        return app('json')->success(compact('count','list'));
+     }
 
 
     /**