<?php
/**
 * Created by PhpStorm.
 * User: xiaofeng
 * Date: 2018/3/18
 * Time: 上午10:58
 */

namespace common\models;
class HouseNews extends Common
{

        public function FingById($id)
        {
            return self::findOne($id);
        }


        public function getHidList()
        {
            $query =  self::find();
            $query->andWhere(['hid'=>$this->hid]);
            return $query->asArray()->all();
        }


        public function getNewsList($page)
        {
            $query = self::find();

            $query->select(['pfg_news.*','pfg_house_news.hnid','pfg_house_news.is_view','pfg_category_news.news_name']);
            $query = $this->WhereFilter($query,$page);
            $query->leftJoin('pfg_news','pfg_house_news.nid = pfg_news.id and pfg_news.del = 1');
            $query->leftJoin('pfg_category_news','pfg_news.category = pfg_category_news.id');
            if(!empty($page['page']))
            {
                $query->offset = ($page['page'] - 1) * $page['limit'];
                $query->limit = $page['limit'];
            }
            $query->orderBy(['pfg_house_news.create_at'=>SORT_DESC]);
            return $query->asArray()->all();
        }

        public function QgetNews($limit = null)
        {
            $query = self::find();
            $query->select(['pfg_news.abstract','pfg_news.subject','pfg_news.id','pfg_news.create_at','pfg_category_news.news_name','pfg_news.open_time','pfg_news.thumb']);
            $query = $this->WhereFilter($query,[]);
            $query->innerJoin('pfg_news','pfg_house_news.nid = pfg_news.id and pfg_news.del = 1 and pfg_news.state = 1');
            $query->innerJoin('pfg_category_news','pfg_news.category = pfg_category_news.id');
//            if($limit)
            if($limit != null)
            {
                $query->limit = $limit;
            }
            return $query->orderBy(['pfg_news.open_time'=>SORT_DESC])->asArray()->all();
        }


        private function WhereFilter($query,$page)
        {
            $query->andWhere(['pfg_house_news.hid'=>$this->hid]);
            $query->andWhere(['pfg_house_news.del'=>$this->setDel]);
            if(!empty($page['name']))
            {
                $query->andFilterWhere(['like','pfg_news.subject',$page['name']]);
            }

            if(!empty($page['category']))
            {
                $query->andFilterWhere(['category'=>$page['category']]);
            }

            if(!empty($page['id']))
            {
                $query->andFilterWhere(['pfg_house_news.nid'=>$page['id']]);
            }
            return $query;
        }

        public function AllHouseNews()
        {
            $query = self::find();
//            ,'pfg_category_news.news_name'
            $query->select(['pfg_news.*','pfg_category_news.news_name','pfg_house_news.hnid','pfg_house_news.is_view','pfg_news.thumb','pfg_news.subject','pfg_house_news.nid']);
            $query->andWhere(['pfg_house_news.del'=>1]);
			$query->andWhere(['pfg_news.state'=>1]);
            $query->andWhere(['pfg_house_news.hid'=>$this->hid]);
            $query->innerJoin('pfg_news','pfg_house_news.nid = pfg_news.id and pfg_news.del = 1');
            $query->innerJoin('pfg_category_news','pfg_category_news.id = pfg_news.category');
            return  $query->orderBy(['pfg_house_news.create_at'=>SORT_DESC])->asArray()->all();
//            $query->leftJoin('pfg_category_news','pfg_news.category = pfg_category_news.id');
        }



        public function Total($page)
        {
            $query = self::find();
            $query->andWhere(['pfg_house_news.del'=>1]);
            $query->andWhere(['pfg_house_news.hid'=>$this->hid]);
            $query->leftJoin('pfg_news','pfg_house_news.nid = pfg_news.id');
            if(!empty($page['name']))
            {
                $query->andFilterWhere(['like','pfg_news.subject',$page['name']]);
            }

            if(!empty($page['category']))
            {
                $query->andFilterWhere(['category'=>$page['category']]);
            }
            return $query->count();
        }


        public function GetHouse($input)
        {
            $query = self::find();
            $query->andWhere(['pfg_house_news.del'=>1]);
            if (!empty($input['nid'])) {
                $query->andWhere(['pfg_house_news.nid'=>$input['nid']]);
            }
            return $query->limit(1)->asArray()->all();
        }

        public function getHouseCity()
        {
            return $this->hasOne(House::className(),['id'=>'hid'])->select(['city']);
        }
}