wesmiler hai 2 meses
pai
achega
017a4337ca

+ 15 - 0
app/Http/Controllers/Api/v1/MemberController.php

@@ -16,6 +16,21 @@ use Illuminate\Http\Request;
 class MemberController extends webApp
 {
     /**
+     * 团度成员
+     * @return array
+     */
+    public function teamList()
+    {
+        $params = request()->all();
+        $datas = MemberService::make()->getTeamList($this->userId,$params);
+        if ($datas) {
+            return showJson(1010, true, $datas);
+        } else {
+            return showJson(1004, false);
+        }
+    }
+
+    /**
      * 信息
      * @return array
      */

+ 7 - 0
app/Models/MemberModel.php

@@ -23,6 +23,13 @@ class MemberModel extends BaseModel
     // 设置数据表
     protected $table = 'member';
 
+    // 头像
+    public function getAvatarAttribute($value)
+    {
+        $value = $value ? get_image_url($value) : '';
+        return $value;
+    }
+
     /**
      * 收益账户
      * @return \Illuminate\Database\Eloquent\Relations\hasOne

+ 49 - 3
app/Services/Api/MemberService.php

@@ -238,6 +238,7 @@ class MemberService extends BaseService
 
         // 获取登录授权token
         $token = JwtService::make()->encode($id);
+        RedisService::keyDel("caches:members:teamList*");
         return [
             'access_token'=> $token,
             'info'=> $userInfo
@@ -309,9 +310,6 @@ class MemberService extends BaseService
         if ($info) {
             $info['create_time'] = $info['create_time']?datetime(strtotime($info['create_time']),'Y-m-d H:i') : '';
             $info['position_text'] = $info['department'] && $info['position']? $info['department'].'/'.$info['position'] : '';
-            if (isset($info['avatar'])) {
-                $info['avatar'] = $info['avatar'] ? get_image_url($info['avatar']) : '';
-            }
 
             if (isset($info['mobile'])) {
                 $info['mobile_text'] = $info['mobile'] ? format_mobile($info['mobile']) : '';
@@ -599,10 +597,58 @@ class MemberService extends BaseService
         $this->error = '恭喜您,已完成认证';
         RedisService::clear($cacheLockKey);
         RedisService::clear("caches:members:authInfo:{$userId}");
+        RedisService::keyDel("caches:members:teamList*");
         return true;
     }
 
     /**
+     * @param $userId
+     * @param $params
+     * @return array
+     */
+    public function getTeamList($userId,$params)
+    {
+        $page = isset($params['page'])?$params['page']: 1;
+        $pageSize = isset($params['pageSize'])?$params['pageSize']: 12;
+        $cacheKey = "caches:members:teamList_{$userId}:{$page}_".md5(json_encode($params));
+        $list = RedisService::get($cacheKey);
+        if ($list) {
+            return [
+                'cache'=>true,
+                'pageSize'=> $pageSize,
+                'total'=>isset($list['total'])? $list['total'] : 0,
+                'list'=> isset($list['data'])? $list['data'] : []
+            ];
+        }
+
+        $list = $this->model->with(['account'])
+            ->where(['parent_id'=>$userId,'mark'=>1])
+            ->where(function($query) use($params){
+                $keyword = isset($params['keyword'])? $params['keyword'] : '';
+                if($keyword){
+                    $query->where(function($query) use($keyword){
+                        $query->where('realname','like',"%{$keyword}%")
+                            ->orWhere('mobile','like',"%{$keyword}%");
+                    });
+                }
+            })
+            ->select(['id','realname','mobile','nickname','parent_id','avatar','is_auth','status'])
+            ->orderBy('create_time','desc')
+            ->paginate($pageSize > 0 ? $pageSize : 9999999);
+        $list = $list? $list->toArray() :[];
+        $total = isset($list['total'])? $list['total'] : 0;
+        if($total){
+            RedisService::set($cacheKey, $list, rand(10,20));
+        }
+        return [
+            'pageSize'=> $pageSize,
+            'total'=>$total,
+            'list'=> isset($list['data'])? $list['data'] : []
+        ];
+
+    }
+
+    /**
      * 账号注销
      * @param $userId
      * @return bool

+ 1 - 1
routes/api.php

@@ -60,10 +60,10 @@ Route::prefix('v1')->middleware('web.login')->group(function() {
     // 用户信息
     Route::get('/user/info', [\App\Http\Controllers\Api\v1\MemberController::class, 'info']);
     Route::post('/user/authInfo', [\App\Http\Controllers\Api\v1\MemberController::class, 'authInfo']);
-    Route::post('/user/bindAccount', [\App\Http\Controllers\Api\v1\MemberController::class, 'bindAccount']);
     Route::post('/user/getPhoneNumber', [\App\Http\Controllers\Api\v1\MemberController::class, 'getPhoneNumber']);
     Route::post('/user/modify', [\App\Http\Controllers\Api\v1\MemberController::class, 'modify']);
     Route::post('/user/auth', [\App\Http\Controllers\Api\v1\MemberController::class, 'auth']);
+    Route::post('/user/teamList', [\App\Http\Controllers\Api\v1\MemberController::class, 'teamList']);
     Route::post('/user/logOff', [\App\Http\Controllers\Api\v1\MemberController::class, 'logOff']);
 
     // 账户明细