<?php

/**
 * core\lib\block\BlockLevelInfo.php
 */

/**
 * 小区完善度紧急程度等级
 *
 * @author Administrator
 */
class BlockLevelInfo {
    /**
     *
     * @var TINY_ADODB 主数据库
     */
    private $db;
    /**
     *
     * @var TINY_ADODB 从数据库
     */
    private $dbback;
    /**
     *
     * @var Memcache 缓存 
     */
    private $mc;
    /**
     *
     * @var string 表名
     */
    private $table;
    /**
     *
     * @var array 表中包含字段
     */
    public static $fields = array('id', 'block_id', 'level', 'utime');

    /**
     * 构造函数 ，初始化db，memcache等
     * @param string $table 表名
     */
    public function __construct($table = 'block_level_info_full') {
        $container = Container::getInstance();
        $this->db = $container->get('db');
        $this->dbback = $container->get('dbback');
        $this->mc = $container->get('mc');
        $this->table = $table;
    }
    
    /**
     * 增加一条小区资料紧急程度等级数据
     * @param array $fieldData 包含block_id,level的数组
     * @return int 返回插入数据的id
     */
    public function insert($fieldData) {
        $sql = SqlCombinHelper::insert_sql($this->table, $fieldData);
        $this->db->Execute($sql);
        return $this->db->Insert_ID();
    }
    
    /**
     * 增加多条小区资料紧急程度等级数据
     * @param array $fieldsData 包含block_id,level的二维数组
     * @return int 插入的条数
     */
    public function insertMutl($fieldsData) {
        $sql = SqlCombinHelper::insertMutil_sql($this->table, $fieldsData);
        //exit;
        $this->db->Execute($sql);
        return $this->db->Affected_Rows();
    }

    /**
     * 根据小区id查找小区资料完善等级
     * @param int $blockId 小区id
     * @return array 包含小区等级的数组
     */
    public function findByBlockId($blockId) {
        $sql = SqlCombinHelper::select_sql($this->table,  self::$fields, "block_id='$blockId'");
        return $this->db->getRow($sql);
    }
    
    /**
     * 查找等级为$level的小区
     * @param  mixed $level 正整数或者★，★★，...
     * @return array 返回包含小区id的二维数组
     */
    public function findByLevel($level) {
        if(is_numeric($level)) {
            $where = "level=$level";
        } else {
            $where = "level='$level'";
        }
        $sql = SqlCombinHelper::select_sql($this->table, self::$fields,  $where);
        return $this->db->Execute($sql);
    }
    
    /**
     * 清空小区资料完善程度等级表
     */
    public function emptyTable() {
        $sql = "TRUNCATE TABLE $this->table";
        $this->db->Execute($sql);
    }
    
    /**
     * 重新刷新小区等级数据
     * @param array $data 包含小区等级的数组,如array(0=>array('block_id'=>10,'level'=>'A'))
     * @return int 返回刷新的条数
     */
    public function refreshData($data) {
        $this->emptyTable();
        return $this->insertMutl($data);
    }
}

?>
