refactor: 产品购买链接上传校验同型号同平台重复问题

This commit is contained in:
2025-02-27 16:53:14 +08:00
parent 1680c046af
commit 1037b8ab90

View File

@@ -120,6 +120,15 @@ class ProductPurchaseLink
->where('platform', 'in', $platforms_name) ->where('platform', 'in', $platforms_name)
->column('id', 'platform'); ->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 = []; $data = [];
$errors = []; $errors = [];
$chunks = array_chunk($xlsx_data, 500, true); $chunks = array_chunk($xlsx_data, 500, true);
@@ -140,6 +149,10 @@ class ProductPurchaseLink
$errors[] = sprintf("第%d行型号不存在", $r); $errors[] = sprintf("第%d行型号不存在", $r);
continue; continue;
} }
if ($spu_platform_map[$it['spu'] . '_' . $it['platform']] > 1) {
$errors[] = sprintf("第%d行型号【%s】和平台【%s】有重复", $r, $it['spu'], $it['platform']);
continue;
}
$items[] = [ $items[] = [
'language_id' => request()->lang_id, 'language_id' => request()->lang_id,
'product_id' => $products_map[$it['spu']], 'product_id' => $products_map[$it['spu']],