Quellcode durchsuchen

add course-my-course

visuddhinanda vor 3 Jahren
Ursprung
Commit
fe304e773a
2 geänderte Dateien mit 53 neuen und 10 gelöschten Zeilen
  1. 52 10
      app/Http/Controllers/CourseController.php
  2. 1 0
      routes/api.php

+ 52 - 10
app/Http/Controllers/CourseController.php

@@ -7,6 +7,7 @@ use App\Models\CourseMember;
 use Illuminate\Http\Request;
 use App\Http\Api\AuthApi;
 use App\Http\Api\StudioApi;
+use App\Http\Resources\CourseResource;
 
 class CourseController extends Controller
 {
@@ -28,13 +29,17 @@ class CourseController extends Controller
                     return $this->error(__('auth.failed'));
                 }
                 //判断当前用户是否有指定的studio的权限
-                if($user['user_uid'] !== StudioApi::getIdByName($request->get('name'))){
+                if($user['user_uid'] !== StudioApi::getIdByName($request->get('studio'))){
                     return $this->error(__('auth.failed'));
                 }
 
                 $table = Course::where('studio_id', $user["user_uid"]);
 				break;
             case 'study':
+                $user = AuthApi::current($request);
+                if(!$user){
+                    return $this->error(__('auth.failed'));
+                }
                 //我学习的课程
                 $course = CourseMember::where('user_id',$user["user_uid"])
                                       ->where('role','member')
@@ -47,6 +52,23 @@ class CourseController extends Controller
                 }
                 $table = Course::whereIn('id', $courseId);
                 break;
+            case 'teach':
+                //我任教的课程
+                $user = AuthApi::current($request);
+                if(!$user){
+                    return $this->error(__('auth.failed'));
+                }
+                $course = CourseMember::where('user_id',$user["user_uid"])
+                ->where('role','manager')
+                ->select('course_id')
+                ->get();
+                $courseId = [];
+                foreach ($course as $key => $value) {
+                    # code...
+                    $courseId[] = $value->course_id;
+                }
+                $table = Course::whereIn('id', $courseId);
+                break;
         }
         $table = $table->select($indexCol);
         if(isset($_GET["search"])){
@@ -72,12 +94,29 @@ class CourseController extends Controller
         }
         $result = $table->get();
 		if($result){
-			return $this->ok(["rows"=>$result,"count"=>$count]);
+			return $this->ok(["rows"=>CourseResource::collection($result),"count"=>$count]);
 		}else{
 			return $this->error("没有查询到数据");
 		}
     }
-
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function showMyCourseNumber(Request $request){
+        $user = AuthApi::current($request);
+        if(!$user){
+            return $this->error(__('auth.failed'));
+        }
+        //我建立的课程
+        $create = Course::where('studio_id', $user["user_uid"])->count();
+        //我学习的课程
+        $study = CourseMember::where('user_id',$user["user_uid"])
+        ->where('role','member')
+        ->count();
+        return $this->ok(['create'=>$create,'teach'=>0,'study'=>$study]);
+    }
     /**
      * Store a newly created resource in storage.
      *
@@ -92,7 +131,8 @@ class CourseController extends Controller
             return $this->error(__('auth.failed'));
         }
         //判断当前用户是否有指定的studio的权限
-        if($user['user_uid'] !== StudioApi::getIdByName($request->get('studio'))){
+        $studio_id = StudioApi::getIdByName($request->get('studio'));
+        if($user['user_uid'] !== $studio_id){
             return $this->error(__('auth.failed'));
         }
         //查询是否重复
@@ -102,9 +142,9 @@ class CourseController extends Controller
 
         $course = new Course;
         $course->title = $request->get('title');
-        $course->studio_id = $user['user_uid'];
+        $course->studio_id = $studio_id;
         $course->save();
-        return $this->ok($course);
+        return $this->ok(new CourseResource($course));
     }
 
     /**
@@ -116,7 +156,7 @@ class CourseController extends Controller
     public function show(Course $course)
     {
         //
-        return $this->ok($course);
+        return $this->ok(new CourseResource($course));
 
     }
 
@@ -135,18 +175,20 @@ class CourseController extends Controller
             return $this->error(__('auth.failed'));
         }
         //判断当前用户是否有指定的studio的权限
-        if($user['user_uid'] !== StudioApi::getIdByName($request->get('studio'))){
+        if($user['user_uid'] !== $course->studio_id){
             return $this->error(__('auth.failed'));
         }
         //查询标题是否重复
         if(Course::where('title',$request->get('title'))->where('studio_id',$user['user_uid'])->exists()){
-            return $this->error(__('validation.exists',['name']));
+            if($course->title !== $request->get('title')){
+                return $this->error(__('validation.exists',['name']));
+            }
         }
         $course->title = $request->get('title');
         $course->subtitle = $request->get('subtitle');
         $course->cover = $request->get('cover');
         $course->content = $request->get('content');
-        $course->teacher = $request->get('teacher');
+        $course->teacher = $request->get('teacher_id');
         $course->start_at = $request->get('start_at');
         $course->end_at = $request->get('end_at');
         $course->save();

+ 1 - 0
routes/api.php

@@ -90,6 +90,7 @@ Route::group(['prefix' => 'v2'],function(){
     Route::apiResource('wbwlookup',WbwLookupController::class);
     Route::apiResource('course',CourseController::class);
     Route::apiResource('course-member',CourseMemberController::class);
+    Route::get('course-my-course', [CourseController::class, 'showMyCourseNumber']);
 
 
     Route::get('guide/{lang}/{file}', function ($lang,$file) {