From a3e930d63dbf09431a5742fff6f101f61204cefa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=98=8A=E5=A4=A9?= <442384644@qq.com> Date: Wed, 14 Oct 2026 18:04:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=95=86=E5=93=81):=20=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E4=B8=8E=20DIY=20=E5=95=86=E5=93=81=E5=88=97=E8=A1=A8=E5=88=97?= =?UTF-8?q?=E5=90=8D=E5=AF=B9=E9=BD=90=E4=B8=AD=E5=8F=B0=E8=A1=A8=E5=B9=B6?= =?UTF-8?q?=E6=8B=BC=E6=8E=A5=E5=9B=BE=E7=89=87=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit groom 指定/分类/标签、热销榜单、DIY 五处 field 仍写旧表列名(store_name/store_info/activity)必炸 1054,统一改 name/intro 别名并删 activity;推荐商品图片出口拼站点域名 --- backend/app/dao/product/CenterProductDao.php | 4 ++-- backend/app/services/diy/DiyProServices.php | 10 +++++----- backend/app/services/product/CenterProductServices.php | 6 +++++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/backend/app/dao/product/CenterProductDao.php b/backend/app/dao/product/CenterProductDao.php index 86a190d98..17123cc87 100644 --- a/backend/app/dao/product/CenterProductDao.php +++ b/backend/app/dao/product/CenterProductDao.php @@ -338,7 +338,7 @@ class CenterProductDao extends BaseDao implements ProductQueryInterface $where['is_show'] = 1; $where['is_del'] = 0; return $this->search($where)->with(['couponId', 'star']) - ->field(['id', 'image', 'store_name', 'store_info', 'cate_id', 'price', 'original_price as ot_price', 'IFNULL(sales,0) + IFNULL(virtual_sales,0) as sales', 'unit_name', 'sort_order as sort', 'activity', 'stock']) + ->field(['id', 'image', 'name as store_name', 'intro as store_info', 'cate_id', 'price', 'vip_price', 'original_price as ot_price', 'IFNULL(sales,0) + IFNULL(virtual_sales,0) as sales', 'unit_name', 'sort_order as sort', 'stock']) ->when($num, function ($query) use ($num) { $query->limit($num); }) @@ -385,7 +385,7 @@ class CenterProductDao extends BaseDao implements ProductQueryInterface $where['is_show'] = 1; $where['is_del'] = 0; // is_hot 字段已删除,热销榜单直接按销量排序 - return $this->search($where)->field(['IFNULL(sales,0) + IFNULL(virtual_sales,0) as sales', 'store_name', 'image', 'id', 'price', 'original_price as ot_price', 'stock']) + return $this->search($where)->field(['IFNULL(sales,0) + IFNULL(virtual_sales,0) as sales', 'name as store_name', 'image', 'id', 'price', 'original_price as ot_price', 'stock']) ->when($page && $limit, function ($query) use ($page, $limit) { $query->page($page, $limit); }) diff --git a/backend/app/services/diy/DiyProServices.php b/backend/app/services/diy/DiyProServices.php index d208a015b..cafb5ff7f 100644 --- a/backend/app/services/diy/DiyProServices.php +++ b/backend/app/services/diy/DiyProServices.php @@ -88,17 +88,17 @@ class DiyProServices extends BaseService switch ($typeConfig) { case 1://指定商品 $where['ids'] = $item['goodsList']['ids'] ?? []; - $item['goodsList']['list'] = $productServices->getSearchList($where, 0, 0, ['id,store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,activity,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); + $item['goodsList']['list'] = $productServices->getSearchList($where, 0, 0, ['id,name as store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); break; case 3://指定分类 $cateIds = $item['classList']['classVal'] ?? []; if ($cateIds) $where['cate_id'] = $cateIds; - $item['productList']['list'] = $productServices->getSearchList($where, 0, $num, ['id,store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,activity,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); + $item['productList']['list'] = $productServices->getSearchList($where, 0, $num, ['id,name as store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); break; case 4://商品标签 $storeLabelIds = $item['goodsLabel']['activeValue'] ?? []; if ($storeLabelIds) $where['store_label_id'] = $storeLabelIds; - $item['productList']['list'] = $productServices->getSearchList($where, 0, $num, ['id,store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,activity,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); + $item['productList']['list'] = $productServices->getSearchList($where, 0, $num, ['id,name as store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); break; } break; @@ -126,7 +126,7 @@ class DiyProServices extends BaseService } if ($selectValue == 1 && isset($tabValue['goodsList']['ids']) && count($tabValue['goodsList']['ids'])) {//手动选商品 $where['ids'] = $tabValue['goodsList']['ids']; - $tabValue['goodsList']['list'] = $productServices->getSearchList($where, 0, 0, ['id,store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,activity,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); + $tabValue['goodsList']['list'] = $productServices->getSearchList($where, 0, 0, ['id,name as store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); } elseif ((isset($tabValue['selectConfig']['activeValue']) && $tabValue['selectConfig']['activeValue']) || (isset($tabValue['goodsLabel']['activeValue']) && $tabValue['goodsLabel']['activeValue'])) {//选分类 、标签 $where['cate_id'] = $tabValue['selectConfig']['activeValue'] ?? 0; $storeLabelIds = $tabValue['goodsLabel']['activeValue'] ?? []; @@ -135,7 +135,7 @@ class DiyProServices extends BaseService } $where['is_show'] = 1; $where['is_del'] = 0; - $tabValue['goodsList']['list'] = $productServices->getSearchList($where, 0, $num, ['id,store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,activity,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); + $tabValue['goodsList']['list'] = $productServices->getSearchList($where, 0, $num, ['id,name as store_name,cate_id,image,IFNULL(sales, 0) + IFNULL(virtual_sales, 0) as sales,price,stock,original_price as ot_price,spec_type,recommend_image,unit_name,is_vip,vip_price']); } } $item['tabConfig']['list'] = $list; diff --git a/backend/app/services/product/CenterProductServices.php b/backend/app/services/product/CenterProductServices.php index 4ba9f2f73..14f266a12 100644 --- a/backend/app/services/product/CenterProductServices.php +++ b/backend/app/services/product/CenterProductServices.php @@ -3140,7 +3140,11 @@ class CenterProductServices extends BaseService } elseif ($field === 'is_vip') { $where['is_vip'] = 1; } - return $this->dao->getRecommendProduct($where, is_string($field) ? $field : '', $num, 0, 0); + $list = $this->dao->getRecommendProduct($where, is_string($field) ? $field : '', $num, 0, 0); + foreach ($list as &$item) { + $item['image'] = set_file_url($item['image']); + } + return $list; } /**