Merge branch 'feature/vehicle_new_sku' into develop

This commit is contained in:
2025-06-20 09:17:58 +08:00
3 changed files with 89 additions and 40 deletions
@@ -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'] : '',
];
}
@@ -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'],
+87 -39
View File
@@ -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;
@@ -120,11 +122,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 {
@@ -207,6 +213,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) {
@@ -232,27 +258,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 {
@@ -401,30 +415,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;