IbTradeSearch.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 IbTradeSearch extends DataTable
  8. {
  9. public $type;
  10. public $sTime;
  11. public $eTime;
  12. public $ibId;
  13. public $name;
  14. /**
  15. * @inheritdoc
  16. */
  17. public function rules()
  18. {
  19. $rules = parent::rules();
  20. $rules[] = [['type'], 'required'];
  21. $rules[] = [['sTime', 'eTime', 'ibId', 'name'], 'safe'];
  22. return $rules;
  23. }
  24. /**
  25. * @param array $params
  26. * @return ArrayDataProvider
  27. */
  28. public function search($params)
  29. {
  30. $this->setAttributes($params);
  31. // 初始化DataTable查询参数
  32. $this->initSearchParams();
  33. $pagination = new Pagination();
  34. $pagination->setPageSize($this->pageSize);
  35. $data['pageSize'] = $pagination->getPageSize();
  36. $data['page'] = $this->page;
  37. if ($this->orderBy) {
  38. $data['orderBy'] = $this->orderBy;
  39. }
  40. if (!empty($this->search['value']) && trim($this->search['value']) !== '') {
  41. $data['search'] = trim($this->search['value']);
  42. }
  43. $data['memberId'] = Yii::$app->getUser()->getIdentity(false)->getId();
  44. $data['type'] = $this->type;
  45. $this->ibId && $data['ibId'] = $this->ibId;
  46. $this->sTime && $data['closeTimeStart'] = date('Y-m-d 00:00:00', strtotime($this->sTime));
  47. $this->eTime && $data['closeTimeEnd'] = date('Y-m-d 23:59:59', strtotime($this->eTime));
  48. $this->name && $data['name'] = $this->name;
  49. $api = new Mt4tradeApi();
  50. // $result = $api->getIbTradeList($data);
  51. $result = $this->multiQuery($api, 'getIbTradeList', $data);
  52. $models = [];
  53. if ($result['code'] == 1) {
  54. $models = (array)$result['data']['dataList'];
  55. $pagination->totalCount = $result['data']['totalCount'];
  56. }
  57. $dataProvider = new ArrayDataProvider([
  58. 'models' => $models,
  59. 'pagination' => $pagination,
  60. 'totalCount' => $pagination->totalCount,
  61. ]);
  62. return $dataProvider;
  63. }
  64. }