ソースを参照

[智价云] 品规校验更新

tangyuanwang 2 日 前
コミット
7fc254ced3
1 ファイル変更49 行追加3 行削除
  1. 49 3
      app/Http/Controllers/Manager/Collect/Product.php

+ 49 - 3
app/Http/Controllers/Manager/Collect/Product.php

@@ -273,7 +273,7 @@ class Product extends Controller
             $all_data['company_id'] = $admin_company_id;
         }
         $data = $ProductModel->where($map)->first();
-        if (!empty($data)) {
+        if (!empty($data) && $enable_full_quantity == 1) {
             //继续校验规格是否存在
             $product_specs_tring = $all_data['product_specs'];
             $product_specs = $product_specs_tring ?  explode(',', $product_specs_tring) : '';
@@ -303,6 +303,21 @@ class Product extends Controller
                     return json_send(['code' => 'error', 'msg' => $platform_name.'存在重复的商品规格记录']);
                 }
             }
+        }else if (!empty($data) && $enable_full_quantity == 0) {
+            $platforms = $platform_string ?  explode(',', $platform_string) : '';
+            $platforms = $platforms ? array_unique($platforms) : '';
+
+            $platform_data = $ProductModel->platform_data();
+            foreach ($platforms as $platform) {
+                $product_specs_log = $ProductModel
+                    ->whereRaw("FIND_IN_SET(?, platform)", [$platform])
+                    ->where(['product_brand' => $product_brand, 'product_name' => $all_data['product_name'],'status'=>'0'])
+                    ->first();
+                $platform_name = isset($platform_data[$platform]) ? $platform_data[$platform] : '';
+                if (!empty($product_specs_log)) {
+                    return json_send(['code' => 'error', 'msg' => $platform_name.'存在重复的商品记录']);
+                }
+            }
         }
 
         // 写入数据表
@@ -371,7 +386,7 @@ class Product extends Controller
             $map['company_id'] = $admin_company_id;
         }
         $data = $ProductModel->where($map)->where('id', '!=', $id)->first();
-        if (!empty($data)) {
+        if (!empty($data) && $enable_full_quantity == 1) {
             //继续校验规格是否存在
             $product_specs_tring = $all_data['product_specs'];
             $product_specs = $product_specs_tring ?  explode(',', $product_specs_tring) : '';
@@ -402,6 +417,21 @@ class Product extends Controller
                     return json_send(['code' => 'error', 'msg' => $platform_name.'存在重复的商品规格记录']);
                 }
             }
+        }else if (!empty($data) && $enable_full_quantity == 0) {
+            $platforms = $platform_string ?  explode(',', $platform_string) : '';
+            $platforms = $platforms ? array_unique($platforms) : '';
+
+            $platform_data = $ProductModel->platform_data();
+            foreach ($platforms as $platform) {
+                $product_specs_log = $ProductModel
+                    ->whereRaw("FIND_IN_SET(?, platform)", [$platform])
+                    ->where(['product_brand' => $product_brand, 'product_name' => $all_data['product_name'],'status'=>'0'])
+                    ->first();
+                $platform_name = isset($platform_data[$platform]) ? $platform_data[$platform] : '';
+                if (!empty($product_specs_log)) {
+                    return json_send(['code' => 'error', 'msg' => $platform_name.'存在重复的商品记录']);
+                }
+            }
         }
         // 更新数据表
         $where = ['id' => $id];
@@ -460,7 +490,7 @@ class Product extends Controller
         }
         $Product = $ProductModel->where($where)->first();
         if (!$Product) return json_send(['code' => 'error', 'msg' => '记录不存在']);
-        if (!empty($Product)) {
+        if (!empty($Product) && $Product->enable_full_quantity == 1) {
             //继续校验规格是否存在
             $product_specs_tring = $Product->product_specs;
             $product_specs = $product_specs_tring ?  explode(',', $product_specs_tring) : '';
@@ -492,6 +522,22 @@ class Product extends Controller
                     return json_send(['code' => 'error', 'msg' => $platform_name.'存在重复的商品规格启用记录']);
                 }
             }
+        }else if (!empty($data) && $Product->enable_full_quantity == 0) {
+            $platform_string = $Product->platform;
+            $platforms = $platform_string ?  explode(',', $platform_string) : '';
+            $platforms = $platforms ? array_unique($platforms) : '';
+
+            $platform_data = $ProductModel->platform_data();
+            foreach ($platforms as $platform) {
+                $product_specs_log = $ProductModel
+                    ->whereRaw("FIND_IN_SET(?, platform)", [$platform])
+                    ->where(['product_brand' => $Product->product_brand, 'product_name' => $Product->product_name,'status'=>'0'])
+                    ->where('id', '!=', $id)->first();
+                $platform_name = isset($platform_data[$platform]) ? $platform_data[$platform] : '';
+                if (!empty($product_specs_log)) {
+                    return json_send(['code' => 'error', 'msg' => $platform_name.'存在重复的商品启用记录']);
+                }
+            }
         }
         // 执行修改
         $result            =  $ProductModel->changeStatus($Product, $status);