<?php

namespace common\models;


class PushmTimelimitsgroup  extends Common
{

        public function rules()
        {
            return [
                ['hid', 'unique', 'targetClass' => 'common\models\PushmTimelimitsgroup','on'=>['add'],'message'=>'该楼盘已存在','filter'=>function($query){
                            $query->andWhere(['del'=>$this->setDel]);
                    return  $query->andWhere(['type'=>$this->type]);
                }],
                ['hid','number','message'=>'请选择楼盘'],
                ['sort','number','message'=>'排序只能是数字'],
                ['sort','number','max'=>10000],
                ['type','number'],
                ['group_num','number'],
                ['city','number'],
                ['click','number'],
                ['group_num','number'],
                ['start_time','string'],
                ['discount','string','max'=>255],
                ['reason','string','max'=>255],
                ['group_price','string','max'=>20],
                ['province','string','max'=>15],
            ];
        }

        public function attributeLabels()
        {
            return [
                'hid'=>'楼盘名称',
            ];
        }


        public function Authenticator($input)
        {
            $this->load($input,'');
            if(!$this->validate()) return $this->errors;
            return $this;
        }

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

        public function getList($input)
        {
            $query = self::find();
            $query->select(['pfg_house.name','pfg_pushm_timelimitsgroup.id','pfg_pushm_timelimitsgroup.hid','pfg_pushm_timelimitsgroup.create_at','pfg_pushm_timelimitsgroup.is_show','pfg_pushm_timelimitsgroup.group_num','pfg_pushm_timelimitsgroup.province','pfg_pushm_timelimitsgroup.sort','pfg_pushm_timelimitsgroup.click']);
            $query->andWhere(['pfg_pushm_timelimitsgroup.del'=>$this->setDel]);
            if(!empty($input['house_name']))
            {
                $query->andWhere(['like','pfg_house.name',$input['house_name']]);
            }
            if(!empty($input['province']))
            {
                $query->andWhere(['pfg_pushm_timelimitsgroup.city'=>$input['province']]);
            }
            $query->andWhere(['pfg_pushm_timelimitsgroup.type'=>$input['type']]);
            $query->leftJoin('pfg_house','pfg_pushm_timelimitsgroup.hid=pfg_house.id');
            if(!empty($input['page']))
            {
                $query->limit = $input['limit'];
                $query->offset = ($input['page']-1 )* $input['limit'];
            }
            return $query->orderBy(['pfg_pushm_timelimitsgroup.sort'=>SORT_DESC])->asArray()->all();
        }

        public function getHotlist()
        {
            $query = self::find();
            $query->select(['pfg_house.name','pfg_house.thumb','pfg_pushm_timelimitsgroup.click as click_num','pfg_pushm_timelimitsgroup.id','pfg_pushm_timelimitsgroup.hid','pfg_pushm_timelimitsgroup.create_at','pfg_pushm_timelimitsgroup.group_num','pfg_pushm_timelimitsgroup.province','pfg_pushm_timelimitsgroup.sort','pfg_pushm_timelimitsgroup.city']);
            $query->andWhere(['pfg_pushm_timelimitsgroup.del'=>$this->setDel]);
            $query->andWhere(['pfg_house.is_view'=>1]);
            $query->limit = 6;
            $query->leftJoin('pfg_house','pfg_pushm_timelimitsgroup.hid=pfg_house.id');
            return $query->orderBy(['pfg_pushm_timelimitsgroup.sort'=>SORT_DESC,'pfg_pushm_timelimitsgroup.id'=>SORT_DESC])->asArray()->all();
        }

        public function Total($input)
        {
            $query = self::find();
            $query->andWhere(['pfg_pushm_timelimitsgroup.del'=>$this->setDel]);
            if(isset($input['house_name']) || isset($input['province']) ){
                $query->andFilterWhere(['like','pfg_house.name',$input['house_name']]);
                $query->andFilterWhere(['pfg_pushm_timelimitsgroup.city'=>$input['province']]);
            }
            $query->leftJoin('pfg_house','pfg_pushm_timelimitsgroup.hid=pfg_house.id');
            return $query->count();
        }

        public function Homegetlist($input)
        {
            $query = self::find();
            $query->select(['pfg_house.id','pfg_category_city.city_name','pfg_house.name','pfg_house.thumb','pfg_house_detail.price_unit','pfg_pushm_timelimitsgroup.group_price','pfg_house.city','pfg_house_detail.main_units','pfg_house.characteristic','pfg_house.sale_price','pfg_pushm_timelimitsgroup.click','pfg_pushm_timelimitsgroup.start_time','pfg_pushm_timelimitsgroup.group_num']);
            $query->andWhere(['pfg_pushm_timelimitsgroup.del'=>$this->setDel]);
            $query->andWhere(['pfg_pushm_timelimitsgroup.is_show'=>1]);
            if($input['id'] !=0 ){
                $query->andFilterWhere(['pfg_pushm_timelimitsgroup.city'=>$input['id']]);
            }
            $query->leftJoin('pfg_house','pfg_pushm_timelimitsgroup.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($input['page']))
            {
                $query->offset = ($input['page'] - 1) * $input['limit'];
                $query->limit = $input['limit'];
            }
            return $query->asArray()->orderBy(['pfg_pushm_timelimitsgroup.sort'=>SORT_DESC])->all();
        }

        public function Getalllist($input)
        {
            $query = self::find();
            $query->select(['pfg_house.id','pfg_house.name','pfg_house.thumb','pfg_house_detail.price_unit','pfg_house.city','pfg_house_detail.main_units','pfg_pushm_timelimitsgroup.group_price','pfg_house.characteristic','pfg_house.sale_price','pfg_pushm_timelimitsgroup.click','pfg_pushm_timelimitsgroup.start_time','pfg_pushm_timelimitsgroup.group_num']);
            $query->andWhere(['pfg_pushm_timelimitsgroup.del'=>$this->setDel]);
            $query->andWhere(['pfg_pushm_timelimitsgroup.is_show'=>1]);
            $query->leftJoin('pfg_house','pfg_pushm_timelimitsgroup.hid=pfg_house.id');
            $query->leftJoin('pfg_house_detail','pfg_house.id=pfg_house_detail.hid');
            if(!empty($input['page']))
            {
                $query->offset = ($input['page'] - 1) * $input['limit'];
                $query->limit = $input['limit'];
            }
            return $query->asArray()->all();
        }

}