// +---------------------------------------------------------------------- namespace app\dao\supplier; use app\dao\BaseDao; use app\model\supplier\SystemSupplier; /** * 供应商 * Class SystemSupplierDao * @package app\dao\system\store */ class SystemSupplierDao extends BaseDao { /** * 设置模型 * @return string */ protected function setModel(): string { return SystemSupplier::class; } /** * 列表 * @param array $where * @param array $field * @param int $page * @param int $limit * @param string $order * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function getSupplierList(array $where, array $field, int $page = 0, int $limit = 10, string $order = 'sort desc,id desc'): array { return $this->search($where)->when($page && $limit, function ($query) use ($page, $limit) { $query->page($page, $limit); })->when(isset($order), function ($query) use ($order) { $query->order($order); })->field($field)->select()->toArray(); } // 公共搜索模型 public function searchModel(array $search){ return $this->getModel() ->where('is_del',0) ->when(isset($search['id']) && $search['id'] !== '', function ($query) use ($search) { $query->where('id',$search['id']); }) ->when(isset($search['supplier_name']) && $search['supplier_name'] !== '', function ($query) use ($search) { $query->where('supplier_name','like', "%{$search['supplier_name']}%"); }) ->when(isset($search['name']) && $search['name'] !== '', function ($query) use ($search) { $query->where('name','like', "%{$search['name']}%"); }) ->when(isset($search['phone']) && $search['phone'] !== '', function ($query) use ($search) { $query->where('phone', $search['phone']); }) ->when(isset($search['is_show']) && $search['is_show'] !== '', function ($query) use ($search) { $query->where('is_show', $search['is_show']); }) ->with([ 'inviteUser' => function($query){ $query->field('uid,nickname,avatar'); }, 'inviteAgent' => function($query){ $query->field('id,agent_type')->bind(['agent_type']); }, 'admin' => function($query){ $query->field('admin_id,account as supplier_account')->bind(['supplier_account']); }, ]); } }