新车sku

This commit is contained in:
2025-06-20 09:17:14 +08:00
parent 43a3d4037f
commit c762034dca
3 changed files with 89 additions and 40 deletions
@@ -62,6 +62,7 @@ class VehicleNewAttributesController extends BaseController
if ($scene === 'preset') { if ($scene === 'preset') {
return [ return [
'id' => $item['id'], 'id' => $item['id'],
'is_img' => $item['is_img'],
'attribute_name' => isset($item['translation']) ? $item['translation']['attribute_name'] : '', 'attribute_name' => isset($item['translation']) ? $item['translation']['attribute_name'] : '',
]; ];
} }
@@ -52,7 +52,7 @@ class VehicleNewAttributesService extends BaseService
return [ return [
'filters' => [ 'filters' => [
], ],
'fields' => ['id','status'], 'fields' => ['id','is_img','status'],
'relations' => [ 'relations' => [
'translation' => ['attributes_id', 'locale', 'attribute_name'], 'translation' => ['attributes_id', 'locale', 'attribute_name'],
'value' => ['id', 'attribute_id', 'color_code', 'sort_order'], 'value' => ['id', 'attribute_id', 'color_code', 'sort_order'],
+87 -39
View File
@@ -6,6 +6,8 @@ use app\console\model\VehicleNewAlbumModel;
use app\console\model\VehicleNewAskedModel; use app\console\model\VehicleNewAskedModel;
use app\console\model\VehicleNewContentModel; use app\console\model\VehicleNewContentModel;
use app\console\model\VehicleNewModel; use app\console\model\VehicleNewModel;
use app\console\model\VehicleNewSkuAttributesModel;
use app\console\model\VehicleNewSkusModel;
use app\console\model\VehicleNewTraitModel; use app\console\model\VehicleNewTraitModel;
use app\mzl\common\services\BaseService; use app\mzl\common\services\BaseService;
use app\mzl\modules\translation\service\TranslationService; use app\mzl\modules\translation\service\TranslationService;
@@ -118,11 +120,15 @@ class VehicleNewService extends BaseService
unset($params['album']); unset($params['album']);
$contents = $params['content']; $contents = $params['content'];
unset($params['content']); unset($params['content']);
$skus = $params['sku'];
unset($params['sku']);
$VehicleNewAskedService = new VehicleNewAskedService(new VehicleNewAskedModel()); $VehicleNewAskedService = new VehicleNewAskedService(new VehicleNewAskedModel());
$VehicleNewTraitService = new VehicleNewTraitService(new VehicleNewTraitModel()); $VehicleNewTraitService = new VehicleNewTraitService(new VehicleNewTraitModel());
$VehicleNewAlbumService = new VehicleNewAlbumService(new VehicleNewAlbumModel()); $VehicleNewAlbumService = new VehicleNewAlbumService(new VehicleNewAlbumModel());
$VehicleNewContentService = new VehicleNewContentService(new VehicleNewContentModel()); $VehicleNewContentService = new VehicleNewContentService(new VehicleNewContentModel());
$VehicleNewSkusService = new VehicleNewSkusService(new VehicleNewSkusModel());
$VehicleNewSkuAttributesService = new VehicleNewSkuAttributesService(new VehicleNewSkuAttributesModel());
Db::beginTransaction(); Db::beginTransaction();
try { 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(); Db::commit();
return true; return true;
} catch (\Throwable $th) { } catch (\Throwable $th) {
@@ -230,27 +256,15 @@ class VehicleNewService extends BaseService
unset($params['album']); unset($params['album']);
$contents = $params['content']; $contents = $params['content'];
unset($params['content']); unset($params['content']);
$skus = $params['sku'];
unset($params['sku']);
$VehicleNewAskedService = new VehicleNewAskedService(new VehicleNewAskedModel()); $VehicleNewAskedService = new VehicleNewAskedService(new VehicleNewAskedModel());
$VehicleNewTraitService = new VehicleNewTraitService(new VehicleNewTraitModel()); $VehicleNewTraitService = new VehicleNewTraitService(new VehicleNewTraitModel());
$VehicleNewAlbumService = new VehicleNewAlbumService(new VehicleNewAlbumModel()); $VehicleNewAlbumService = new VehicleNewAlbumService(new VehicleNewAlbumModel());
$VehicleNewContentService = new VehicleNewContentService(new VehicleNewContentModel()); $VehicleNewContentService = new VehicleNewContentService(new VehicleNewContentModel());
// foreach ($params as $ko => $vo) { $VehicleNewSkusService = new VehicleNewSkusService(new VehicleNewSkusModel());
// if (in_array($ko, $albums)) { $VehicleNewSkuAttributesService = new VehicleNewSkuAttributesService(new VehicleNewSkuAttributesModel());
// $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 ?? '';
// }
// }
Db::beginTransaction(); Db::beginTransaction();
try { try {
@@ -399,30 +413,64 @@ class VehicleNewService extends BaseService
); );
} }
VehicleNewContentModel::whereNotIn('id', $contentsId)->where('vehicle_id',$id)->delete(); 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(); $skusId = [];
// if (!$applyModel->create([ foreach ($skus as $sku) {
// 'vehicle_data_id' => $info->id, if(!empty($sku['id'])){
// 'desc' => '提交审核' $skuId =$sku['id'];
// ])) { $skusId[] =$skuId;
// throw new BusinessException('提交失败'); $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']) { $skuAttributes = $sku['skuAttributes'];
// if (!DraftsModel::where('id', $params['draft_id'])->delete()) { unset($sku['skuAttributes']);
// throw new BusinessException('草稿移除失败');
// } $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(); Db::commit();
return true; return true;