创建修改商品的时候的商户代码迁移

This commit is contained in:
liu 2024-03-19 11:36:07 +08:00
parent 62bd597ac5
commit 8bddb832cc
2 changed files with 35 additions and 11 deletions

View File

@ -66,6 +66,23 @@ class ProductRepository extends BaseRepository
public $saleType; public $saleType;
protected $dao; protected $dao;
const CREATE_PARAMS = [ const CREATE_PARAMS = [
"is_copy", "image", "slider_image", "store_name", "store_info", "keyword", "bar_code", "guarantee_template_id", "cate_id", "unit_name", "sort", "is_show", "is_good", 'is_gift_bag', 'integral_rate', "video_link", "temp_id", "content", "spec_type", "extension_type", "attr", 'mer_labels', 'delivery_way', 'delivery_free', 'param_temp_id', 'extend', 'mer_form_id',
["mer_cate_id", []],
['refund_switch', 1],
["brand_id", 0],
['once_max_count', 0],
['once_min_count', 0],
['pay_limit', 0],
["attrValue", []],
['give_coupon_ids', []],
['type', 0],
['svip_price', 0],
['svip_price_type', 0],
['params', []],
['product_type', 0],
['good_ids', []],
];
const UPDATE_PARAMS = [
"is_copy", "image", "slider_image", "store_name", "store_info", "keyword", "bar_code", "guarantee_template_id", "cate_id", "unit_name", "sort", "is_show", "is_good", 'is_gift_bag', 'integral_rate', "video_link", "temp_id", "content", "spec_type", "extension_type", "attr", 'mer_labels', 'delivery_way', 'delivery_free', 'param_temp_id', 'extend', 'mer_form_id','wholesale_price', "is_copy", "image", "slider_image", "store_name", "store_info", "keyword", "bar_code", "guarantee_template_id", "cate_id", "unit_name", "sort", "is_show", "is_good", 'is_gift_bag', 'integral_rate', "video_link", "temp_id", "content", "spec_type", "extension_type", "attr", 'mer_labels', 'delivery_way', 'delivery_free', 'param_temp_id', 'extend', 'mer_form_id','wholesale_price',
["mer_cate_id", []], ["mer_cate_id", []],
['refund_switch', 1], ['refund_switch', 1],
@ -235,15 +252,12 @@ class ProductRepository extends BaseRepository
$admin_info = $data['admin_info'] ?? []; $admin_info = $data['admin_info'] ?? [];
unset($data['admin_info']); unset($data['admin_info']);
} }
// dump($data);
$product = $this->setProduct($data); $product = $this->setProduct($data);
$product['wholesale_price'] = 11;
// halt($product);
event('product.create.before', compact('data', 'productType', 'conType')); event('product.create.before', compact('data', 'productType', 'conType'));
return Db::transaction(function () use ($data, $productType, $conType, $content, $product, $admin_info) { return Db::transaction(function () use ($data, $productType, $conType, $content, $product, $admin_info) {
$activity_id = 0; $activity_id = 0;
$result = $this->dao->create($product); $result = $this->dao->create($product);
$settleParams = $this->setAttrValue($data, $result->product_id, $productType, 0); $settleParams = $this->setAttrValue($data, $result->product_id, $productType, 0, $data['mer_id']);
$settleParams['cate'] = $this->setMerCate($data['mer_cate_id'], $result->product_id, $data['mer_id']); $settleParams['cate'] = $this->setMerCate($data['mer_cate_id'], $result->product_id, $data['mer_id']);
$settleParams['attr'] = $this->setAttr($data['attr'], $result->product_id); $settleParams['attr'] = $this->setAttr($data['attr'], $result->product_id);
if ($productType == 0) app()->make(ParameterValueRepository::class)->create($result->product_id, $data['params'] ?? [], $data['mer_id']); if ($productType == 0) app()->make(ParameterValueRepository::class)->create($result->product_id, $data['params'] ?? [], $data['mer_id']);
@ -293,7 +307,9 @@ class ProductRepository extends BaseRepository
} }
event('product.update.before', compact('id', 'data', 'merId', 'productType', 'conType')); event('product.update.before', compact('id', 'data', 'merId', 'productType', 'conType'));
$spuData = $product = $this->setProduct($data);//商品主表 $spuData = $product = $this->setProduct($data);//商品主表
$settleParams = $this->setAttrValue($data, $id, $productType, 1); $settleParams = $this->setAttrValue($data, $id, $productType, 1,$merId);
$settleParams['cate'] = $this->setMerCate($data['mer_cate_id'], $id, $merId); $settleParams['cate'] = $this->setMerCate($data['mer_cate_id'], $id, $merId);
$settleParams['attr'] = $this->setAttr($data['attr'], $id); $settleParams['attr'] = $this->setAttr($data['attr'], $id);
$content = [ $content = [
@ -405,7 +421,6 @@ class ProductRepository extends BaseRepository
unset($data['admin_info']); unset($data['admin_info']);
} }
$update_infos = $settleParams['update_infos'] ?? []; $update_infos = $settleParams['update_infos'] ?? [];
if (isset($settleParams['data'])) $data = array_merge($data, $settleParams['data']); if (isset($settleParams['data'])) $data = array_merge($data, $settleParams['data']);
$this->dao->update($id, $data); $this->dao->update($id, $data);
if (isset($data['status']) && $data['status'] !== 1) { if (isset($data['status']) && $data['status'] !== 1) {
@ -531,7 +546,7 @@ class ProductRepository extends BaseRepository
'refund_switch' => $data['refund_switch'] ?? 0, 'refund_switch' => $data['refund_switch'] ?? 0,
'mer_form_id' => $data['mer_form_id'] ?? 0, 'mer_form_id' => $data['mer_form_id'] ?? 0,
'rate' => $data['rate'] ?? 5.0, 'rate' => $data['rate'] ?? 5.0,
'wholesale_price'=>$data['wholesale_price'] ??0 'wholesale_price'=> min($data['attrValue'][0]['ot_price'],$data['attrValue'][0]['price'])
]; ];
if (isset($data['extend'])) if (isset($data['extend']))
$result['extend'] = $data['extend'] ? json_encode($data['extend'], JSON_UNESCAPED_UNICODE) : ''; $result['extend'] = $data['extend'] ? json_encode($data['extend'], JSON_UNESCAPED_UNICODE) : '';
@ -606,8 +621,11 @@ class ProductRepository extends BaseRepository
* @param int $productId * @param int $productId
* @return mixed * @return mixed
*/ */
public function setAttrValue(array $data, int $productId, int $productType, int $isUpdate = 0) public function setAttrValue(array $data, int $productId, int $productType, int $isUpdate = 0, int $merId = 0)
{ {
if ($merId <= 0) {
throw new ValidateException('添加商品商户id不能为0');
}
$extension_status = systemConfig('extension_status'); $extension_status = systemConfig('extension_status');
if ($isUpdate) { if ($isUpdate) {
$productAttrValue = app()->make(ProductAttrValueRepository::class)->search(['product_id' => $productId])->select()->toArray(); $productAttrValue = app()->make(ProductAttrValueRepository::class)->search(['product_id' => $productId])->select()->toArray();
@ -653,8 +671,13 @@ class ProductRepository extends BaseRepository
!$cdkeey_stock ?: $value['stock'] = $cdkeey_stock; !$cdkeey_stock ?: $value['stock'] = $cdkeey_stock;
} }
$new_price = $value['price'] ? (($value['price'] < 0) ? 0 : $value['price']) : 0; $new_price = $value['price'] ? (($value['price'] < 0) ? 0 : $value['price']) : 0;
$otPrice = $value['ot_price'] ? (($value['ot_price'] < 0) ? 0 : $value['ot_price']) : 0;
if(isset($value['wholesale_price'])){
$wholesale_price = $value['wholesale_price'] ? (($value['wholesale_price'] < 0) ? 0 : $value['wholesale_price']) : 0;
}else{
$wholesale_price = min($new_price,$otPrice);
}
$wholesale_price = $value['wholesale_price'] ? (($value['wholesale_price'] < 0) ? 0 : $value['wholesale_price']) : 0;
$new_stock = $value['stock'] ? (($value['stock'] < 0) ? 0 : $value['stock']) : 0; $new_stock = $value['stock'] ? (($value['stock'] < 0) ? 0 : $value['stock']) : 0;
$array = [ $array = [
'detail' => json_encode($value['detail'] ?? ''), 'detail' => json_encode($value['detail'] ?? ''),
@ -666,10 +689,11 @@ class ProductRepository extends BaseRepository
"volume" => isset($value['volume']) ? ($value['volume'] ? (($value['volume'] < 0) ? 0 : $value['volume']) : 0) : 0, "volume" => isset($value['volume']) ? ($value['volume'] ? (($value['volume'] < 0) ? 0 : $value['volume']) : 0) : 0,
"weight" => isset($value['weight']) ? ($value['weight'] ? (($value['weight'] < 0) ? 0 : $value['weight']) : 0) : 0, "weight" => isset($value['weight']) ? ($value['weight'] ? (($value['weight'] < 0) ? 0 : $value['weight']) : 0) : 0,
"stock" => $new_stock, "stock" => $new_stock,
"ot_price" => $value['ot_price'] ? (($value['ot_price'] < 0) ? 0 : $value['ot_price']) : 0, "ot_price" =>$otPrice,
"extension_one" => $extension_status ? ($value['extension_one'] ?? 0) : 0, "extension_one" => $extension_status ? ($value['extension_one'] ?? 0) : 0,
"extension_two" => $extension_status ? ($value['extension_two'] ?? 0) : 0, "extension_two" => $extension_status ? ($value['extension_two'] ?? 0) : 0,
"product_id" => $productId, "product_id" => $productId,
'mer_id' => $merId,
"type" => 0, "type" => 0,
"sku" => $sku, "sku" => $sku,
"unique" => $unique, "unique" => $unique,

View File

@ -135,7 +135,7 @@ class Product extends BaseController
*/ */
public function update($id) public function update($id)
{ {
$params = $this->request->params($this->repository::CREATE_PARAMS); $params = $this->request->params($this->repository::UPDATE_PARAMS);
$data = $this->repository->checkParams($params, $this->request->merId(), $id); $data = $this->repository->checkParams($params, $this->request->merId(), $id);
if (!$this->repository->merExists($this->request->merId(), $id)) if (!$this->repository->merExists($this->request->merId(), $id))
return app('json')->fail('数据不存在'); return app('json')->fail('数据不存在');