DefaultController.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace mobile\modules\live\controllers;
  3. use common\Helps\Time;
  4. use common\models\CategoryCity;
  5. use common\models\House;
  6. use common\models\Live;
  7. use mobile\modules\live\base\BaseController;
  8. use Yii;
  9. /**
  10. * Default controller for the `dinglongwan` module
  11. */
  12. class DefaultController extends BaseController
  13. {
  14. /**
  15. * 直播模块首页
  16. * Renders the index view for the module
  17. * @return string
  18. */
  19. public function actionIndex()
  20. {
  21. //获取模块内容
  22. $module = Yii::$app->hostserver->module;
  23. $input = Yii::$app->request->get();
  24. if (!empty($input['city'])) {
  25. $cmodel = new CategoryCity();
  26. $input['city'] = array_column($cmodel->GetAllSon($input['city']), 'id');
  27. }
  28. $lmodel = new Live();
  29. //获取所有直播地区
  30. $res = $lmodel->getListArea();
  31. if (!empty($res)) {
  32. foreach ($res as &$val) {
  33. $val['pid'] = CategoryCity::find()->select(['pid'])->andWhere(['del' => 1, 'id' => $val['city']])->asArray()->one()['pid'];
  34. if (!empty($val['pid'])) $val['house']['f'] = CategoryCity::find()->select(['id', 'city_name', 'sort'])->andWhere(['del' => 1, 'state' => 1, 'id' => $val['pid']])->asArray()->one();
  35. }
  36. }
  37. $c = array_column($res, 'house');
  38. $province = array_column($c, 'f', 'province');
  39. $sortKey = array_column($province, 'sort'); //取出数组中sort的一列,返回一维数组
  40. array_multisort($sortKey, SORT_DESC, SORT_NUMERIC); //大到小排序,根据sort排序在前
  41. $data = $lmodel->showList($input);
  42. if (!empty($data)) {
  43. foreach ($data as &$val) {
  44. $val['pid'] = CategoryCity::find()->select(['pid'])->andWhere(['del' => 1, 'id' => $val['city']])->asArray()->one()['pid'];
  45. if (!empty($val['pid'])) $val['house']['f'] = CategoryCity::find()->select(['id', 'city_name'])->andWhere(['del' => 1, 'id' => $val['pid']])->asArray()->one();
  46. $val['state'] = Time::getLiveState($val['video_url'], $val['time']);
  47. $house = House::findOne($val['hid']);
  48. if (!empty($house['area'])) {
  49. $val['swt'] = $house['area'];
  50. } else {
  51. $val['swt'] = $house['city'];
  52. }
  53. }
  54. }
  55. return $this->render($this->action->id, [
  56. 'module' => $module['module'],
  57. 'Data' => $data,
  58. 'province' => isset($province) ? $province : '',
  59. ]);
  60. }
  61. }