shopId; $where = []; $id = $this->params['id'] ?? 0; switch ($id){ case 1: $goodsCommentId = GoodsComment::alias('GC') ->where(['shop_id'=>$shopId]) ->join('goods_comment_image GCI','GC.id = GCI.comment_id') ->column('GC.id') ?: []; empty($goodsCommentId) && $goodsCommentId = []; $where[] = ['id','in',implode(',',$goodsCommentId)]; break; case 2: $where[] = ['service_comment','>',3]; break; case 3: $where[] = ['service_comment','<=',3]; break; } return $where; } /** * @notes 评价商品列表 * @return array * @author ljj * @date 2022/2/21 5:59 下午 */ public function lists(): array { $lists = GoodsComment::where(['shop_id'=>$this->shopId]) ->where($this->setWhere()) ->with(['goods_comment_image']) ->field('id,user_id,service_comment,comment,reply,create_time') ->order('id desc') ->limit($this->limitOffset, $this->limitLength) ->select()->toArray(); $userIds = array_column($lists,'user_id'); $userLists = []; if($userIds){ $userLists = User::where(['id'=>$userIds])->field('id,nickname,avatar')->select()->toArray(); $userLists = array_column($userLists,null,'id'); } foreach ($lists as $key => $goodsComment){ $lists[$key]['nickname'] = $userLists[$goodsComment['user_id']]['nickname']; $lists[$key]['avatar'] = $userLists[$goodsComment['user_id']]['avatar']; } return $lists; } /** * @notes 评价商品总数 * @return int * @author ljj * @date 2022/2/21 5:59 下午 */ public function count(): int { return GoodsComment::where(['shop_id'=>$this->shopId]) ->where($this->setWhere()) ->count(); } }