|
@@ -5,6 +5,7 @@ namespace app\admin\controller;
|
|
|
|
|
|
use app\admin\model\GoodLog;
|
|
use app\admin\model\GoodLog;
|
|
use think\App;
|
|
use think\App;
|
|
|
|
+use think\db\Raw;
|
|
use think\facade\Db;
|
|
use think\facade\Db;
|
|
use think\facade\Validate;
|
|
use think\facade\Validate;
|
|
|
|
|
|
@@ -875,39 +876,74 @@ class Good extends Base
|
|
//根据价格区间,筛选符合条件的商品列表
|
|
//根据价格区间,筛选符合条件的商品列表
|
|
public function getGoodListByLadder()
|
|
public function getGoodListByLadder()
|
|
{
|
|
{
|
|
-
|
|
|
|
//1.请求参数
|
|
//1.请求参数
|
|
- $param=$this->request->only(['min_price','max_price','page'=>1,'size'=>15],'post','trim');
|
|
|
|
|
|
+ $param = $this->request->only([
|
|
|
|
+ 'is_stock' => '',
|
|
|
|
+ 'min_price' => 0,
|
|
|
|
+ 'max_price' => 0,
|
|
|
|
+ 'moq' => 0,
|
|
|
|
+ 'page' => 1,
|
|
|
|
+ 'size' => 15
|
|
|
|
+ ], 'post', 'trim');
|
|
|
|
+
|
|
|
|
+ if ($param['is_stock'] === '') $param['is_stock'] = 2;//2表示全部
|
|
|
|
|
|
//2.参数校验
|
|
//2.参数校验
|
|
- $val=Validate::rule([
|
|
|
|
- 'min_price'=>'require|float|elt:max_price',
|
|
|
|
- 'max_price'=>'require|float|egt:min_price',
|
|
|
|
- 'page'=>'require|number|gt:0',
|
|
|
|
- 'size'=>'require|number|gt:0',
|
|
|
|
|
|
+ $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());
|
|
|
|
|
|
+ if (!$val->check($param)) return error_show(1004, $val->getError());
|
|
|
|
+
|
|
|
|
+ //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");
|
|
|
|
|
|
- //3.组织SQL语句
|
|
|
|
- $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();
|
|
|
|
|
|
|
|
- //4.查询列表并补充相关信息(从list方法照搬)
|
|
|
|
$list = Db::name('good')
|
|
$list = Db::name('good')
|
|
->alias("a")
|
|
->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取个别名
|
|
->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_platform b", "a.spuCode=b.spuCode")
|
|
->leftJoin("good_basic gb", "gb.spuCode=a.spuCode")
|
|
->leftJoin("good_basic gb", "gb.spuCode=a.spuCode")
|
|
- ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode")
|
|
|
|
- ->where('b.skuCode in ' . $skuCodes)
|
|
|
|
- ->page($param['page'], $param['size'])
|
|
|
|
- ->order("b.addtime desc")
|
|
|
|
- ->select();
|
|
|
|
|
|
+ ->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();
|
|
|
|
+
|
|
|
|
+ //6.补充数据,照搬list方法
|
|
$data = [];
|
|
$data = [];
|
|
foreach ($list as $value) {
|
|
foreach ($list as $value) {
|
|
$value['cat_info'] = made($value['cat_id'], []);
|
|
$value['cat_info'] = made($value['cat_id'], []);
|
|
@@ -946,7 +982,7 @@ class Good extends Base
|
|
$data[] = $value;
|
|
$data[] = $value;
|
|
}
|
|
}
|
|
|
|
|
|
- return app_show(0, '请求成功', $data);
|
|
|
|
|
|
+ return app_show(0, "获取成功", ['list' => $data, 'count' => $count]);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|