created_at ?? ''; $dynamics = Dynamic::where('status', 1) ->when($createdAt, function ($query) use ($createdAt) { $query->where('created_at', '<', $createdAt); }) ->orderBy('created_at', 'desc') ->paginate(); return $this->success(new DynamicCollection($dynamics)); } /** * @Notes : 添加动态 * * @Date : 2022/6/17 11:29 * @param DynamicRequest $request * @return JsonResponse * @author : Mr.wang */ public function store(DynamicRequest $request): JsonResponse { $user = Api::user(); $dynamic = Dynamic::create([ 'user_id' => $user->id, 'description' => $request->description ?? '', 'pictures' => $request->pictures ?? '', 'status' => 1, ]); if ($dynamic) { return $this->success(); } else { return $this->failed('失败'); } } /** * @Notes : 删除动态 * * @Date : 2022/6/17 11:33 * @author : Mr.wang * @param Dynamic $dynamic * @return JsonResponse */ public function destroy(Dynamic $dynamic): JsonResponse { $user = Api::user(); if ($user->id != $dynamic->user_id) { return $this->failed('没有删除权限'); } if ($dynamic->delete()) { return $this->success(true); } else { return $this->failed('失败'); } } /** * @Notes : 点赞/取消 * * @Date : 2022/6/17 13:18 * @author : Mr.wang * @param Dynamic $dynamic * @return JsonResponse */ public function like(Dynamic $dynamic): JsonResponse { $user = Api::user(); if ($user->hasLiked($dynamic)) { $user->unlike($dynamic); return $this->success([ 'is_like' => false, ]); } else { $user->like($dynamic); return $this->success([ 'is_like' => true, ]); } } /** * @Notes : 添加评论 * * @Date : 2022/6/20 15:43 * @author : Mr.wang * @param Request $request * @param Dynamic $dynamic * @return JsonResponse */ public function comment(Request $request, Dynamic $dynamic): JsonResponse { $user = Api::user(); if (empty($request->input('content'))) { return $this->failed('评论内容不能为空'); } $parentId = $request->parent_id ?? 0; $result = $dynamic->comments()->create([ 'user_id' => $user->id, 'parent_id' => $parentId, 'content' => $request->input('content'), 'status' => 1, ]); if ($result) { return $this->success(new CommentResource($result)); } else { return $this->failed('失败'); } } /** * Notes : * * @Date : 2022/10/27 11:00 * @Author : * @param Dynamic $dynamic * @param Comment $comment * @return JsonResponse */ public function commentDestroy(Dynamic $dynamic, Comment $comment): JsonResponse { $user = Api::user(); if ($comment->user()->isNot($user)) { return $this->failed('没有删除权限'); } $dynComment = $dynamic->comments()->where('id', $comment->id)->first(); if ($dynComment) { $dynComment->status = 0; if ($dynComment->save()) { return $this->success(true); } else { return $this->failed(false); } } else { return $this->failed('没有相应评论'); } } }