TradeSearch.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace backend\models\searches;
  3. use backend\models\Mt4tradeApi;
  4. use Yii;
  5. use yii\data\ArrayDataProvider;
  6. use yii\data\Pagination;
  7. class TradeSearch extends DataTable
  8. {
  9. public $type;
  10. public $sTime;
  11. public $eTime;
  12. /**
  13. * @inheritdoc
  14. */
  15. public function rules()
  16. {
  17. $rules = parent::rules();
  18. $rules[] = [['type'], 'required'];
  19. $rules[] = [['sTime', 'eTime'], 'safe'];
  20. return $rules;
  21. }
  22. /**
  23. * @param array $params
  24. * @return ArrayDataProvider
  25. */
  26. public function search($params)
  27. {
  28. $this->setAttributes($params);
  29. // 初始化DataTable查询参数
  30. $this->initSearchParams();
  31. $pagination = new Pagination();
  32. $pagination->setPageSize($this->pageSize);
  33. $data['pageSize'] = $pagination->getPageSize();
  34. $data['page'] = $this->page;
  35. if ($this->orderBy) {
  36. $data['orderBy'] = $this->orderBy;
  37. }
  38. if (!empty($this->search['value']) && trim($this->search['value']) !== '') {
  39. $data['search'] = trim($this->search['value']);
  40. }
  41. $data['login'] = Yii::$app->getUser()->getIdentity(false)->getMain_login();
  42. $data['type'] = $this->type;
  43. $this->sTime && $data['closeTimeStart'] = date('Y-m-d 00:00:00', strtotime($this->sTime));
  44. $this->eTime && $data['closeTimeEnd'] = date('Y-m-d 23:59:59', strtotime($this->eTime));
  45. $api = new Mt4tradeApi();
  46. $result = $api->getTradeList($data);
  47. $models = [];
  48. if ($result['code'] == 1) {
  49. $models = (array)$result['data']['dataList'];
  50. $pagination->totalCount = $result['data']['totalCount'];
  51. }
  52. $dataProvider = new ArrayDataProvider([
  53. 'models' => $models,
  54. 'pagination' => $pagination,
  55. 'totalCount' => $pagination->totalCount,
  56. ]);
  57. return $dataProvider;
  58. }
  59. }