'{attribute}不能为空'], ['title', 'string', 'max' => 255], ['img', 'string'], [['hid', 'city', 'sort'], 'number'], ['hid', 'unique', 'targetClass' => 'common\models\Live', 'on' => 'add', 'message' => '该楼盘已经存在'], [['video_url', 'rtmp_url', 'time'], 'string'] ]; } public function attributeLabels() { return [ 'hid' => '楼盘', 'city' => '区域', 'title' => '标题', 'video_url' => '回放地址', 'rtmp_url' => '拉流地址', 'time' => '直播时间' ]; } public function getList($input) { $query = self::find(); $query->select(['pfg_live.id', 'pfg_live.img', 'pfg_live.title', 'pfg_live.time', 'pfg_live.create_at', 'pfg_live.sort', 'pfg_house.name', 'pfg_category_city.city_name']); $query->leftJoin('pfg_house', 'pfg_live.hid = pfg_house.id'); $query->leftJoin('pfg_category_city', 'pfg_live.city = pfg_category_city.id'); if (!empty($input['title'])) { $query->andWhere(['like', 'pfg_live.title', $input['title']]); } if (!empty($input['page'])) { $query->limit = $input['limit']; $query->offset = ($input['page'] - 1) * $input['limit']; } return $query->orderBy(['pfg_live.sort' => SORT_DESC, 'pfg_live.create_at' => SORT_DESC])->asArray()->all(); } public function Total($input) { $query = self::find(); if (!empty($input['title'])) { $query->andWhere(['like', 'pfg_live.title', $input['title']]); } $query->leftJoin('pfg_category_city', 'pfg_live.city = pfg_category_city.id'); $query->leftJoin('pfg_house', 'pfg_live.hid = pfg_house.id'); return $query->count(); } public function showList($input) { $query = self::find(); $query->select(['pfg_live.id', 'pfg_live.hid', 'pfg_live.city', 'pfg_live.img', 'pfg_live.title', 'pfg_live.time', 'pfg_live.video_url', 'pfg_live.create_at', 'pfg_category_city.city_name']); $query->joinWith(['house', 'house.cityNameByProvince']); $query->leftJoin('pfg_category_city', 'pfg_live.city = pfg_category_city.id'); $query->joinWith(['house.cityNameByProvince']); if (!empty($input['title'])) { $query->andWhere(['like', 'pfg_live.title', $input['title']]); } if (!empty($input['city'])) { $query->andWhere(['pfg_live.city' => $input['city']]); } if (!empty($input['page'])) { $query->limit = $input['limit']; $query->offset = ($input['page'] - 1) * $input['limit']; } else { $query->limit = 4; } return $query->orderBy(['pfg_live.sort' => SORT_DESC, 'pfg_live.create_at' => SORT_DESC])->asArray()->all(); } public function getListArea() { $query = self::find(); $query->select(['pfg_live.id', 'pfg_live.hid', 'pfg_live.img', 'pfg_live.title', 'pfg_live.time', 'pfg_live.create_at', 'pfg_category_city.city_name', 'pfg_live.city']); $query->joinWith(['house', 'house.cityNameByProvince']); $query->leftJoin('pfg_category_city', 'pfg_live.city = pfg_category_city.id'); $query->joinWith(['house.cityNameByProvince']); return $query->orderBy(['pfg_category_city.sort' => SORT_DESC])->asArray()->all(); } public function getHouse() { return $this->hasOne(House::className(), ['id' => 'hid'])->select(['id', 'name', 'province']); } public function getHouseInfo() { return $this->hasOne(House::className(), ['id' => 'hid']); } public function getLiveBySameArea($city, $lid) { $query = self::find()->andWhere(['city' => $city])->andWhere(['not', ['pfg_live.id' => $lid]]) ->orderBy('RAND()')->limit(4)->asArray()->all(); return $query; } /** * 获取所有区域 * @return array|\yii\db\ActiveRecord[] */ public function getProvince() { $query = self::find(); $query->select(['pfg_live.city']); return $query->column(); } /** * 获取指定条数的直播以及相应的楼盘信息 * */ public function getLiveHouseInfo($limit = null) { $select = [ 'pfg_house.id', 'pfg_house.name', 'pfg_house.thumb', 'pfg_house.sale_price', 'pfg_house.click_num', 'pfg_house_detail.price_unit', 'pfg_category_city.city_name', 'pfg_live.img' ]; $query = self::find(); $query->select($select); $query->leftJoin('pfg_house','pfg_live.hid = pfg_house.id'); $query->leftJoin('pfg_house_detail','pfg_house.id = pfg_house_detail.hid'); $query->leftJoin('pfg_category_city','pfg_house.city = pfg_category_city.id'); if(!empty($limit)){ $query->limit($limit); } return $query->orderBy(['pfg_live.time'=>SORT_DESC])->asArray()->all(); } /* * 20207.16 lyy 获取楼盘直播视频 * * */ public function GetOneLiveByHouse($hid) { $dataOne = self::find()->where(['hid' => $hid])->select('*')->asArray()->one(); return $dataOne; } }