From c762034dcac2dbdc5ac3d1033231a07815df2b9a Mon Sep 17 00:00:00 2001 From: "HESU\\HESU" <1696136552@qq.com> Date: Fri, 20 Jun 2025 09:17:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=BD=A6sku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VehicleNewAttributesController.php | 1 + .../service/VehicleNewAttributesService.php | 2 +- app/console/service/VehicleNewService.php | 126 ++++++++++++------ 3 files changed, 89 insertions(+), 40 deletions(-) diff --git a/app/console/controller/VehicleNewAttributesController.php b/app/console/controller/VehicleNewAttributesController.php index a91725b..eaf937c 100644 --- a/app/console/controller/VehicleNewAttributesController.php +++ b/app/console/controller/VehicleNewAttributesController.php @@ -62,6 +62,7 @@ class VehicleNewAttributesController extends BaseController if ($scene === 'preset') { return [ 'id' => $item['id'], + 'is_img' => $item['is_img'], 'attribute_name' => isset($item['translation']) ? $item['translation']['attribute_name'] : '', ]; } diff --git a/app/console/service/VehicleNewAttributesService.php b/app/console/service/VehicleNewAttributesService.php index 9ac4c9e..713a766 100644 --- a/app/console/service/VehicleNewAttributesService.php +++ b/app/console/service/VehicleNewAttributesService.php @@ -52,7 +52,7 @@ class VehicleNewAttributesService extends BaseService return [ 'filters' => [ ], - 'fields' => ['id','status'], + 'fields' => ['id','is_img','status'], 'relations' => [ 'translation' => ['attributes_id', 'locale', 'attribute_name'], 'value' => ['id', 'attribute_id', 'color_code', 'sort_order'], diff --git a/app/console/service/VehicleNewService.php b/app/console/service/VehicleNewService.php index de76ab2..510ce70 100644 --- a/app/console/service/VehicleNewService.php +++ b/app/console/service/VehicleNewService.php @@ -6,6 +6,8 @@ use app\console\model\VehicleNewAlbumModel; use app\console\model\VehicleNewAskedModel; use app\console\model\VehicleNewContentModel; use app\console\model\VehicleNewModel; +use app\console\model\VehicleNewSkuAttributesModel; +use app\console\model\VehicleNewSkusModel; use app\console\model\VehicleNewTraitModel; use app\mzl\common\services\BaseService; use app\mzl\modules\translation\service\TranslationService; @@ -118,11 +120,15 @@ class VehicleNewService extends BaseService unset($params['album']); $contents = $params['content']; unset($params['content']); + $skus = $params['sku']; + unset($params['sku']); $VehicleNewAskedService = new VehicleNewAskedService(new VehicleNewAskedModel()); $VehicleNewTraitService = new VehicleNewTraitService(new VehicleNewTraitModel()); $VehicleNewAlbumService = new VehicleNewAlbumService(new VehicleNewAlbumModel()); $VehicleNewContentService = new VehicleNewContentService(new VehicleNewContentModel()); + $VehicleNewSkusService = new VehicleNewSkusService(new VehicleNewSkusModel()); + $VehicleNewSkuAttributesService = new VehicleNewSkuAttributesService(new VehicleNewSkuAttributesModel()); Db::beginTransaction(); try { @@ -205,6 +211,26 @@ class VehicleNewService extends BaseService ); } + foreach ($skus as $sku) { + $sku['vehicle_id'] = $info->id; + $sku_code = sprintf("%05d", $info->id); + $sku['sku_code'] = rand(100,999).$sku_code[0].' '.substr($sku_code,1).' '.sprintf("%04d", $sku['skuAttributes'][0]['attribute_id']).' '.sprintf("%04d", $sku['skuAttributes'][0]['value_id']); + + $sku_res = $VehicleNewSkusService->create($sku); + if (!$sku_res) { + throw new BusinessException('提交失败'); + } + + $skuAttributes = $sku['skuAttributes']; + foreach ($skuAttributes as $skuAttribute) { + $skuAttribute['sku_id'] = $sku_res->id; + $skuAttribute_res = $VehicleNewSkuAttributesService->create($skuAttribute); + if (!$skuAttribute_res) { + throw new BusinessException('提交失败'); + } + } + } + Db::commit(); return true; } catch (\Throwable $th) { @@ -230,27 +256,15 @@ class VehicleNewService extends BaseService unset($params['album']); $contents = $params['content']; unset($params['content']); + $skus = $params['sku']; + unset($params['sku']); + $VehicleNewAskedService = new VehicleNewAskedService(new VehicleNewAskedModel()); $VehicleNewTraitService = new VehicleNewTraitService(new VehicleNewTraitModel()); $VehicleNewAlbumService = new VehicleNewAlbumService(new VehicleNewAlbumModel()); $VehicleNewContentService = new VehicleNewContentService(new VehicleNewContentModel()); -// foreach ($params as $ko => $vo) { -// if (in_array($ko, $albums)) { -// $album[$ko] = $vo ?? ''; -// } elseif (in_array($ko, $albums)) { -// $album[$ko] = $vo ?? ''; -// } elseif (in_array($ko, $albums)) { -// $album[$ko] = $vo ?? ''; -// } elseif (in_array($ko, $albums)) { -// $album[$ko] = $vo ?? ''; -// } elseif (in_array($ko, $albums)) { -// $album[$ko] = $vo ?? ''; -// } elseif (in_array($ko, VehicleNewModel::TRANS_FIELDS)) { -// $trans[$ko] = $vo ?? ''; -// }else{ -// $data[$ko] = $vo ?? ''; -// } -// } + $VehicleNewSkusService = new VehicleNewSkusService(new VehicleNewSkusModel()); + $VehicleNewSkuAttributesService = new VehicleNewSkuAttributesService(new VehicleNewSkuAttributesModel()); Db::beginTransaction(); try { @@ -399,30 +413,64 @@ class VehicleNewService extends BaseService ); } VehicleNewContentModel::whereNotIn('id', $contentsId)->where('vehicle_id',$id)->delete(); -// if ($album) { -// // $album['vehicle_data_id'] = $info->id; -// $albumModel = new VehicleAlbumModel(); -// if (!$albumModel->updateOrCreate( -// ['vehicle_data_id' => $id], -// $album -// )) { -// throw new BusinessException('提交失败'); -// } -// } - // $applyModel = new VehicleApplyModel(); - // if (!$applyModel->create([ - // 'vehicle_data_id' => $info->id, - // 'desc' => '提交审核' - // ])) { - // throw new BusinessException('提交失败'); - // } + $skusId = []; + foreach ($skus as $sku) { + if(!empty($sku['id'])){ + $skuId =$sku['id']; + $skusId[] =$skuId; + $skuAttributes = $sku['skuAttributes']; + unset($sku['skuAttributes']); + $sku_res = $VehicleNewSkusService->update($skuId,$sku); + if (!$sku_res) { + throw new BusinessException('提交失败5'); + } + $skuAttributeIds = []; + foreach ($skuAttributes as $skuAttribute) { + if(!empty($skuAttribute['id'])){ + $skuAttributeId = $skuAttribute['id']; + $skuAttributeIds[] =$skuAttributeId; + $skuAttribute['sku_id'] = $skuId; + $skuAttribute_res = $VehicleNewSkuAttributesService->update($skuAttributeId, $skuAttribute); + var_dump($skuAttribute_res); + if (!$skuAttribute_res) { + throw new BusinessException('提交失败4'); + } + }else{ + $skuAttribute['sku_id'] = $sku_res->id; + $skuAttribute_res = $VehicleNewSkuAttributesService->create($skuAttribute); + $skuAttributeIds[] =$skuAttribute_res->id; + if (!$skuAttribute_res) { + throw new BusinessException('提交失败3'); + } + } + } + VehicleNewSkuAttributesModel::whereNotIn('id', $skuAttributeIds)->where('sku_id',$skuId)->delete(); + }else{ + $sku['vehicle_id'] = $id; + $sku_code = sprintf("%05d", $id); + $sku['sku_code'] = rand(100,999).$sku_code[0].' '.substr($sku_code,1).' '.sprintf("%04d", $sku['skuAttributes'][0]['attribute_id']).' '.sprintf("%04d", $sku['skuAttributes'][0]['value_id']); - // if (isset($params['draft_id']) && $params['draft_id']) { - // if (!DraftsModel::where('id', $params['draft_id'])->delete()) { - // throw new BusinessException('草稿移除失败'); - // } - // } + $skuAttributes = $sku['skuAttributes']; + unset($sku['skuAttributes']); + + $sku_res = $VehicleNewSkusService->create($sku); + $skusId[] =$sku_res->id; + if (!$sku_res) { + throw new BusinessException('提交失败2'); + } + +// $skuAttributes = $sku['skuAttributes']; + foreach ($skuAttributes as $skuAttribute) { + $skuAttribute['sku_id'] = $sku_res->id; + $skuAttribute_res = $VehicleNewSkuAttributesService->create($skuAttribute); + if (!$skuAttribute_res) { + throw new BusinessException('提交失败1'); + } + } + } + VehicleNewSkusModel::whereNotIn('id', $skusId)->where('vehicle_id',$id)->delete(); + } Db::commit(); return true;