0, 'order_no'=>$orderNo, 'item_id'=>$itemId ])->find(); if(!$data){ return false; } $data['snapshoot'] = json_decode($data['snapshoot'],true); $data = (new \app\api\model\order\Order())->limitItemField($data); return $data; } /** * 获取评价列表 * @param $userId * @param $params * @return array */ public function getList($userId,$params = []){ $rows = self::with(['user']); $where = []; if(isset($params['status']) && $params['status'] && in_array($params['status'],$this->getStatus())){ switch ($params['status']){ case 'good': $where['rate'] = ['>=' , 3]; break; case 'bad': $where['rate'] = ['<' , 3]; break; case 'img': $where['imgs'] = ['<>','']; break; } } if($userId){ $where['user_id'] = $userId; } $where['item_id'] = $params['item_id']; $where['evaluate.status'] = 1; $list = $rows ->where($where) ->order('createtime','desc') ->limit($params['limit'])->page($params['page']) ->select(); $data = []; if(!empty($list)){ foreach ($list as $index => $item){ try{ $item->getRelation('user')->visible(['nickname','avatar']); $item->visible(['content','anonymity','createtime','imgs','rate','user']); if($item['imgs']){ $imgs = explode(",",$item['imgs']); foreach ($imgs as &$img){ $img = cdnurl($img); } $item['imgs'] = $imgs; }else{ $item['imgs'] = []; } $item->user['avatar'] = cdnurl($item->user['avatar']); if($item['anonymity'] == 1){ $item->user['nickname'] = '匿名评价'; $item->user['url'] = '-'; $item->user['avatar'] = letter_avatar('匿');; } $data[] = $item; }catch (\Exception $e){} } } return $data; } /** * 获取推荐的评论列表 * @return void */ public function getRecommendList($itemId){ $data = []; $data['list'] = $this->getList(0,[ 'item_id'=>$itemId, 'limit'=>2, 'page'=>0 ]); $data['count'] = self::where([ 'item_id'=>$itemId, 'status'=>1 ])->count(); $orderItem = OrderItem::where('item_id', $itemId)->find(); if ($orderItem) { $goodsType = $orderItem['goods_type'] ?? ''; $isVirtualPay = \app\common\library\pay\VirtualPayService::isUseVirtualPay($goodsType); $data['is_virtual_pay'] = $isVirtualPay ? 1 : 0; } else { $data['is_virtual_pay'] = 0; } return $data; } public function getStatus() { return [ 'good', 'bad', 'img' ]; } public function user() { return $this->belongsTo('\app\common\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0); } }