LeverSearch.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: chenkuan
  5. * Date: 2017/11/8
  6. * Time: 上午10:09
  7. */
  8. namespace backend\models\searches;
  9. use backend\models\LeverApi;
  10. use yii\data\ArrayDataProvider;
  11. use yii\data\Pagination;
  12. class LeverSearch extends DataTable
  13. {
  14. public $type;
  15. public $sTime;
  16. public $eTime;
  17. public $member_id;
  18. /**
  19. * @inheritdoc
  20. */
  21. public function rules()
  22. {
  23. $rules = parent::rules();
  24. $rules[] = [['type', 'sTime', 'eTime', 'member_id'], 'safe'];
  25. return $rules;
  26. }
  27. /**
  28. * @param array $params
  29. * @param $from
  30. * @return ArrayDataProvider
  31. */
  32. public function search($params, $from = null)
  33. {
  34. $this->setAttributes($params);
  35. // 初始化DataTable查询参数
  36. $this->initSearchParams();
  37. $pagination = new Pagination();
  38. $pagination->setPageSize($this->pageSize);
  39. $data['pageSize'] = $pagination->getPageSize();
  40. $data['page'] = $this->page;
  41. if ($this->orderBy) {
  42. $data['orderBy'] = $this->orderBy;
  43. }
  44. if (!empty($this->search['value']) && trim($this->search['value']) !== '') {
  45. $data['search'] = trim($this->search['value']);
  46. }
  47. if ($from == 'admin') {
  48. $data['from'] = $from;
  49. if ($this->sTime && ($inStartTime = strtotime($this->sTime))) {
  50. $data['inStartTime'] = $inStartTime * 1000;
  51. }
  52. if ($this->eTime && ($inEndTime = strtotime($this->eTime))) {
  53. $data['inEndTime'] = $inEndTime * 1000 + 86400000;
  54. }
  55. $this->member_id && $data['member_id'] = $this->member_id;
  56. is_numeric($this->type) && $data['type'] = $this->type;
  57. } else {
  58. $data['member_id'] = (int)$params['member_id'];
  59. }
  60. $api = new LeverApi();
  61. $result = $api->getLeverList($data);
  62. $models = [];
  63. if ($result['code'] == 1) {
  64. $models = (array)$result['data']['dataList'];
  65. $pagination->totalCount = (int)$result['data']['totalCount'];
  66. }
  67. $dataProvider = new ArrayDataProvider([
  68. 'models' => $models,
  69. 'pagination' => $pagination,
  70. 'totalCount' => $pagination->totalCount,
  71. ]);
  72. return $dataProvider;
  73. }
  74. }