FinanceRechargeCriteria.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Repositories\Criterias;
  3. use Carbon\Carbon;
  4. use Illuminate\Database\Eloquent\Model;
  5. use KZ2\Laravel\Repositories\Contracts\RepositoryInterface as Repository;
  6. use KZ2\Laravel\Repositories\Criteria\Criteria;
  7. class FinanceRechargeCriteria extends Criteria
  8. {
  9. private $params = [];
  10. public function __construct($params = [])
  11. {
  12. $this->params = $params;
  13. }
  14. /**
  15. * @param Model $model
  16. * @param Repository $repository
  17. * @return mixed
  18. */
  19. public function apply($model, Repository $repository)
  20. {
  21. if (!empty($this->params['user_uid'])) {
  22. $model = $model->where('user_uid', $this->params['user_uid']);
  23. }
  24. if (!empty($this->params['pay_type'])) {
  25. $model = $model->where('pay_type', $this->params['pay_type']);
  26. }
  27. if (!empty($this->params['order_status'])) {
  28. $model = $model->where('order_status', (int)$this->params['order_status']);
  29. }
  30. if (!empty($this->params['mom_app_uid'])) {
  31. $model = $model->where('mom_app_uid', $this->params['mom_app_uid']);
  32. }
  33. if (!empty($this->params['start_date']) && !empty($this->params['end_date'])) {
  34. $model = $model->whereBetween('created_at', [Carbon::parse($this->params['start_date']), Carbon::parse($this->params['end_date'])]);
  35. }
  36. if (!empty($this->params['user_name'])) {
  37. $model = $model->where('user_name', 'LIKE', '%'. $this->params['user_name'] .'%');
  38. }
  39. if (!empty($this->params['order_sn'])) {
  40. $model = $model->where('order_sn', $this->params['order_sn']);
  41. }
  42. return $model;
  43. }
  44. }