|
@@ -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;
|
|
|
+ $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']];
|
|
|
|
|
|
-
|
|
|
- $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());
|
|
|
+
|
|
|
|
|
|
-
|
|
|
$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")
|
|
|
->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")
|
|
|
->leftJoin("good_platform b", "a.spuCode=b.spuCode")
|
|
|
->leftJoin("good_basic gb", "gb.spuCode=a.spuCode")
|
|
|
- ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode");
|
|
|
-
|
|
|
-
|
|
|
- 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']);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- $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();
|
|
|
|
|
|
|
|
|
$data = [];
|