post = $post; $this->postData = $postData; $this->postComment = $postComment; $this->postImgs = $postImgs; $this->postLog = $postLog; $this->topic = $topic; } /** * 发布内容 */ public function create($request) { //验证小号 //验证话题 $topicIds = $this->topic->whereIn('id', explode(',', $request['topic_ids']))->pluck('id')->toArray(); $topicCount = count($topicIds); if($topicCount == 0 || $topicCount >= 5){ throw new HttpException(500, '所选话题必须1-5个'); } $topicIds = implode(',', $topicIds); $data = [ 'uid' => $request['uid'], 'username' => '暂无', 'mobile' => '暂无', 'avatar' => '暂无', 'type' => $request['type'], 'img' => $request['img'], 'video' => $request['video']??'', 'topic_ids' => $topicIds, 'title' => $request['title']??'', 'content' => $request['content'], 'location' => $request['location']??'', 'is_suggest' => 0, 'is_hide' => 0 ]; $date = date('Y-m-d H:i:s'); DB::beginTransaction(); try{ $post = $this->post->create($data); $this->postData->create([ 'post_id' => $post->id, 'pv' => 0, 'pv_real' => 0, 'dislike_count' => 0, 'praise_count' => 0, 'praise_real_count' => 0, 'share_count' => 0, 'share_real_count' => 0, 'comment_count' => 0, 'comment_real_count' => 0, 'collect_count' => 0, 'collect_real_count' => 0, 'available_bean' => 0, 'will_collect_bean' => 0, 'collect_bean' => 0, 'weight' => 0 ]); if($request['imgs'] && $request['type'] == 'image'){ $imgData = []; foreach($request['imgs'] as $img){ $imgData[] = [ 'post_id' => $post->id, 'img' => $img, 'created_at' => $date, 'updated_at' => $date ]; } $this->postImgs->insert($imgData); } DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::debug('发布内容:'.$exception->getMessage()); return Response::create([ 'message' => '发布失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } }