* @date 2020-01-27 19:24:35 */ declare(strict_types=1); namespace App\Repositories\Criterias; use Hyperf\Database\Query\Builder; use KZ2\Repositories\Contracts\RepositoryInterface; use KZ2\Repositories\Criteria\Criteria; class SysMessagePagesCriteria extends Criteria { private $params = []; public function __construct($params = []) { $this->params = $params; } /** * @param Builder $model * @param RepositoryInterface $repository * @return mixed|void */ public function apply( $model, RepositoryInterface $repository ) { if (!empty($this->params['id'])) { $model = $model->where('id', $this->params['id']); } if (!empty($this->params['uid'])) { $model = $model->where('uid', $this->params['uid']); } if (!empty($this->params['struct_type'])) { $model = $model->where('struct_type', $this->params['struct_type']); } if (!empty($this->params['subject'])) { $model = $model->where('subject', 'like', '%'. $this->params['subject'] . '%'); } if (!empty($this->params['previous_date'])) { $model = $model->whereDate('created_at', '<', $this->params['previous_date']); } return $model; } }