diff --git a/app/Cache/Redis/Api/GoodCache.php b/app/Cache/Redis/Api/GoodCache.php index dd39bf5..96e898f 100644 --- a/app/Cache/Redis/Api/GoodCache.php +++ b/app/Cache/Redis/Api/GoodCache.php @@ -168,6 +168,7 @@ class GoodCache private function buildData(&$list): mixed { $spuIds = array_column($list, 'id'); + $spuImage = array_column($list, 'image_id'); $skuList = $this->skuModel->getListBySpuIds($spuIds); @@ -176,7 +177,7 @@ class GoodCache $skuList = $skuList->toArray(); $imageIdArr = array_column($skuList,'image_ids'); - $imageList = $this->getOssObjects($imageIdArr); + $imageList = $this->getOssObjects(array_merge($spuImage,$imageIdArr)); $chefIds = array_column($skuList,'chef_id'); $chefList = $this->adminUserModel->getDataByIds($chefIds); @@ -209,6 +210,7 @@ class GoodCache foreach ($list as &$item) { $item['sku_list'] = $skuListArr[$item['id']] ?? []; + $item['spu_image_url'] = $imageList[$item['image_id']] ?? ''; $item['image_list'] = $imageArr[$item['id']] ?? []; $item['price'] = !empty($price[$item['id']]) ? (min($price[$item['id']]) ?? 0) : 0; } diff --git a/app/Model/Spu.php b/app/Model/Spu.php index c2978fe..5af9274 100644 --- a/app/Model/Spu.php +++ b/app/Model/Spu.php @@ -17,6 +17,7 @@ use Hyperf\DbConnection\Model\Model; * @property int $kitchen_id * @property int $chef_id * @property int $caterer_id + * @property int $image_id * @property string $title * @property string $sub_title * @property int $category_id @@ -85,7 +86,7 @@ class Spu extends Model ->where('type',$type) ->where('saleable',GoodCode::LISTING) ->orderBy('sort') - ->select(['id','cycle_id','chef_id','title','title','sub_title','category_id','favorable']) + ->select(['id','cycle_id','chef_id','title','title','sub_title','category_id','favorable','image_id']) ->get(); } diff --git a/app/Service/Admin/Good/SpuService.php b/app/Service/Admin/Good/SpuService.php index e3a5e04..3e6881f 100644 --- a/app/Service/Admin/Good/SpuService.php +++ b/app/Service/Admin/Good/SpuService.php @@ -156,6 +156,9 @@ class SpuService extends BaseService if (!empty($info)) throw new ErrException('该菜品在当前城市已存在'); + $imageId = $this->request->input('image_id'); + + $this->updateOssObjects([$imageId]); $insertModel = new Spu(); @@ -170,6 +173,7 @@ class SpuService extends BaseService $insertModel->saleable = $this->request->input('saleable'); $insertModel->type = $this->request->input('type'); $insertModel->sort = $this->request->input('sort'); + $insertModel->image_id = $imageId; $insertModel->favorable = GoodCode::NOT_FAVORABLE; if (!$insertModel->save()) throw new ErrException('添加菜品失败'); @@ -233,6 +237,8 @@ class SpuService extends BaseService $this->checkInfo(); + + $kitchenId = (int)$this->request->input('kitchen_id'); $oldKitchenId = (int)$info->kitchen_id; @@ -245,6 +251,12 @@ class SpuService extends BaseService $info->saleable = $this->request->input('saleable'); $info->type = $this->request->input('type'); $info->sort = $this->request->input('sort'); + $requestOssId = $this->request->input('image_id',0); + if ($requestOssId != $info->image_id) { + $info->image_id = $requestOssId; + $this->updateOssObjects([$requestOssId]); + $this->updateOssObjectsDisable([$info->image_ids]); + } if (!$info->save()) throw new ErrException('修改菜品失败');