<?php
class SquirrelModel extends Orm_Base{
    public $table = 'squirrel';
    public $field = array(
        'id' => array('type' => "int(11)",'comment' => ''),
        'number' => array('type' => "varchar(45)",'comment' => '笼位编号'),
        'sex' => array('type' => "varchar(45)",'comment' => '性别'),
        'birthday' => array('type' => "int(11)",'comment' => '小鼠生日'),
        'father' => array('type' => "varchar(255)",'comment' => '小鼠父亲'),
        'mother' => array('type' => "varchar(255)",'comment' => '小鼠母亲'),
        'strains_id' => array('type' => "varchar(255)",'comment' => '小鼠品系'),
        'gene' => array('type' => "varchar(255)",'comment' => '小鼠基因'),
        'hair_color' => array('type' => "varchar(255)",'comment' => '小鼠毛色'),
        'remark' => array('type' => "int(11)",'comment' => '备注'),
        'is_kill' => array('type' => "varchar(255)",'comment' => '是否杀死'),
        'is_delete' => array('type' => "varchar(255)",'comment' => '是否删除'),
        'cage' => array('type' => "varchar(255)",'comment' => '笼位id'),
        'type' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'created' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'c_user_id' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'weaning_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'nursing_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'grow_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'infertility_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'dose_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'jianwei_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'test_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'kill_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'del_time' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'jianwei_show' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'test_show' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'kill_show' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
        'del_show' => array('type' => "varchar(255)",'comment' => '是否为新生小鼠'),
    );
    public $pk = 'id';
    public function getModelList($params){
        $cageModel = new CageModel();
        $NewSquirrel = new NewSquirrelModel();
        //获取仓鼠信息
        $data['slist']=$this->field('id,number,sex,birthday,father,mother,strains_id as strains,gene,hair_color,cage,remark')->where("is_delete=0 and is_kill=0 {$params['where']}")->fList();
        foreach($data['slist'] as $key => &$val){
            $val['sex'] = $val['sex']==1?'公':'母';
            //获取笼位号
            $val['cage'] =$cageModel->getOneInfo($val['cage'])['number'];
            $val['icon'] = $this->getIcon($val['id'])['icon'];
        }
        //获取繁殖笼幼崽信息
        $data['youzailishi'] = !empty($NewSquirrel->getModelList($params))?$NewSquirrel->getModelList($params):[];


        return $data;
    }
    public function isFull($cage,$uid){
        $params['user_id'] = $uid;
        $CageSetModel = new CageSetModel();
        $time = date('Y-m-d',time());
        //获取鼠笼配置
        $cageSet = $CageSetModel->getsetinfo($params);
        //查询当前是否有幼崽
        $small = $this->field('count(*) num')->where("cage={$cage} and is_delete=0 and is_kill=0 and nursing_time>'{$time}'")->fRow();
        //查询当前鼠笼是否有成年鼠
        $big = $this->field('count(*) num')->where("cage={$cage} and is_delete=0 and is_kill=0 and nursing_time<'{$time}'")->fRow();
        $data = true;
        if($small['num']>0&&$big['num']>0){
            if($cageSet['big_small_num']<=$big['num']) $data = false;
        }
        if($small['num']>0&&$big['num']==0){
            if($cageSet['small_num_max']<=$big['num']) $data = false;
        }
        if($small['num']==0&&$big['num']>0){
            if($cageSet['big_num_max']<=$big['num']) $data = false;
        }else{
            $data = true;
        }
        return $data;
    }
    public function getOneInfo($squirrel){
        return $this->field('id,number,sex,birthday,father,mother,strains_id as strains,gene,hair_color,cage,remark')->where("id={$squirrel}")->fRow();
    }
    public function partent(){
        $time = date('Y-m-d',time());
        $data=$this->field('id,number,sex')->where("is_delete=0 and is_kill=0 and grow_time<'{$time}'")->fList();
        return $data;
    }
    public function getIcon($squirrel){
        $date = strtotime(date('Y-m-d',time()));
        $info = $this->field('nursing_time')->where("id={$squirrel}")->fRow();
        if(empty($info)){
            $data['icon'] = Yaf_Registry::get("config")->cangshu->url->small;
        }else{
            if(strtotime($info['nursing_time'])<$date){
                $data['icon'] = Yaf_Registry::get("config")->web->url->img.Yaf_Registry::get("config")->cangshu->url->big;
            }else{
                $data['icon'] = Yaf_Registry::get("config")->web->url->img.Yaf_Registry::get("config")->cangshu->url->small;
            }
        }
        return $data;
    }
    public function operate($params){
        foreach($params as $key => $val){
            if(empty($val)){
                unset($params[$key]);
            }
        }
        if(!$this->update($params)) return false;
        return true;
    }
}

