visuddhinanda 1 год назад
Родитель
Сommit
078c39b859
1 измененных файлов с 24 добавлено и 12 удалено
  1. 24 12
      app/Http/Controllers/CourseMemberController.php

+ 24 - 12
app/Http/Controllers/CourseMemberController.php

@@ -99,21 +99,30 @@ class CourseMemberController extends Controller
             'status' => 'required',
         ]);
         //查找重复的
-        if(CourseMember::where('course_id', $validated['course_id'])
-                      ->where('user_id',$validated['user_id'])
-                      ->exists()){
-            return $this->error('member exists',[200],200);
+        if($validated['status'] !== 'invited'){
+            if(CourseMember::where('course_id', $validated['course_id'])
+                        ->where('user_id',$validated['user_id'])
+                        ->exists()){
+                return $this->error('member exists',[200],200);
+            }
+        }
+
+        if($validated['status'] === 'invited'){
+            $userId = $validated['user_id'];
+        }else{
+            $userId = $user['user_uid'];
         }
+
+        CourseMember::where('course_id',$validated['course_id'])
+            ->where('user_id',$userId)
+            ->update(['is_current'=>false]);
+
         $newMember = new CourseMember();
         $newMember->course_id = $validated['course_id'];
         $newMember->role = $validated['role'];
         $newMember->editor_uid = $user['user_uid'];
         $newMember->status = $validated['status'];
-        if($validated['status'] === 'invited'){
-            $newMember->user_id = $validated['user_id'];
-        }else{
-            $newMember->user_id = $user['user_uid'];
-        }
+        $newMember->user_id = $userId;
 
         /**
          * 查找course 信息,根据加入方式设置状态
@@ -160,16 +169,19 @@ class CourseMemberController extends Controller
         if(!$user){
             return $this->error(__('auth.failed'));
         }
+        $userId = $user['user_uid'];
+        if(!empty($request->get('user_uid'))){
+            $userId = $request->get('user_uid');
+        }
         $member = CourseMember::where('course_id',$courseId)
-                                ->where('user_id',$user['user_uid'])
+                                ->where('user_id',$userId)
                                 ->where('is_current',true)
                                 ->first();
         if($member){
             return $this->ok(new CourseMemberResource($member));
         }else{
-            return $this->error('no result');
+            return $this->error('no result',200,200);
         }
-
     }
 
     /**