Browse Source

投手信息
投手列表

liuzejian 2 years ago
parent
commit
e078eeaba6

+ 24 - 6
modules/Channel/Http/Controllers/AdvertiserController.php

@@ -30,14 +30,13 @@ class AdvertiserController extends CatchController
             'username' => 'required',
             'password' => 'required',
             'repassword' => 'required|same:password',
-            'status' => 'required',
+            'status' => 'required|in:1,2',
             'remark' => 'string|max:140',
             'miniProgramIds' => 'required|array|min:1',
             'miniProgramIds.*' => 'required|integer'
         ]);
         $this->user->emailUnique($request->input('email'));
-        // todo : 这里需要修改成投手角色的id
-        $request['roles'] = [3];
+        $request['roles'] = [(DB::table('roles')->where('identify', 'Investmenter')->value('id') ?? 0)];
         $this->user->storeBy($request->all());
         $this->user->pid = $this->getLoginUserId();
         $this->user->save();
@@ -71,7 +70,7 @@ class AdvertiserController extends CatchController
         $miniProgramId = $request->input('miniProgramId');
         $email = $request->input('email');
         $username = $request->input('username');
-        return  DB::table('users')
+        $res =   DB::table('users')
             ->join('user_has_miniprograms', 'users.id', 'user_has_miniprograms.uid')
             ->where([
                 'user_has_miniprograms.is_enabled' => 1,
@@ -87,10 +86,27 @@ class AdvertiserController extends CatchController
             ->select(
                 'users.id', 'users.username', 'users.email', 'users.status',
                 DB::raw("from_unixtime(users.created_at) as created_at"),
-                DB::raw("group_concat(distinct user_has_miniprograms.miniprogram_id separator ',') as miniProgramIds")
+                DB::raw("group_concat(distinct user_has_miniprograms.miniprogram_id separator ',') as miniProgramIds"),
+                DB::raw("NULL as miniPrograms")
             )->groupBy('users.id')
             ->orderBy('users.id','desc')
             ->paginate($request->input('per_page', 15));
+        $miniProgramIds = collect();
+        collect($res->items())->pluck('miniProgramIds')->each(function ($item) use (&$miniProgramIds) {
+            $miniProgramIds = $miniProgramIds->merge(explode(',', $item));
+        });
+        if($miniProgramIds->count()) {
+            $miniPrograms = DB::table('miniprogram')->whereIn('id', $miniProgramIds->unique())
+                ->select('id', 'name', 'type')
+                ->get()->keyBy('id');
+            foreach ($res as $item) {
+                $item->miniPrograms = [];
+                foreach (explode(',', $item->miniProgramIds) as $miniProgramId) {
+                    $item->miniPrograms[] = $miniPrograms->get($miniProgramId);
+                }
+            }
+        }
+        return $res;
     }
 
     /**
@@ -105,7 +121,7 @@ class AdvertiserController extends CatchController
             'username' => 'required',
             'miniProgramIds' => 'required|array|min:1',
             'miniProgramIds.*' => 'required|integer',
-            'status' => 'required',
+            'status' => 'required|in:1,2',
             'remark' => 'string|max:140',
         ]);
         $uid = $request->input('id');
@@ -171,6 +187,8 @@ class AdvertiserController extends CatchController
             ->get()->pluck('miniprogram_id')->toArray();
 
         $user->miniProgramIds = $miniProgramIds;
+        $user->miniPrograms =  DB::table('miniprogram')->whereIn('id', array_unique($miniProgramIds))
+            ->select('id', 'name', 'type')->get();
         return $user;
     }
 }

+ 3 - 4
tests/Channel/Http/Controllers/AdvertiserControllerTest.php

@@ -14,7 +14,7 @@ class AdvertiserControllerTest extends UsedTestCase
         $res = $this->withHeaders([
             'Authorization' => 'Bearer '. $this->token,
         ])->json('post','http://localhost/api/channel/advertiser/add', [
-            'email' => 'aa1@test.com',
+            'email' => 'aa4@test.com',
             'password' => '123',
             'repassword' => '123',
             'status' => 1,
@@ -33,7 +33,7 @@ class AdvertiserControllerTest extends UsedTestCase
 //                'miniProgramId' => 3,
             'username' => 'aa'
             ]));
-        $res->dump();
+        dump(\json_encode($res->json()));
     }
 
     public function testgetAdvertiser() {
@@ -44,7 +44,7 @@ class AdvertiserControllerTest extends UsedTestCase
 //                'miniProgramId' => 3,
                 'id' => 6
             ]));
-        $res->dump();
+        $this->dumpJson($res);
     }
 
     public function testupdateAdvertiser() {
@@ -57,6 +57,5 @@ class AdvertiserControllerTest extends UsedTestCase
             'status' => 0,
             'remark' => 'first change'
         ]);
-        $res->dump();
     }
 }