订单售后费用导入:按整行内容生成行键,避免同单同商品的多行被合并

This commit is contained in:
renshen 2026-10-21 13:50:33 +08:00
parent 8ba241a868
commit d93b43ba71

View File

@ -81,16 +81,10 @@ class AfterSalesCostRowRepository
*/
public static function toRecord(array $payload, ?string $importedAt = null): array
{
$rowKey = sha1(implode('|', [
(string) ($payload['shop_name'] ?? ''),
(string) ($payload['online_order_no'] ?? ''),
(string) ($payload['internal_order_no'] ?? ''),
(string) ($payload['sub_order_no'] ?? ''),
(string) ($payload['after_sales_no'] ?? ''),
(string) ($payload['product_code'] ?? ''),
(string) ($payload['product_quantity'] ?? ''),
(string) ($payload['product_amount'] ?? ''),
]));
// 以整行内容做键:同一单同一商品可能出现多行,只有完全相同的一行才合并。
ksort($payload);
$rowKey = sha1((string) json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
$now = $importedAt ?? now()->toDateTimeString();