|
|
@@ -237,6 +237,8 @@ class Product extends Controller
|
|
|
$all_data = request()->all();
|
|
|
$product_brand = request('product_brand', '');
|
|
|
$product_keyword = request('product_keyword', '');
|
|
|
+ $platform_string = $all_data['platform'];
|
|
|
+ if(empty($platform_string)) return json_send(['code' => 'error', 'msg' => '平台不能为空']);
|
|
|
$all_data['product_brand'] = $product_brand;
|
|
|
$all_data['product_keyword'] = $product_keyword;
|
|
|
if (trim($product_keyword) != '') {
|
|
|
@@ -262,7 +264,7 @@ class Product extends Controller
|
|
|
if ($all_data['sampling_start_time'] && strtotime(date('Y-m-d', $all_data['sampling_start_time']) . '23:59:59') < time()) return json_send(['code' => 'error', 'msg' => '采集开始时间必须大于当前时间']);
|
|
|
if ($all_data['sampling_end_time'] && $all_data['sampling_end_time'] < time()) return json_send(['code' => 'error', 'msg' => '采集结束时间必须大于当前时间']);
|
|
|
//查询是否存在
|
|
|
- $map = ['product_brand' => $product_brand, 'product_name' => $all_data['product_name'], 'product_specs' => $all_data['product_specs'], 'platform' => $all_data['platform']];
|
|
|
+ $map = ['product_brand' => $product_brand, 'product_name' => $all_data['product_name']];
|
|
|
if ($is_admin != 1 && $company_id != 0) {
|
|
|
$map['company_id'] = $company_id;
|
|
|
$all_data['company_id'] = $company_id;
|
|
|
@@ -271,7 +273,38 @@ class Product extends Controller
|
|
|
$all_data['company_id'] = $admin_company_id;
|
|
|
}
|
|
|
$data = $ProductModel->where($map)->first();
|
|
|
- if ($data) return json_send(['code' => 'error', 'msg' => '记录已存在']);
|
|
|
+ if (!empty($data)) {
|
|
|
+ //继续校验规格是否存在
|
|
|
+ $product_specs_tring = $all_data['product_specs'];
|
|
|
+ $product_specs = $product_specs_tring ? explode(',', $product_specs_tring) : '';
|
|
|
+ $product_specs = $product_specs ? array_unique($product_specs) : '';
|
|
|
+ //继续校平台是否存在
|
|
|
+
|
|
|
+ $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']])
|
|
|
+ ->where(function ($query) use ($product_specs) {
|
|
|
+ // 平台条件(固定)
|
|
|
+ $query->where(function ($query_li) use ($product_specs) {
|
|
|
+
|
|
|
+ foreach ($product_specs as $product_spec) {
|
|
|
+ if (empty($product_specs)) continue;
|
|
|
+ $query_li->orWhereRaw("FIND_IN_SET(?, product_specs)", [$product_spec]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })->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->addProduct($all_data);
|
|
|
// 如果操作失败
|
|
|
@@ -304,6 +337,8 @@ class Product extends Controller
|
|
|
$all_data = request()->all();
|
|
|
$product_brand = request('product_brand', '');
|
|
|
$product_keyword = request('product_keyword', '');
|
|
|
+ $platform_string = $all_data['platform'];
|
|
|
+ if(empty($platform_string)) return json_send(['code' => 'error', 'msg' => '平台不能为空']);
|
|
|
$all_data['product_brand'] = $product_brand;
|
|
|
$all_data['product_keyword'] = $product_keyword;
|
|
|
if (trim($product_keyword) != '') {
|
|
|
@@ -329,14 +364,45 @@ class Product extends Controller
|
|
|
if ($all_data['sampling_start_time'] && strtotime(date('Y-m-d', $all_data['sampling_start_time']) . '23:59:59') < time()) return json_send(['code' => 'error', 'msg' => '采集开始时间必须大于当前时间']);
|
|
|
if ($all_data['sampling_end_time'] && $all_data['sampling_end_time'] < time()) return json_send(['code' => 'error', 'msg' => '采集结束时间必须大于当前时间']);
|
|
|
//查询是否存在
|
|
|
- $map = ['product_brand' => $product_brand, 'product_name' => $all_data['product_name'], 'product_specs' => $all_data['product_specs'], 'platform' => $all_data['platform']];
|
|
|
+ $map = ['product_brand' => $product_brand, 'product_name' => $all_data['product_name']];
|
|
|
if ($is_admin != 1 && $company_id != 0) {
|
|
|
$map['company_id'] = $company_id;
|
|
|
} else {
|
|
|
$map['company_id'] = $admin_company_id;
|
|
|
}
|
|
|
$data = $ProductModel->where($map)->where('id', '!=', $id)->first();
|
|
|
- if ($data) return json_send(['code' => 'error', 'msg' => '记录已存在']);
|
|
|
+ if (!empty($data)) {
|
|
|
+ //继续校验规格是否存在
|
|
|
+ $product_specs_tring = $all_data['product_specs'];
|
|
|
+ $product_specs = $product_specs_tring ? explode(',', $product_specs_tring) : '';
|
|
|
+ $product_specs = $product_specs ? array_unique($product_specs) : '';
|
|
|
+ //继续校平台是否存在
|
|
|
+
|
|
|
+ $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']])
|
|
|
+ ->where('id', '!=', $id)
|
|
|
+ ->where(function ($query) use ($product_specs) {
|
|
|
+ // 平台条件(固定)
|
|
|
+ $query->where(function ($query_li) use ($product_specs) {
|
|
|
+
|
|
|
+ foreach ($product_specs as $product_spec) {
|
|
|
+ if (empty($product_specs)) continue;
|
|
|
+ $query_li->orWhereRaw("FIND_IN_SET(?, product_specs)", [$product_spec]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })->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];
|
|
|
// 权限判断
|