<?php
namespace Api\Model;
use Api\Model\BaseModel;
/**
 * 
 * @author star7th      
 */
class ItemTokenModel extends BaseModel {

	public function createToken($item_id){
		$api_key = md5(md5($item_id.microtime().rand()."showdoc")."srffsrfgr".rand()).rand();
		$api_token = md5(md5($item_id.microtime().rand()."showdoc")."rgrhbtgd34".rand()).rand();
		$data['item_id'] = $item_id ;
		$data['api_key'] = $api_key ;
		$data['api_token'] = $api_token ;
		$data['addtime'] = time() ;
		$ret = $this->add($data);
		if ($ret) {
			return $ret ;
		}
		return false ;
	}

	public function getTokenByItemId($item_id){
		$item_token = $this->where("item_id='$item_id'")->find();
		if (!$item_token) {
			$this->createToken($item_id);
			$item_token = $this->where("item_id='$item_id'")->find();
		}
		return $item_token ;
	}

	public function getTokenByKey($api_key){
		$item_token = $this->where("api_key='%s'",array($api_key))->find();
		return $item_token ;
	}

	public function setLastTime($item_id){
		return $this->where("item_id='$item_id'")->save(array("last_check_time"=>time()));
	}

	//检查token。如果检测通过则返回item_id
	public function check($api_key , $api_token){
        $ret = $this->getTokenByKey($api_key);
        if ($ret && $ret['api_token'] == $api_token) {
            $item_id = $ret['item_id'] ;
            $this->setLastTime($item_id);
            return $item_id ;
        }else{
            return false;
        }
	}

	
}