cqpCow 10 mēneši atpakaļ
vecāks
revīzija
5718223a31

+ 11 - 0
app/Model/Product.php

@@ -18,4 +18,15 @@ class Product extends UseScopeBaseModel
     ];
 
     const range_function = 'productRangeNot';
+
+    const Product_attribute_zero = 0;
+    const Product_attribute_one = 1;
+    const Product_attribute_two = 2;
+    const Product_attribute_three = 3;
+    public static $product_attribute = [
+        self::Product_attribute_zero => '无',
+        self::Product_attribute_one => '其他',
+        self::Product_attribute_two => '主推款',
+        self::Product_attribute_three => '热卖款',
+    ];
 }

+ 9 - 0
app/Service/ImportService.php

@@ -437,6 +437,7 @@ class ImportService extends Service
         //第一次表格数据校验 非空  已经过滤数据
         $array_clean = [];
         $search = "";
+        $map_attr = array_flip(Product::$product_attribute);
         foreach ($array as $key => $value){
             $rowData = array_filter($value);
             if (empty($rowData)) {
@@ -450,6 +451,13 @@ class ImportService extends Service
                 $t = $value[1];
                 if(in_array($t,$array_clean)) return [false, '产品编码:'. $value[1] .'在文件中重复出现'];
                 $array_clean[] = $t;
+
+                if(! empty($value[8])){
+                    if(! isset($map_attr[$value[8]])) return [false, '产品属性不存在' . $value[8]];
+                    $value[8] = $map_attr[$value[8]];
+                }else{
+                    $value[8] = Product::Product_attribute_zero;
+                }
                 $array[$key] = $value;
                 $search .= "(binary code ='".$value[1]."') or";
             }
@@ -536,6 +544,7 @@ class ImportService extends Service
             $tmp['bar_code'] = $value['5'];
             $tmp['cost'] = $value['6'];
             $tmp['retail_price'] = $value['7'];
+            $tmp['product_attribute'] = $value['8'] ?? 0;
             foreach ($map as $m => $v){
                 if($value[$v['col']]){
                     if(! is_numeric($value[$v['col']])) return [false,$v['name'] . ': 请输入数字且最多两位小数'];

+ 11 - 1
app/Service/ProductService.php

@@ -3,6 +3,7 @@
 namespace App\Service;
 
 use App\Model\BasicType;
+use App\Model\Depart;
 use App\Model\Employee;
 use App\Model\Product;
 use App\Model\ProductActivity;
@@ -196,6 +197,7 @@ class ProductService extends Service
             $model->retail_price = $data['retail_price'] ?? 0;
             $model->mark = $data['mark'] ?? '';
             $model->state = $data['state'] ?? 0;
+            $model->product_attribute = $data['product_attribute'] ?? 0;
             $model->save();
 
             $time = time();
@@ -304,6 +306,7 @@ class ProductService extends Service
             $model->retail_price = $data['retail_price'] ?? 0;
             $model->mark = $data['mark'] ?? '';
             $model->state = $data['state'] ?? 0;
+            $model->product_attribute = $data['product_attribute'] ?? 0;
             $model->crt_id = $user['id'];
             $model->depart_id = $data['depart_id'] ?? 0;
             $model->top_depart_id = $data['top_depart_id'] ?? 0;
@@ -425,6 +428,7 @@ class ProductService extends Service
             ->first();
         if(empty($customer)) return [false,'产品不存在或已被删除'];
         $customer = $customer->toArray();
+        $customer['product_attribute_title'] = Product::$product_attribute[$customer['product_attribute']] ?? "";
         $customer['product_category'] = ! empty($customer['product_category']) ? json_decode($customer['product_category'],true): [];
         $category = ProductCategory::where('id',$customer['product_category_id'])
             ->value('title');
@@ -525,11 +529,13 @@ class ProductService extends Service
     public function productList($data,$user){
         $model = Product::ProductClear($user,$data);
         $model = $model->where('del_time',0)
-            ->select('title','id','product_category_id','code','size','unit','bar_code','retail_price','cost','state','crt_id','crt_time','mark','depart_id','top_depart_id','install_time')
+            ->select('title','id','product_category_id','code','size','unit','bar_code','retail_price','cost','state','crt_id','crt_time','mark','depart_id','top_depart_id','install_time','product_attribute')
+            ->orderby('product_attribute', 'desc')
             ->orderby('id', 'desc');
 
         if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
         if(isset($data['state'])) $model->where('state', $data['state']);
+        if(isset($data['product_attribute'])) $model->where('product_attribute', $data['product_attribute']);
         if(! empty($data['product_category_id'])) $model->where('product_category_id', $data['product_category_id']);
         if(! empty($data['product_category'])) {
             $product_category = ProductCategory::where('del_time',0)
@@ -656,6 +662,8 @@ class ProductService extends Service
             ->pluck('title','id')
             ->toArray();
 
+        $depart_map = Depart::whereIn('top_depart_id',array_unique(array_column($data['top_depart_id'])))->pluck('title','id')->toArray();
+
         //产品使用价格
         $detail_map = $this->getProductPrice(array_column($data['data'],'id'), $type);
 
@@ -687,6 +695,8 @@ class ProductService extends Service
             $data['data'][$key]['product_category_name'] = $category[$value['product_category_id']] ?? '';
             $data['data'][$key]['state_name'] = Product::$state[$value['state']] ?? '';
             $data['data'][$key]['unit_name'] = $basic_map[$value['unit']] ?? '';
+            $data['data'][$key]['belong_to'] = $depart_map[$value['top_depart_id']] ?? '';
+            $data['data'][$key]['product_attribute_title'] = Product::$product_attribute[$value['product_attribute']] ?? "";
 
             //成本隐藏
             $price = "******";

+ 4 - 0
config/excel/productTable.php

@@ -32,4 +32,8 @@ return [
         'key' =>'retail_price',
         'value' => '零售价',
     ],
+    [
+        'key' =>'product_attribute',
+        'value' => '产品属性',
+    ],
 ];

+ 61 - 0
config/header/17.php

@@ -0,0 +1,61 @@
+<?php
+/**
+ * '菜单ID' => [
+ *     '字段英文名' =》 '字段中文名'
+ * ]
+ */
+
+return [
+    [
+        'key' => 'product_category_name',
+        'value' => '产品分类',
+    ],
+    [
+        'key' => 'product_attribute_title',
+        'value' => '产品属性',
+    ],
+    [
+        'key' => 'title',
+        'value' => '产品名称',
+    ],
+    [
+        'key' => 'code',
+        'value' => '产品编码',
+    ],
+    [
+        'key' => 'bar_code',
+        'value' => '条码',
+    ],
+    [
+        'key' => 'size',
+        'value' => '规格',
+    ],
+    [
+        'key' => 'unit_name',
+        'value' => '单位',
+    ],
+    [
+        'key' => 'cost_show',
+        'value' => '成本',
+    ],
+    [
+        'key' => 'retail_price',
+        'value' => '零售价',
+    ],
+    [
+        'key' => 'belong_to',
+        'value' => '所属门店',
+    ],
+    [
+        'key' => 'mark',
+        'value' => '备注',
+    ],
+    [
+        'key' => 'crt_time',
+        'value' => '创建时间',
+    ],
+    [
+        'key' => 'crt_name',
+        'value' => '创建人',
+    ],
+];