From e924c814625ef213aaa2ead526da6cf6248642ef Mon Sep 17 00:00:00 2001 From: liapples Date: Fri, 20 Aug 2021 18:00:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=9F=9F=E5=90=8D=E6=8B=BC?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E5=B9=B6=E4=B8=94=E4=BD=BF=E7=94=A8list?= =?UTF-8?q?=E4=BD=9C=E7=94=A8=E5=9F=9F=E6=9D=A5=E8=8E=B7=E5=8F=96=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/AgentProductController.php | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/app/Http/Controllers/Api/AgentProductController.php b/app/Http/Controllers/Api/AgentProductController.php index 59c2f0d..38705c7 100644 --- a/app/Http/Controllers/Api/AgentProductController.php +++ b/app/Http/Controllers/Api/AgentProductController.php @@ -5,6 +5,7 @@ use App\Common\ProductStatus; use App\Http\Controllers\Controller; use App\Models\AgentProduct; use App\Models\UserFav; +use Illuminate\Support\Facades\Storage; /** * 代理商产品 @@ -23,15 +24,9 @@ class AgentProductController extends Controller $where['agent_id'] = $this->agent_id; - $list = AgentProduct::where($where) - ->with('product:id,title,pictures') - ->whereHas('product', function ($query) { - return $query->where('status', ProductStatus::ON_SALE); - }) - ->select('id', 'sale', 'product_id', 'price', 'original_price') - ->orderBy('id', 'DESC') - ->simplePaginate(); - return $this->success($list); + $list = AgentProduct::list()->where($where)->simplePaginate(); + + return $this->success($this->paginatePicAddHost($list)); } // 产品详情 @@ -45,14 +40,18 @@ class AgentProductController extends Controller ->with('coupon:tag,agent_product_id') ->with('fav:agent_product_id') ->whereHas('product', function ($query) { - return $query->where('status', ProductStatus::ON_SALE); + return $query->where('status', ProductStatus::ON_SALE)->where('stock', '>', 0); }) + ->where('stock', '>', 0) ->firstWhere(['id' => $id, 'agent_id' => $this->agent_id, 'status' => ProductStatus::ON_SALE]); - if (!$agent_product || !$agent_product->product) { + if (!$agent_product) { return $this->error('产品不存在或已下架'); } + $prefix = Storage::disk('public')->url(''); + $agent_product->product->pictures = array_map(fn($item) => ($prefix . $item), $agent_product->product->pictures); + $agent_product->is_collect = !is_null($agent_product->fav); //判断是否收藏 //计算折扣 if ($agent_product->price < $agent_product->original_price) { @@ -61,7 +60,6 @@ class AgentProductController extends Controller $agent_product->cost = ''; } - unset($agent_product->agent_id, $agent_product->status, $agent_product->deleted_at); return $this->success($agent_product); } @@ -70,15 +68,7 @@ class AgentProductController extends Controller public function guessLike() { // TODO 此处需要再优化排序规则,并增加广告功能 - $list = AgentProduct::where('agent_id', $this->agent_id) - ->with('product:id,title,pictures') - ->whereHas('product', function ($query) { - return $query->where('status', ProductStatus::ON_SALE); - }) - ->select('id', 'sale', 'product_id', 'price', 'original_price') - ->orderBy('id', 'DESC') - ->simplePaginate(); - return $this->success($list); + return $this->index(); } //【我的】页面下方推荐 @@ -94,4 +84,16 @@ class AgentProductController extends Controller //TODO 具体排序规则,后期再做修改 return $this->index(); } + + //分页列表产品图片加域名 + private function paginatePicAddHost($list) + { + if (!$list->isEmpty()) { + $prefix = Storage::disk('public')->url(''); + foreach ($list->items() as $k=>&$v) { + $v->product->pictures = array_map(fn($item) => ($prefix . $item), $v->product->pictures); + } + } + return $list; + } }