token = input('token'); if(empty($this->token)){ $this->lo(url('/h5/index/errorPage')); } $this->userid = $this->checktoken(); } public function newDetails(){ $newsid = input('newsid'); $page = input('page/d',1); $size = input('size/d',10); $offset = ($page-1)*$size; $ret=Db::name('news') ->where([ 'enable'=>1, 'del'=>0, 'id'=>$newsid ])->find(); //评论数 $comment_num=Db::name('news_reply') ->field('id,news_id,content,user_id,create_time,news_reply_id') ->where([ 'news_id'=>$newsid, 'news_reply_id'=>0, 'del'=>0, 'enable'=>1, ])->count(); $ret['comment_num']=$comment_num?$comment_num:0; $ret['imgs'] = empty($ret['imgs'])?'':explode(',',$ret['imgs']); $ret['like']=0; if($this->userid){ //点赞 $like=Db::name('news_like') ->where([ 'news_id'=>$newsid, 'user_id'=>$this->userid, ])->find(); $ret['like']=$like?1:0; //1点赞0未点赞 } if($page==1){ //评论-回复 $comment=Db::name('news_reply') ->where([ 'news_id'=>$ret['id'], 'enable'=>1, 'del'=>0, 'news_reply_id'=>0 ]) ->order('id','asc') ->limit($offset,$size) ->select(); foreach ($comment as $k=>$v){ $user=Db::name('user')-> field('real_name,head_image') ->where('id',$v['user_id']) ->find(); $comment[$k]['user_name']=$user?$user['real_name']:''; $comment[$k]['head_image']=$user?$user['head_image']:''; $comment[$k]['reply_name']=''; $subcomment = Db::name('news_reply') ->where([ 'news_id'=>$ret['id'], 'enable'=>1, 'del'=>0, 'news_reply_id'=>$v['id'] ]) ->order('id','asc') ->select(); $subcomment = $subcomment?$subcomment:[]; foreach ($subcomment as $key=>$value){ $user=Db::name('user')-> field('real_name,head_image') ->where('id',$value['user_id']) ->find(); $reply = Db::name('user') ->field('real_name,head_image') ->where('id',$value['reply_user_id']) ->find(); $subcomment[$key]['user_name']=$user?$user['real_name']:''; $subcomment[$key]['reply_name']=$reply?$reply['real_name']:''; } $comment[$k]['sub'] = $subcomment; } } //上拉加载更多。。。 if($page>1){ $offset = ($page-1)*$size; //评论-回复 $comment=Db::name('news_reply') ->where([ 'news_id'=>$ret['id'], 'enable'=>1, 'del'=>0, 'news_reply_id'=>0 ]) ->order('id','desc') ->limit($offset,$size) ->select(); foreach ($comment as $k=>$v){ $user=Db::name('user') ->field('real_name,head_image') ->where('id',$v['user_id']) ->find(); $comment[$k]['user_name']=$user?$user['real_name']:''; $comment[$k]['head_image']=$user?$user['real_name']:''; $comment[$k]['reply_name']=''; $subcomment = Db::name('news_reply') ->where([ 'news_id'=>$ret['id'], 'enable'=>1, 'del'=>0, 'news_reply_id'=>$v['id'] ]) ->order('id','asc') ->select(); $subcomment = $subcomment?$subcomment:[]; foreach ($subcomment as $key=>$value){ $user=Db::name('user')-> field('real_name,head_image') ->where('id',$value['user_id']) ->find(); $reply = Db::name('user') ->field('real_name,head_image') ->where('id',$value['reply_user_id']) ->find(); $subcomment[$key]['user_name']=$user?$user['real_name']:''; $subcomment[$key]['reply_name']=$reply?$reply['real_name']:''; } $comment[$k]['sub'] = $subcomment; } HelpHander::success($comment); } $data=[ 'views'=>$ret['views']+1, ]; Db::name('news') ->where('id',$newsid)->update($data); $this->assign('data',$ret); $this->assign('comment',$comment); $this->assign('userid',$this->userid); $this->assign('token',$this->token); return $this->fetch('news/details'); } //回复文章 public function replytc(){ $this->userid = $this->checktoken(); $newsid=input('newsid',0); $replyId=input('replyId',0); $replyUserId=input('replyUserId',0); $data=[ 'news_id'=>$newsid, 'content'=>trim(input('content')), 'user_id'=>$this->userid, 'enable'=>1, 'create_time'=>getTime(), 'news_reply_id'=>$replyId, 'reply_user_id' => $replyUserId ]; if(!$data['content']){ HelpHander::error('回复消息不能为空'); } $ret= Db::name('news_reply') ->insert($data); $ret? HelpHander::success([],'回复成功'): HelpHander::error('回复失败'); } //删除评论 public function delReplay(){ $id=input('id'); $data=['del'=>1]; $ret=Db::name('news_reply') ->where('id',$id) ->where('user_id',$this->userid)->update($data); if($ret){ HelpHander::success([],'删除成功'); }else{ HelpHander::error('删除失败'); } } public function like(){ $newsId=input('newsid'); $type=input('type');//1已点赞0取消点赞 if($type==0){ $data=[ 'news_id'=>$newsId, 'user_id'=>$this->userid ]; $ret=Db::name('news_like') ->insert($data); if($ret){ HelpHander::success([],'点赞成功'); }else{ HelpHander::error('点赞失败'); } } if($type==1){ $ret=Db::name('news_like') ->where([ 'news_id'=>$newsId, 'user_id'=>$this->userid ])->delete(); if($ret){ HelpHander::success([],'取消点赞成功'); }else{ HelpHander::error('取消点赞失败'); } } } public function checkToken(){ $token = input('token'); if(!$token){ $this->lo(url('/h5/index/errorPage')); } $tokenInfo = Db::name('token') ->where('token',$token) ->find(); if(empty($tokenInfo)){ $this->lo(url('/h5/index/errorPage')); } return $tokenInfo['user_id']; } public function lo($url){ header("Location: $url"); exit(); } }