liuzejian преди 1 година
родител
ревизия
b04cfe101e
променени са 3 файла, в които са добавени 19 реда и са изтрити 7 реда
  1. 10 0
      modules/Video/Http/Controllers/EpisodeController.php
  2. 2 2
      tests/UsedTestCase.php
  3. 7 5
      tests/Video/Http/Controllers/EpisodeControllerTest.php

+ 10 - 0
modules/Video/Http/Controllers/EpisodeController.php

@@ -74,6 +74,16 @@ class EpisodeController extends CatchController
                 'updated_at' => $now,
             ];
         }
+
+        $allSequence = DB::table('video_series')->where(['video_id' => $request->input('video_id')])
+            ->select('series_sequence')->get()->pluck('series_sequence');
+        $alreadySeries = collect($data)->pluck('series_sequence')->intersect($allSequence)->map(function ($item) use ($data) {
+            return collect($data)->keyBy('series_sequence')->get($item)['series_name'];
+        });
+        if($alreadySeries->isNotEmpty()) {
+            CommonBusinessException::throwError([-1, $alreadySeries->join(', ') . ' 已经存在']);
+        }
+
         DB::table('video_series')->insert($data);
         DB::table('videos')
             ->where(['id' => $request->input('video_id')])

+ 2 - 2
tests/UsedTestCase.php

@@ -13,11 +13,11 @@ abstract class UsedTestCase extends BaseTestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $tokenInfo = $this->post('http://localhost/api/login', [
-//            'email' => 'catch@admin.com',
+            'email' => 'catch@admin.com',
             'remember' => false,
 //            'email' => 'xiaoli@qq.com',
             'password' => 'catchadmin',
-        'email' => 'aa@test.com',
+//        'email' => 'aa@test.com',
         ])->json();
         $this->token = $tokenInfo['data']['token'];
     }

+ 7 - 5
tests/Video/Http/Controllers/EpisodeControllerTest.php

@@ -24,13 +24,15 @@ class EpisodeControllerTest extends UsedTestCase
         $res = $this->withHeaders([
             'Authorization' => 'Bearer '. $this->token,
         ])->json('post','http://localhost/api/videoStock/episode/add', [
-            'video_id' => 2,
+            'video_id' => 3,
             'videos' => [
-                ['name' => '01_xxx', 'duration' => 12342, 'url' => 'url1'],
-                ['name' => '02_xxx', 'duration' => 1222, 'url' => 'url2'],
-                ['name' => '03_xxx', 'duration' => 3342, 'url' => 'url3'],
+                ['name' => '01_xxx', 'duration' => 12342, 'key' => 'url1'],
+                ['name' => '02_xxx', 'duration' => 1222, 'key' => 'url2'],
+                ['name' => '03_xxx', 'duration' => 3342, 'key' => 'url3'],
+                ['name' => '04_xxx', 'duration' => 3342, 'key' => 'url3'],
             ]
         ]);
-        $this->dumpJson($res);
+//        $this->dumpJson($res);
+        $res->dump();
     }
 }