<?php namespace wstmart\wechat\model; use think\Db; /** * ============================================================================ * 文章类 */ class Articles extends Base{ /** * 获取咨询中中心所有文章 */ public function getArticles(){ // 获取咨询中心下的所有分类id $catId = input('catId'); $rs = $this->alias('a') ->field('a.*') ->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner') ->where(['a.catId'=>$catId, 'a.isShow'=>1, 'a.dataFlag'=>1, 'ac.dataFlag'=>1, 'ac.isShow'=>1, 'ac.catType'=>0, ]) ->order('createTime desc') ->paginate((int)input('pagesize')); return $rs; } /** * 根据id获取资讯文章 */ public function getNewsById(){ $id = (int)input('id'); WSTArticleVisitorNum($id);// 统计文章访问量 $article = $this->alias('a') ->field('a.*') ->join('__ARTICLE_CATS__ ac','a.catId=ac.catId','inner') ->where('ac.catType=0 and a.dataFlag=1 and a.isShow=1') ->cache(true) ->find($id); // 图片延迟加载 $article['articleContent']=htmlspecialchars_decode($article['articleContent']); $rule = '/<img src="\/(wstmartp.*?)"/'; preg_match_all($rule, $article['articleContent'],$images); foreach($images[0] as $k=>$v){ $article['articleContent'] = str_replace($v, "<img src='/".WSTImg($images[1][$k],3)."'", $article['articleContent']); } $articleId = cookie("wechat_like_articleId"); $articleId = is_array($articleId)?$articleId:[]; $rc = !empty($articleId)?in_array($id,$articleId):''; if($rc){ $article['likeState'] = 1; }else{ $article['likeState'] = 0; } return $article; } /** * 点赞 */ public function like(){ $id = input("param.id/d"); //判断记录是否存在 $articleId = cookie("wechat_like_articleId"); $articleId = is_array($articleId)?$articleId:[]; $rc = !empty($articleId)?in_array($id,$articleId):''; if($rc)return WSTReturn("已点赞成功", -1); $rs = $this->where(['isShow'=>1,'dataFlag'=>1,'articleId'=>$id])->setInc('likeNum',1); //判断是否点赞成功 if(false !== $rs){ array_push($articleId,$id); cookie("wechat_like_articleId",$articleId,25920000); return WSTReturn("点赞成功", 1); }else{ return WSTReturn($this->getError(),-1); } } /** * 获取资讯中心的子集分类 */ public function getChildInfos(){ $infos = cache('NEW_INFOS'); $i = 0; if(!$infos){ $data = Db::name('article_cats')->cache(true)->select(); foreach($data as $k=>$v){ if($v['parentId']== 8){ $infos[$i]['catId'] = $v['catId']; $infos[$i]['catName'] = $v['catName']; $i++; } } cache('NEW_INFOS',$infos); } return $infos; } }