diff --git a/app/common/model/Merchant.php b/app/common/model/Merchant.php index 6c38e412..90280765 100644 --- a/app/common/model/Merchant.php +++ b/app/common/model/Merchant.php @@ -105,11 +105,41 @@ class Merchant extends BaseModel * @return \think\Paginator * @throws \think\db\exception\DbException */ - public function getList(bool $isRecycle = false): \think\Paginator + public function getList(array $param = []): \think\Paginator { - return $this->where('is_recycle', '=', (int)$isRecycle) - ->where('is_delete', '=', 0) - ->order(['create_time' => 'desc', $this->getPk()]) - ->paginate(15); + return $this->with(['logoImage']) + ->where($this->getFilter($param)) + ->where('is_delete', '=', 0) + ->order(['sort' => 'asc', $this->getPk()]) + ->paginate(15); + } + + /** + * 设置列表查询条件 + * @param array $param + * @return array + */ + private function getFilter(array $param = []): array + { + // 默认查询参数 + $params = $this->setQueryDefaultValue($param, [ + 'search' => '', // 搜索关键词: 门店名称/联系人/电话 + ]); + // 检索查询条件 + $filter = []; + // 搜索关键词 + !empty($params['search']) && $filter[] = ['shop_name|shop_label', 'like', "%{$params['search']}%"]; + // 门店状态 + //is_numeric($params['status']) && $filter[] = ['status', '=', (int)$params['status']]; + return $filter; + } + + /** + * 软删除 + * @return bool + */ + public function setDelete(): bool + { + return $this->save(['is_delete' => 1]); } } diff --git a/app/store/controller/Merchant.php b/app/store/controller/Merchant.php index 4f34e6d8..5ecf61f4 100644 --- a/app/store/controller/Merchant.php +++ b/app/store/controller/Merchant.php @@ -69,13 +69,27 @@ class Merchant extends Controller return $this->renderError($model->getError() ?: '添加失败'); } + /** + * 删除门店 + * @param int $shopId + * @return Json + */ + public function delete(int $merchantId): Json + { + // 门店详情 + $model = MerchantModel::detail($merchantId); + if (!$model->setDelete()) { + return $this->renderError($model->getError() ?: '删除失败'); + } + return $this->renderSuccess('删除成功'); + } + /** * 列表 */ public function list(): Json { - $list = MerchantModel::where('store_id', '=', $this->storeId) - ->order('created_at','desc') - ->paginate(10); + $model = new MerchantModel; + $list = $model->getList($this->request->param()); return $this->renderSuccess(compact('list')); }