diff --git a/app/admin/controller/v1/ProductPurchaseLink.php b/app/admin/controller/v1/ProductPurchaseLink.php index 0fa652bb..80783bb7 100644 --- a/app/admin/controller/v1/ProductPurchaseLink.php +++ b/app/admin/controller/v1/ProductPurchaseLink.php @@ -120,6 +120,15 @@ class ProductPurchaseLink ->where('platform', 'in', $platforms_name) ->column('id', 'platform'); + // 表格中spu的平台重复次数 + $spu_platform_map = []; + foreach ($xlsx_data as $v) { + if (!isset($spu_platform_map[$v['spu'] . '_' . $v['platform']])) { + $spu_platform_map[$v['spu'] . '_' . $v['platform']] = 0; + } + $spu_platform_map[$v['spu'] . '_' . $v['platform']]++; + } + $data = []; $errors = []; $chunks = array_chunk($xlsx_data, 500, true); @@ -129,7 +138,7 @@ class ProductPurchaseLink $products_map = ProductModel::language(request()->lang_id) ->where('spu', 'in', $spus) ->column('id', 'spu'); - + $items = []; foreach ($chunk as $r => $it) { if (empty($platforms_map[$it['platform']])) { @@ -140,6 +149,10 @@ class ProductPurchaseLink $errors[] = sprintf("第%d行,型号不存在", $r); continue; } + if ($spu_platform_map[$it['spu'] . '_' . $it['platform']] > 1) { + $errors[] = sprintf("第%d行,型号【%s】和平台【%s】有重复", $r, $it['spu'], $it['platform']); + continue; + } $items[] = [ 'language_id' => request()->lang_id, 'product_id' => $products_map[$it['spu']],