SysMessagePagesCriteria.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * 标签查询.
  4. *
  5. * @author jim <jim458734573@gmail.com>
  6. * @date 2020-01-27 19:24:35
  7. */
  8. declare(strict_types=1);
  9. namespace App\Repositories\Criterias;
  10. use Hyperf\Database\Query\Builder;
  11. use KZ2\Repositories\Contracts\RepositoryInterface;
  12. use KZ2\Repositories\Criteria\Criteria;
  13. class SysMessagePagesCriteria extends Criteria
  14. {
  15. private $params = [];
  16. public function __construct($params = [])
  17. {
  18. $this->params = $params;
  19. }
  20. /**
  21. * @param Builder $model
  22. * @param RepositoryInterface $repository
  23. * @return mixed|void
  24. */
  25. public function apply(
  26. $model,
  27. RepositoryInterface $repository
  28. ) {
  29. if (!empty($this->params['id'])) {
  30. $model = $model->where('id', $this->params['id']);
  31. }
  32. if (!empty($this->params['uid'])) {
  33. $model = $model->where('uid', $this->params['uid']);
  34. }
  35. if (!empty($this->params['struct_type'])) {
  36. $model = $model->where('struct_type', $this->params['struct_type']);
  37. }
  38. if (!empty($this->params['subject'])) {
  39. $model = $model->where('subject', 'like', '%'. $this->params['subject'] . '%');
  40. }
  41. if (!empty($this->params['previous_date'])) {
  42. $model = $model->whereDate('created_at', '<', $this->params['previous_date']);
  43. }
  44. return $model;
  45. }
  46. }