From 7a05256ba35c90133cc240aeb0a5384c1a8107c3 Mon Sep 17 00:00:00 2001 From: haoyuntao Date: Tue, 30 Jul 2024 18:00:20 +0800 Subject: [PATCH] limit --- app/admin/controller/RetailDescribe.php | 9 ++---- app/api/controller/Retail.php | 6 +--- app/store/model/RetailDescribe.php | 41 ++++++++++++++++++++++--- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/app/admin/controller/RetailDescribe.php b/app/admin/controller/RetailDescribe.php index e8e9786f..9dbab88a 100644 --- a/app/admin/controller/RetailDescribe.php +++ b/app/admin/controller/RetailDescribe.php @@ -18,12 +18,9 @@ class RetailDescribe extends Controller public function index() { $model = new retDescribeModel; - $list = $model->getAll(); - $grouped = []; - foreach ($list as $item) { - $grouped[$item['plate_id']][] = $item; - } - return $this->renderSuccess(compact('grouped')); + $where = $this->request->get(); + $list = $model->getList($where); + return $this->renderSuccess(compact('list')); } public function add(){ diff --git a/app/api/controller/Retail.php b/app/api/controller/Retail.php index 59309a71..74227634 100644 --- a/app/api/controller/Retail.php +++ b/app/api/controller/Retail.php @@ -96,11 +96,7 @@ class Retail extends Controller public function describe() { $list = RetailDescribeModel::withoutGlobalScope()->select(); - $grouped = []; - foreach ($list as $item) { - $grouped[$item['plate_id']][] = $item; - } - return $this->renderSuccess(compact('grouped')); + return $this->renderSuccess(compact('list')); } diff --git a/app/store/model/RetailDescribe.php b/app/store/model/RetailDescribe.php index ff50296a..3c7b6b44 100644 --- a/app/store/model/RetailDescribe.php +++ b/app/store/model/RetailDescribe.php @@ -17,10 +17,14 @@ use app\common\model\RetailDescribe as retDescribeModel; class RetailDescribe extends RetDescribeModel { - public function getAll() - { - - return self::select(); + public function getList(array $param = []): \think\Paginator + { + // 设置查询条件 + $filter = $this->getFilter($param); + $list = $this->field('*') + ->where($filter) + ->paginate($param['pageSize'] ?? 15); + return $list; } public function detail(int $id){ @@ -36,5 +40,34 @@ class RetailDescribe extends RetDescribeModel public function del(array $id){ return $this->whereIn('id' ,$id)->delete(); + } + + /** + * 设置查询条件 + * @param array $param + * @return array + */ + private function getFilter(array $param): array + { + // 设置默认的检索数据 + $params = $this->setQueryDefaultValue($param, [ + 'plate_id' => 0, // 类型id + 'search' => '', // 查询内容 + 'wholesale' => 0, // 批发商城 + 'retail' => 0, // 零售商城 + 'description_status' => 0, // 状态 + ]); + // 检索查询条件 + $filter = []; + // 类型id + $params['plate_id'] > 0 && $filter[] = ['plate_id', '=', $params['plate_id']]; + // 用户昵称/订单号 + !empty($params['search']) && $filter[] = ['feature|function_description', 'like', "%{$params['search']}%"]; + // 批发商城类型 + $params['wholesale'] > 0 && $filter[] = ['wholesale', '=', (int)$params['wholesale']]; + $params['retail'] > 0 && $filter[] = ['retail', '=', (int)$params['retail']]; + // 支付状态 + $params['description_status'] > 0 && $filter[] = ['description_status', '=', (int)$params['description_status']]; + return $filter; } } \ No newline at end of file