<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * zsb
 *
 * 租售宝系统类库
 *
 * @package         zsb
 * @author          EllisLab Dev Team
 * @copyright      Copyright (c) 2006 - 2014, HOUSE365, Inc.
 * @link            http://nj.sell.house.com
 * @since           Version 1.0
 */

// ------------------------------------------------------------------------

/**
 * House_demand_base_model CLASS
 *
 * 求购、求租管理类，提供管理求购、求租信息的方法。
 *
 * @package         zsb
 * @subpackage      Models
 * @category        Models
 * @author          xz     
 */
class House_demand_base_model extends MY_Model{
   
    /**
     * 求购、求租用户编号
     *
     * @access private
     * @var integer
     */
    private $_uid    = 0;
    
    /**
     * 求购、求租信息编号
     *
     * @access private
     * @var integer
     */
    private $_id    = 0;

    /**
     * 用户操作内容所在的城市
     *
     * @access private
     * @var string
     */
    private $_city = NULL;
    
    
    /**
     * 求购、求租信息表
     *
     * @access private
     * @var string
     */
    private  $_tbl = NULL;
    
    
    /**
     * 求购、求租信息表名称数组
     *
     * @access private
     * @var string
     */
    protected $_tbl_arr = array( 'buy' , 'rentwanted');
    
    /**
     * 需求表查询字段
     *
     * @access private
     * @var array
     */
    private $_search_fields = array();
    
    
    /**
     * Constructor
     */
    public function __construct(1,1,1) 
    {
        parent::__construct();
    }
    
    
    /**
     * 初始化求购求租信息编号
     *
     * @access	public
     * @param	int $id 经纪人账号编号
     * @return	void
     */
    public function set_id( $id )
    {
        $this->_id = intval( $id );
    }
    
    
    /**
     * 获取求购求租信息编号
     *
     * @access	public
     * @param	void
     * @return	int 求购求租信息编号
     */
    public function get_id( )
    {
        return $this->_id;
    }
    
    
    /**
     * 初始化求购、求租用户编号
     *
     * @access	public
     * @param	int $uid 求购、求租用户编号
     * @return	void
     */
    public function set_uid( $uid )
    {
        $this->_uid = intval( $uid );
    }
    
    
    /**
     * 获取求购、求租用户编号
     *
     * @access	public
     * @param	void
     * @return	int 求购、求租用户编号
     */
    public function get_uid( )
    {
        return $this->_uid;
    }
    
    
    /**
     * 设置求购、求组信息表
     *
     * @access	public
     * @param	string $tbl_name 表名称
     * @return	void
     */
    public function set_tbl( $tbl_name )
    {
        $this->_tbl = strip_tags( $tbl_name );
    }
    
    
    /**
     * 获取需求信息表名称
     *
     * @access	public
     * @param	void
     * @return	string 需求信息表名称
     */
    public function get_tbl( )
    {
        return $this->_tbl;
    }
    
    
    /**
     * 设置的房源需求信息表需要查询的字段数组
     *
     * @access	public
     * @param	array  $arr_fields 房源信息字段
     * @return	void
     */
    public function set_search_fields( $arr_fields )
    {
        $this->_search_fields = $arr_fields;
    }
    
    
    /**
     * 获取设置的房源需求信息表需要查询的字段数组
     *
     * @access	public
     * @param	void
     * @return	array  房源需求信息表需要查询的字段数组
     */
    public function get_search_fields()
    {
        return $this->_search_fields;
    }
    
    
    /**
     * 添加房源需求信息
     *
     * @access	protected
     * @return	boolean 是否添加成功，TRUE-成功，FAlSE失败。
     */
    protected function add_info($data_info)
    {
        $this->db->insert( $this->get_tbl() , $data_info );

        return ( $this->db->affected_rows() == 1 ) ? $this->db->insert_id() : FALSE;
    }
    
    
    /**
     * 根据编号删除需求信息
     *
     * @access	protected
     * @return	boolean 是否删除成功，TRUE-成功，FAlSE失败。
     */
    protected function delete_info_by_id()
    {   
        $id = $this->get_id();
        
        $tbl_name = $this->get_tbl();
        
        $this->db->delete($tbl_name , array( 'id' => $id ) ); 

        return ( $this->db->affected_rows() == 1 ) ? TRUE : FALSE;
    }
    
    
    /**
     * 根据多个编号批量删除需求信息
     *
     * @access	protected
     * @param	array  $arr_ids 需求信息编号数组
     * @return	boolean 是否删除成功，TRUE-成功，FAlSE失败。
     */
    protected function delete_info_by_ids($arr_ids)
    {   
        $tbl_name = $this->get_tbl();
        
        if( isset( $arr_ids ) && !empty( $arr_ids ) )
        {   
            //查询字段
            $arr_ids_str = implode( ',' , $arr_ids ) ;
            $cond_where = "id IN(".$arr_ids_str.")";
            
            $this->db->where($cond_where);
            $this->db->delete($tbl_name);
        }

        return ( $this->db->affected_rows() >= 1 ) ? TRUE : FALSE;
    }
    
    
    /**
     * 更新某条房源需求信息
     *
     * @access	protected
     * @param	array  $update_arr  需要更新字段的键值对
     * @param	string  $cond_where 更新条件
     * @param	boolean  $escape 是否转义更新字段的值
     * @return	boolean 是更新成功，TRUE-成功，FAlSE失败。
     */
    protected function update_info_by_cond( $update_arr , $cond_where , $escape = TRUE )
    {
        $tbl_name = $this->get_tbl();
        
        if( $tbl_name == '' || empty($update_arr) || $cond_where == '')
        {
            return FALSE;
        }
        
        foreach($update_arr as $key => $value)
        {
            $this->db->set( $key , $value , $escape);
        }

        //设置条件
        $this->db->where( $cond_where );
        
        //更新数据
        $this->db->update( $tbl_name ); 

        return ( $this->db->affected_rows() == 1 ) ? TRUE : FALSE;
    }
    
    
    /**
     * 更新某条房源需求信息
     *
     * @access	protected
     * @param	array  $update_arr 需要更新字段的键值对
     * @param	boolean  $escape 是否转义更新字段的值
     * @return	boolean 是更新成功，TRUE-成功，FAlSE失败。
     */
    public function update_info_by_id( $update_arr , $escape = TRUE )
    {
        $id = $this->get_id();
        
        if( $id > 0)
        {
            $cond_where = "id = '".$id."' ";
            return $this->update_info_by_cond( $update_arr , $cond_where , $escape);
        }
        else
        {
            return FALSE;
        }
    }
    
    
    /**
     * 获取符合条件的房源需求信息条数
     *
     * @access	protected
     * @param	string  $cond_where 查询条件
     * @return	int   符合条件的求购信息条数
     */
    protected function get_count_by_cond( $cond_where = '' )
    {
        $count_num = 0;
        
        //房源需求信息表
        $tbl_demand = $this->get_tbl();
        
        //查询条件
        if( $cond_where != '')
        {
            $this->dbback->where( $cond_where );
            $count_num = $this->dbback->count_all_results( $tbl_demand );
        }
        
        return  intval( $count_num );
    }
    
    
    /**
     * 获取符合条件的房源需求信息列表
     *
     * @access	protected
     * @param	string  $cond_where 查询条件
     * @param	int     $offset 偏移数,默认值为0
     * @param	int     $limit 每次取的条数，默认值为10
     * @param	string  $order_key 排序字段，默认值
     * @param	string  $order_by  升序、降序，默认降序排序
     * @return	array   求购求租信息列表
     */
    protected function get_list_by_cond( $cond_where , $offset = 0 , $limit = 10 , $order_key = 'creattime' , $order_by = 'DESC' )
    {   
        //房源需求信息表
        $tbl_demand = $this->get_tbl();
        
        //需要查询的房源需求信息字段
        $select_fields = $this->get_search_fields();
        
        if( isset( $select_fields ) && !empty( $select_fields ) )
        {   
            //查询字段
            $select_fields_str = implode( ',' , $select_fields ) ;
            $this->dbback->select( $select_fields );
        }
        
        //查询条件
        if( $cond_where != '')
        {
            $this->dbback->where( $cond_where );
        }

        //排序条件
        $this->dbback->order_by( $order_key , $order_by );

        //查询
        $arr_data = $this->dbback->get( $tbl_demand , $limit , $offset )->result_array();

        return  $arr_data;
    }
    
    
    /**
     * 根据条件获取求购、求租信息
     *
     * @access	protected
     * @param	string  $cond_where 查询条件
     * @return	array 求购、求租信息
     */
    protected function get_info_by_cond( $cond_where )
    {
        $arr_data = array();
        
        //获取表名称
        $tbl_demand = $this->get_tbl();

        //获得需要查询的求购、求租信息字段
        $select_fields = $this->get_search_fields();
        if( isset( $select_fields ) && !empty( $select_fields ) )
        {   
            $select_fields_str = implode( ',' , $select_fields ) ;
            $this->dbback->select( $select_fields_str );
        }
        
        //查询条件
        if( $cond_where != '')
        {
            $this->dbback->where( $cond_where );
        }

        //查询
        $arr_data = $this->dbback->get( $tbl_demand )->row_array();
        
        return $arr_data;
    }
    
    
    /**
     * 根据求购、求租编号获取求购、求租信息
     *
     * @access	protected
     * @return	array 求购求租信息
     */
    public function get_info_by_id()
    {   
        $demandinfo = array();
        
        //获取求购、求租信息编号
        $id = $this->get_id();
        
        if( $id <= 0)
        {
            return $demandinfo;
        }
        
        $cond_where = "id = ".$id;
        $demandinfo = $this->get_info_by_cond( $cond_where );
        
        return $demandinfo;
    }
}
/* End of file house_demand_base_model.php */
/* Location: ./application/models/house_demand_base_model.php */