'timestamp:Y-m-d H:i', ]; /** * Common: 判断当前用户是否对该文章点赞 * Author: wu-hui * Time: 2022/11/03 15:11 * @param $articleId * @param $memberId * @return bool */ public function isFabulous($articleId,$memberId){ return (int)$this ->where('article_id',$articleId) ->where('member_id',$memberId) ->value('id'); } /** * Common: 点赞 || 取消点赞 * Author: wu-hui * Time: 2022/11/03 15:18 * @param $id * @param $memberId * @return array */ public function fabulousOperation($id,$memberId){ $articleModel = new Article(); $this->startTrans(); try{ $fabulousId = $this->isFabulous($id,$memberId); if($fabulousId > 0) { // 已点赞 取消点赞 $this->where('id',$fabulousId)->delete(); // 减少点赞数量 $articleModel->where('article_id', $id)->dec('dianzan_num', 1)->update(); }else{ // 未点赞 进行点赞操作 $data = [ 'article_id' => $id, 'member_id' => $memberId, 'create_time' => time(), ]; $this->insert($data); // 增加点赞数量 $articleModel->where('article_id', $id)->inc('dianzan_num', 1)->update(); } $this->commit(); return $this->success(); }catch(Exception $e){ $this->rollback(); return $this->error('',$e->getMessage()); } } /** * Common: 获取用户点赞记录 * Author: wu-hui * Time: 2022/11/07 14:29 * @param $memberId * @return array */ public function record($memberId){ // 参数获取 $page = input('page',1); $pageSize = input('page_size',PAGE_LIST_ROWS); $searchText = (string)trim(input('search_text')); // 列表获取 $result = $this->alias('af') ->field('a.article_id,a.article_title,a.cover_img,af.create_time as time') ->join('article a','a.article_id = af.article_id','LEFT') ->where('a.status',1) ->where('a.site_id',$this->site_id) ->where('af.member_id',$memberId) ->when(strlen($searchText) > 0,function($query) use ($searchText){ $query->where('a.article_title','like',"%{$searchText}%"); }) ->order('af.create_time','DESC') ->paginate(['list_rows' => $pageSize,'page' => $page]); if($result) $result = $result->toArray(); $list = [ 'count' => $result['total'], 'list' => $result['data'], 'page_count' => $result['last_page'], ]; return $this->success($list); } }