From 06b0647fc4576ffdbcb00295fcae7ceab49ec4d4 Mon Sep 17 00:00:00 2001 From: mzl Date: Thu, 6 Aug 2026 15:01:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=87=E8=B4=A7=E5=8D=95=E8=BD=A6?= =?UTF-8?q?=E8=BE=86=E6=98=8E=E7=BB=86=E6=94=AF=E6=8C=81=20attachment=20?= =?UTF-8?q?=E9=99=84=E4=BB=B6=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按前端对接文档,stock_order_items 每辆车支持附件 [{url,original_name}]: - 模型 StockOrderItems:fillable 增加 attachment,新增 $casts=['attachment'=>'array'] (写自动 json_encode 落库、读自动 decode 回显) - processVehicleItems:create 前归一化 attachment 为数组(store/update 共用此路径) - generateVehicleUniqueId:排除 attachment,避免附件影响车辆去重/数量 show/detail 经模型 items 关系 + cast 自动回显 attachment;字段已由前端在库表就绪。 Co-Authored-By: Claude --- app/common/model/StockOrderItems.php | 9 ++++++++- app/common/service/StockOrdersService.php | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/common/model/StockOrderItems.php b/app/common/model/StockOrderItems.php index f45c532..34d6934 100644 --- a/app/common/model/StockOrderItems.php +++ b/app/common/model/StockOrderItems.php @@ -45,7 +45,14 @@ class StockOrderItems extends Model 'id', 'order_id', 'product_code', 'sku_id', 'sku_snapshot', 'model_snapshot', 'quantity', 'color_interior_code', 'color_interior_snapshot', 'color_exterior_code', 'color_exterior_snapshot', 'remark', 'vin', 'created_at', 'updated_at', - 'mileage', 'unique_id' + 'mileage', 'unique_id', 'attachment' + ]; + + /** + * 字段类型转换:attachment 以 JSON 数组存取(写自动 json_encode、读自动 decode) + */ + protected $casts = [ + 'attachment' => 'array', ]; /** diff --git a/app/common/service/StockOrdersService.php b/app/common/service/StockOrdersService.php index 3f72586..cab4fcb 100644 --- a/app/common/service/StockOrdersService.php +++ b/app/common/service/StockOrdersService.php @@ -644,6 +644,8 @@ class StockOrdersService foreach ($vehList as $veh) { $veh['order_id'] = $order->id; $veh['unique_id'] = $this->generateVehicleUniqueId($veh); + // 车辆附件:归一化数组(由模型 attachment=>'array' cast 自动序列化为 JSON 落库) + $veh['attachment'] = is_array($veh['attachment'] ?? null) ? array_values($veh['attachment']) : []; $item = StockOrderItems::create($veh); @@ -667,7 +669,7 @@ class StockOrdersService */ private function generateVehicleUniqueId(array $veh): string { - $keysToRemove = ['remark', 'modify_list', 'order_id']; + $keysToRemove = ['remark', 'modify_list', 'order_id', 'attachment']; $array = array_diff_key($veh, array_flip($keysToRemove)); $uniqueIdStr = json_encode($array); return md5($uniqueIdStr);