'阅读', '2' => '点赞', '3' => '分享', '4' => '推荐', '5' => '取消推荐', '6' => '取消点赞' ]; public function list(Model $Model, ArticleCommentModel $ArticleCommentModel){ // 接受参数 $status = request('status', null); $startTime = request('start_time',''); $endTime = request('end_time',''); // 查询条件 $map = []; // 编码ID if( $startTime ) $map[] = ['start_time','>=',strtotime($startTime)]; if( $endTime ) $map[] = ['end_time','<=',strtotime($endTime)]; if( !is_null($status) ) $map[] = ['status','=',$status]; // 查询文章数据 $list = $Model->query()->where($map); $list = $list->orderByDesc('id')->paginate(request('limit',config('page_num',10)))->appends(request()->all()); // 循环处理数据 foreach ($list as $key => $value) { // id转编号 $value['article_id'] = $value['id']; // 重组 $value['poster'] = $value['poster']? path_compat($value['poster']):''; $value['read_count'] = $ArticleCommentModel->query() ->where(['article_id'=>$value['id'],'event_type'=>1]) ->count(); $value['like_count'] = $ArticleCommentModel->query() ->where(['article_id'=>$value['id'],'event_type'=>2]) ->count(); $value['update_time'] = date('Y-m-d H:i:s',$value['update_time']); $list[$key] = $value; } // 分配数据 return json_send(['code'=>'success','msg'=>'列表数据','data'=>$list]); } /** * 数据详情 * * */ public function detail(Model $Model, ArticleCommentModel $ArticleCommentModel){ // 接受参数 $tid = request('article_id',0); $uid = $this->checkLogin(); // custom_uid // 查询条件 $map = []; // 编码ID if( $tid ) $map[] = ['id','=',$tid]; $data = $Model->query()->where($map)->find($tid,['id','title','poster','content']); if ($data){ $data['like_count'] = $ArticleCommentModel->query() ->where(['article_id'=>$tid,'event_type'=>2]) ->count(); $data['read_count'] = $ArticleCommentModel->query() ->where(['article_id'=>$tid,'event_type'=>1]) ->count(); $data['share_count'] = $ArticleCommentModel->query() ->where(['article_id'=>$tid,'event_type'=>3]) ->count(); $data['recommend_count'] = $ArticleCommentModel->query() ->where(['article_id'=>$tid,'event_type'=>4]) ->count(); if ($uid){ $user_envent = $ArticleCommentModel->query()->where(['uid'=>$uid,'article_id'=>$tid]) ->get(); foreach ($user_envent as $value){ if ($value['event_type'] == 2){ $data['like_type'] = 2; }else{ $data['like_type'] = 6; } if ($value['event_type'] == 4){ $data['recommend_type'] = 4; }else{ $data['recommend_type'] = 5; } } //写入浏览记录 $read = [ 'article_id' => $tid, 'event_type' => 1, 'uid' => $uid, 'insert_time' => time() ]; //查询用户是否浏览过 $read_type = $ArticleCommentModel->query()->where(['uid'=>$uid,'article_id'=>$tid])->value('event_type'); if (!$read_type){ $comment_id = $ArticleCommentModel->add($read); } }else{ $read['event_type'] = 0;//禁止分享、推荐和点赞 } } // 加载模板 if (!empty($data)){ return json_send(['code'=>'success','msg'=>'数据','data'=>$data]); } return json_send(['code'=>'success','msg'=>'暂无','data'=>[]]); } /** * 数据详情 * * */ public function update_event(Model $Model, ArticleCommentModel $ArticleCommentModel){ // '1' => '阅读', // '2' => '点赞', // '3' => '分享', // '4' => '推荐', // '5' => '取消推荐', // '6' => '取消点赞' $event = request('event_type',0); $tid = request('article_id',0); $uid = $this->checkLogin(); // custom_uid // 查询条件 $map = []; $map[] = ['uid','=',$uid]; $map[] = ['article_id','=',$tid]; $map[] = ['event_type','=',$event]; $user_envent = $ArticleCommentModel->query()->where($map)->get(); switch ($event){ case 2: if ($user_envent){ $Res = $ArticleCommentModel::query() ->where(['uid'=>$uid,'article_id'=>$tid]) ->update(['event_type'=>'6']); return json_send(['code'=>'error','msg'=>'取消点赞','data'=>[]]); } break; case 4: if ($user_envent){ $Res = $ArticleCommentModel::query() ->where(['uid'=>$uid,'article_id'=>$tid]) ->update(['event_type'=>'4']); return json_send(['code'=>'error','msg'=>'取消推荐','data'=>[]]); } break; default: $map[] = ['uid','=',$uid]; $map[] = ['article_id','=',$tid]; $map[] = ['event_type','=',$event]; } $user_envent = $ArticleCommentModel->query()->where($map)->get(); if( $tid ) $map[] = ['id','=',$tid]; // $orderRes = $Model::query()->where('article_id','=',$tid)->update(['status'=>'1']); //用户是否点赞和推荐 return json_send(['code'=>'success','msg'=>'成功', 'data'=>[ 'event_type'=>$event,'article_id'=>$tid] ]); } }