NoticeSearch.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: chenkuan
  5. * Date: 2017/11/6
  6. * Time: 下午3:09
  7. */
  8. namespace backend\models\searches;
  9. use backend\models\NoticeApi;
  10. use yii\data\ArrayDataProvider;
  11. use yii\data\Pagination;
  12. class NoticeSearch extends DataTable
  13. {
  14. /**
  15. * @param array $params
  16. * @return ArrayDataProvider
  17. */
  18. public function search($params)
  19. {
  20. $this->setAttributes($params);
  21. // 初始化DataTable查询参数
  22. $this->initSearchParams();
  23. $pagination = new Pagination();
  24. $pagination->setPageSize($this->pageSize);
  25. $data['pageSize'] = $pagination->getPageSize();
  26. $data['page'] = $this->page;
  27. if ($this->orderBy) {
  28. $data['orderBy'] = $this->orderBy;
  29. }
  30. if (!empty($this->search['value']) && trim($this->search['value']) !== '') {
  31. $data['search'] = trim($this->search['value']);
  32. }
  33. $data['member_id'] = \Yii::$app->getUser()->getId();
  34. $data['is_admin'] = isset($params['is_admin']) ? intval($params['is_admin']) : 0;
  35. $data['type'] = isset($params['type']) ? intval($params['type']): '';
  36. $api = new NoticeApi();
  37. $result = $api->getNoticeList($data);
  38. $models = [];
  39. if ($result['code'] == 1) {
  40. $models = (array)$result['data']['dataList'];
  41. $pagination->totalCount = (int)$result['data']['totalCount'];
  42. }
  43. $dataProvider = new ArrayDataProvider([
  44. 'models' => $models,
  45. 'pagination' => $pagination,
  46. 'totalCount' => $pagination->totalCount,
  47. ]);
  48. return $dataProvider;
  49. }
  50. }