$this->id, 'title' => $this->title, 'subtitle' => $this->subtitle, 'summary' => $this->summary, 'sign_up_message' => $this->sign_up_message, 'teacher' => UserApi::getByUuid($this->teacher), 'course_count' => 10, 'publicity' => $this->publicity, 'start_at' => $this->start_at, 'end_at' => $this->end_at, 'sign_up_start_at' => $this->sign_up_start_at, 'sign_up_end_at' => $this->sign_up_end_at, 'content' => $this->content, 'content_type' => $this->content_type, 'cover' => $this->cover, 'channel_id' => $this->channel_id, 'join' => $this->join, 'number' => $this->number, 'request_exp' => $this->request_exp, 'studio' => StudioApi::getById($this->studio_id), 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, ]; $data['member_count'] = CourseMember::where('course_id', $this->id) ->where('is_current', true)->count(); $data['members'] = CourseMember::where('course_id', $this->id) ->where('is_current', true) ->select(['role', 'status']) ->get(); $user = AuthService::current($request); if ($user) { $data['my_role'] = CourseMember::where('course_id', $this->id) ->where('is_current', true) ->where('user_id', $user['user_uid']) ->value('role'); } if ($this->cover) { $thumb = str_replace('.jpg', '_m.jpg', $this->cover); if (App::environment('local')) { $data['cover_url'] = [Storage::url($this->cover), Storage::url($thumb)]; } else { $data['cover_url'] = [ Storage::temporaryUrl($this->cover, now()->addDays(6)), Storage::temporaryUrl($thumb, now()->addDays(6)), ]; } } if (Str::isUuid($this->cover)) { $coverId = Attachment::find($this->cover); $cover_url = []; if ($coverId) { $cover_url[] = Storage::disk('public')->url($coverId->bucket.'/'.$coverId->name); $cover_url[] = Storage::disk('public')->url($coverId->bucket.'/'.$coverId->id.'_s.jpg'); $cover_url[] = Storage::disk('public')->url($coverId->bucket.'/'.$coverId->id.'_m.jpg'); $cover_url[] = Storage::disk('public')->url($coverId->bucket.'/'.$coverId->id.'_l.jpg'); $data['cover_url'] = $cover_url; } } $textbook = Collection::where('uid', $this->anthology_id)->select(['uid', 'title', 'owner'])->first(); if ($textbook) { $data['anthology_id'] = $textbook->uid; $data['anthology_title'] = $textbook->title; $data['anthology_owner'] = StudioApi::getById($textbook->owner); } if (! empty($this->channel_id)) { $channel = Channel::where('uid', $this->channel_id)->select(['name', 'owner_uid'])->first(); if ($channel) { $data['channel_name'] = $channel->name; $data['channel_owner'] = StudioApi::getById($channel->owner_uid); } } if ($request->input('view') === 'study' || $request->input('view') === 'teach') { $user = AuthService::current($request); if ($user) { $course_member = CourseMember::where('user_id', $user['user_uid']) ->where('course_id', $this->id) ->where('is_current', true) ->first(); if ($course_member) { $data['my_status'] = $course_member->status; $data['my_status_id'] = $course_member->id; } } } else { // 计算待审核 $data['count_progressing'] = CourseMember::where('course_id', $this->id) ->where('status', 'invited') ->where('is_current', true) ->count(); } return $data; } }