', '']; } // 商家名称 if(isset($get['shop_name']) && !empty($get['shop_name'])) { $where[] = ['s.name', 'like', '%'. trim($get['shop_name']) . '%']; } // 评价信息 if(isset($get['search_word']) && !empty($get['search_word'])) { switch($get['search_type']) { case 'name': $where[] = ['g.name', 'like', '%'. trim($get['search_word']) . '%']; break; case 'sn': $where[] = ['u.sn', '=', trim($get['search_word'])]; break; case 'nickname': $where[] = ['u.nickname', '=', trim($get['search_word'])]; break; } } // 评价等级 if(isset($get['goods_comment']) && !empty($get['goods_comment'])) { switch ($get['goods_comment']) { case 1: $where[] = ['gc.goods_comment', '>', 3]; break; case 2: $where[] = ['gc.goods_comment', '=', 3]; break; case 3: $where[] = ['gc.goods_comment', '<', 3]; break; } } // 显示状态 if(isset($get['status']) && !empty($get['status'])) { switch ($get['status']) { case 1: $where[] = ['gc.status', '=', 1]; break; case 2: // 隐藏状态 前端不使用0的原因:empty()时0会被认为false $where[] = ['gc.status', '=', 0]; break; } } // 日期范围 if(isset($get['start_end']) && !empty($get['start_end'])) { $arr = explode('~', $get['start_end']); $start_time = strtotime($arr[0]); $end_time = strtotime($arr[1]); $where[] = ['gc.create_time', '>=', $start_time]; $where[] = ['gc.create_time', '<=', $end_time]; } $lists = GoodsComment::alias('gc') ->with(['goods_comment_image']) ->field('gc.id,gc.goods_comment,gc.goods_comment as goods_comment_desc,gc.comment,gc.reply,gc.status,gc.status as status_desc,gc.create_time,u.sn,u.nickname,u.avatar,u.level,g.name as goods_name,g.image as goods_image,gi.image as item_image,gi.spec_value_str,s.id as shop_id,s.name as shop_name,s.type as shop_type,s.logo as shop_logo') ->leftJoin('user u', 'u.id=gc.user_id') ->leftJoin('goods g', 'g.id=gc.goods_id') ->leftJoin('goods_item gi', 'gi.id=gc.item_id') ->leftJoin('shop s', 's.id=gc.shop_id') ->where($where) ->order('gc.create_time', 'desc') ->page($get['page'], $get['limit']) ->select() ->toArray(); $count = GoodsComment::alias('gc') ->field('gc.id,gc.goods_comment,gc.goods_comment as goods_comment_desc,gc.comment,gc.reply,gc.status,gc.status as status_desc,gc.create_time,u.sn,u.nickname,u.avatar,u.level,g.name as goods_name,g.image as goods_image,gi.image as item_image,gi.spec_value_str') ->leftJoin('user u', 'u.id=gc.user_id') ->leftJoin('goods g', 'g.id=gc.goods_id') ->leftJoin('goods_item gi', 'gi.id=gc.item_id') ->leftJoin('shop s', 's.id=gc.shop_id') ->where($where) ->count(); $levelArr = UserLevel::where('del', 0)->column('name', 'id'); $shopTypeArr = [1=>'官方自营', 2=>'入驻商家']; foreach($lists as &$item) { // 头像 $item['type'] = $get['type']; // 头像 $item['avatar'] = UrlServer::getFileUrl($item['avatar']); // 商家图标 $item['shop_logo'] = empty($item['shop_logo']) ? '' : UrlServer::getFileUrl($item['shop_logo']); $item['goods_image'] = empty($item['goods_image']) ? '' : UrlServer::getFileUrl($item['goods_image']); $item['item_image'] = empty($item['item_image']) ? '' : UrlServer::getFileUrl($item['item_image']); // 会员等级 $item['levelName'] = $levelArr[$item['level']] ?? '无等级'; // 评价图片 $item['comment_image'] = array_column($item['goods_comment_image'], 'uri'); foreach($item['comment_image'] as $key => $subItem) { $item['comment_image'][$key] = UrlServer::getFileUrl($subItem); } // 商家类型 $item['shop_type_desc'] = $shopTypeArr[$item['shop_type']]; } return [ 'count' => $count, 'lists' => $lists ]; } public static function changeStatus($post) { try{ $goodsComment = GoodsComment::where('id', $post['id'])->findOrEmpty(); if($goodsComment->isEmpty()) { throw new \think\Exception('评论不存在'); } $goodsComment->status = $goodsComment->status ? 0 : 1; $goodsComment->update_time = time(); $goodsComment->save(); return true; }catch(\Exception $e) { self::$error = $e->getMessage(); return false; } } public static function del($post) { try{ $goodsComment = GoodsComment::where('id', $post['id'])->findOrEmpty(); if($goodsComment->isEmpty()) { throw new \think\Exception('评论不存在'); } $goodsComment->del = 1; $goodsComment->update_time = time(); $goodsComment->save(); return true; }catch(\Exception $e) { self::$error = $e->getMessage(); return false; } } }