Parcourir la source

CourseMember 判断 is_current

visuddhinanda il y a 2 ans
Parent
commit
5989a36bda
1 fichiers modifiés avec 35 ajouts et 11 suppressions
  1. 35 11
      app/Http/Controllers/CourseController.php

+ 35 - 11
app/Http/Controllers/CourseController.php

@@ -9,6 +9,7 @@ use App\Http\Api\AuthApi;
 use App\Http\Api\StudioApi;
 use App\Http\Resources\CourseResource;
 use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Str;
 
 class CourseController extends Controller
 {
@@ -71,6 +72,7 @@ class CourseController extends Controller
                 //我学习的课程
                 $course = CourseMember::where('user_id',$user["user_uid"])
                                       ->where('role','student')
+                                      ->where('is_current',true)
                                       ->select('course_id')
                                       ->get();
                 $courseId = [];
@@ -87,9 +89,10 @@ class CourseController extends Controller
                     return $this->error(__('auth.failed'));
                 }
                 $course = CourseMember::where('user_id',$user["user_uid"])
-                ->where('role','assistant')
-                ->select('course_id')
-                ->get();
+                                    ->whereIn('role',['assistant','manager','teacher'])
+                                      ->where('is_current',true)
+                                      ->select('course_id')
+                                    ->get();
                 $courseId = [];
                 foreach ($course as $key => $value) {
                     # code...
@@ -130,12 +133,14 @@ class CourseController extends Controller
         $create = Course::where('studio_id', $user["user_uid"])->count();
         //我学习的课程
         $study = CourseMember::where('user_id',$user["user_uid"])
-        ->where('role','student')
-        ->count();
+                            ->where('role','student')
+                            ->where('is_current',true)
+                            ->count();
         //我任教的课程
         $teach = CourseMember::where('user_id',$user["user_uid"])
-        ->where('role','assistant')
-        ->count();
+                            ->where('is_current',true)
+                            ->whereIn('role',['assistant','manager','teacher'])
+                            ->count();
         return $this->ok(['create'=>$create,'teach'=>$teach,'study'=>$study]);
     }
     /**
@@ -161,10 +166,29 @@ class CourseController extends Controller
             return $this->error(__('validation.exists',['name']));
         }
 
-        $course = new Course;
-        $course->title = $request->get('title');
-        $course->studio_id = $studio_id;
-        $course->save();
+        try {
+            $course = new Course;
+            DB::transaction(function () use($course,$request,$studio_id,$user) {
+                $saveCourse = false;
+                $saveCourseMember = false;
+
+                $course->id = Str::uuid();
+                $course->title = $request->get('title');
+                $course->studio_id = $studio_id;
+                $saveCourse = $course->save();
+
+                //添加owner
+                $newMember = new CourseMember();
+                $newMember->user_id = $user['user_uid'];
+                $newMember->course_id = $course->id;
+                $newMember->role = 'owner';
+                $saveCourseMember = $newMember->save();
+            });
+
+        } catch(\Exception $e) {
+            return $this->error('course create fail',500,500);
+        }
+
         return $this->ok(new CourseResource($course));
     }