Ver código fonte

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 anos atrás
pai
commit
dc1d92bbb0
1 arquivos alterados com 58 adições e 42 exclusões
  1. 58 42
      app/admin/controller/Good.php

+ 58 - 42
app/admin/controller/Good.php

@@ -885,66 +885,82 @@ class Good extends Base
             'min_price' => 0,
             'max_price' => 0,
             'moq' => 0,
+            'cat_id' => 0,
+            'good_name' => '',
+            'skucode' => '',
+            'spucode' => '',
+            'start' => '',
+            'end' => '',
+            'good_type' => '',
+            'supplierNo' => '',
+            'companyNo' => '',
+            'creater' => '',
+            'createrid' => '',
+            'status' => '',
+            'platform_code' => '',
+            'plat_code' => '',
+            'exam_status' => '',
+            'brand_id' => 0,
             'page' => 1,
             'size' => 15
         ], 'post', 'trim');
 
-        if ($param['is_stock'] === '') $param['is_stock'] = 2;//2表示全部
+        $where = [];
+
+        if ($param['min_price'] && $param['max_price']) {
+            $skuCodes = Db::name('good_ladder')
+                ->whereBetween('sale_price', [$param['min_price'], $param['max_price']])
+                ->where(['is_del' => 0, 'status' => 1])
+                ->group('skuCode')
+                ->column('skuCode');
+            $where[] = ['b.skuCode', 'in', $skuCodes];
+        }
+
+        if ($param['is_stock'] != '') $where[] = ['a.is_stock', '=', $param['is_stock']];
+        if ($param['moq']) $where[] = ['a.moq', '>=', $param['moq']];
+        if ($param['cat_id']) $where[] = ['a.cat_id', '=', $param['cat_id']];
+        if ($param['good_name']) $where[] = ['a.good_name', 'like', '%' . $param['good_name'] . '%'];
+        if ($param['skucode']) $where[] = ['b.skucode', 'like', '%' . $param['skucode'] . '%'];
+        if ($param['spucode']) $where[] = ['b.spucode', 'like', '%' . $param['spucode'] . '%'];
+        if ($param['start']) $where[] = ['a.addtime', '>=', date('Y-m-d H:i:s', strtotime($param['start']))];
+        if ($param['end']) $where[] = ['a.addtime', '<', date('Y-m-d H:i:s', strtotime($param['end'] + 24 * 3600))];
+        if ($param['good_type']) $where[] = ['a.good_type', '=', $param['good_type']];
+        if ($param['supplierNo']) $where[] = ['a.supplierNo', '=', $param['supplierNo']];
+        if ($param['companyNo']) $where[] = ['a.companyNo', 'like', '%' . $param['companyNo'] . '%'];
+        if ($param['creater']) $where[] = ['a.creater', 'like', '%' . $param['creater'] . '%'];
+        if ($param['createrid']) $where[] = ['a.createrid', '=', $param['createrid']];
+        if ($param['status'] != '') $where[] = ['a.status', '=', $param['status']];
+        if ($param['platform_code']) $where[] = ['platform_code', '=', $param['platform_code']];
+        if ($param['plat_code']) $where[] = ['b.plat_code', 'like', '%' . $param['plat_code'] . '%'];
+        if ($param['exam_status'] != '') $where[] = ['b.exam_status', '=', $param['exam_status']];
+        if ($param['brand_id']) $where[] = ['a.brand_id', '=', $param['brand_id']];
 
-        //2.参数校验
-        $val = Validate::rule([
-            'is_stock|是否库存品' => 'require|number|in:0,1,2',
-            'min_price' => 'require|float|elt:max_price',
-            'max_price' => 'require|float|egt:min_price',
-            'moq|起订量' => 'require|number',
-            'page' => 'require|number|gt:0',
-            'size' => 'require|number|gt:0',
-        ]);
 
-        if (!$val->check($param)) return error_show(1004, $val->getError());
+        //5.获取结果
 
-        //3.组织SQL
         $count = Db::name('good')
             ->alias("a")
             ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.*,b.addtime,b.updatetime,b.exam_status,gb.createrid purchase_id,gb.creater purchase,gl.min_num,gl.max_num")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
             ->leftJoin("good_platform b", "a.spuCode=b.spuCode")
             ->leftJoin("good_basic gb", "gb.spuCode=a.spuCode")
-            ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode");
-
+            ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode")
+            ->where($where)
+            ->where('a.is_online', '=', 1)//必须上线成功
+            ->order("b.addtime desc")
+            ->count('a.id');
 
         $list = Db::name('good')
             ->alias("a")
             ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.*,b.addtime,b.updatetime,b.exam_status,gb.createrid purchase_id,gb.creater purchase,gl.min_num,gl.max_num,gl.sale_price")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
             ->leftJoin("good_platform b", "a.spuCode=b.spuCode")
             ->leftJoin("good_basic gb", "gb.spuCode=a.spuCode")
-            ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode");
-
-        //4.加入条件
-        if ($param['min_price'] && $param['max_price']) {
-            $skuCodes = Db::name('good_ladder')
-                ->field('skuCode')
-                ->whereBetween('sale_price', [$param['min_price'], $param['max_price']])
-                ->where(['is_del' => 0, 'status' => 1])
-                ->group('skuCode')
-                ->buildSql();
-
-            $count->where('b.skuCode in ' . $skuCodes);
-            $list->where('b.skuCode in ' . $skuCodes);
-
-        }
-
-        if ($param['is_stock'] != 2) {
-            $count->where('a.is_stock', '=', $param['is_stock']);
-            $list->where('a.is_stock', '=', $param['is_stock']);
-        }
-        if ($param['moq']) {
-            $count->where('a.moq', '>=', $param['moq']);
-            $list->where('a.moq', '>=', $param['moq']);
-        }
-
-        //5.获取结果
-        $count = $count->order("b.addtime desc")->count('a.id');
-        $list = $list->page($param['page'], $param['size'])->order("b.addtime desc")->select()->toArray();
+            ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode")
+            ->page($param['page'], $param['size'])
+            ->where($where)
+            ->where('a.is_online', '=', 1)//必须上线成功
+            ->order("b.addtime desc")
+            ->select()
+            ->toArray();
 
         //6.补充数据,照搬list方法
         $data = [];