CACHE_KEY
CACHE_KEY = array(__CLASS__, "cms_article", "type") : string
缓存的键列表
<?php
/** ---- eapie ----
 * 优狐积木框架,让开发就像组装积木一样简单!
 * 解放千千万万程序员!这只是1.0版本,后续版本势如破竹!
 * 
 * QQ群:523668865
 * 开源地址 https://gitee.com/lxh888/openshop
 * 官网 http://eonfox.com/
 * 后端框架文档 http://cao.php.eonfox.com
 * 
 * 作者:绵阳市优狐网络科技有限公司
 * 电话/微信:18981181942
 * QQ:294520544
 */
namespace eapie\source\table\cms;
use eapie\main;
class cms_article_type extends main {
	
	
	
	/**
	 * 缓存的键列表
	 * 
	 * @var	string
	 */
	const CACHE_KEY = array(__CLASS__, "cms_article", "type");
	
	
	
	
	/**
	 * 数据检测
	 * 
	 * @var	array
	 */
	public $check = array(
		'cms_article_type_id' => array(
			//参数检测
			'args'=>array(
					'exist'=>array("缺少文章分类ID参数"),
					'echo'=>array("文章分类ID数据类型不合法"),
					'!null'=>array("文章分类ID不能为空"),
					),
			//检查编号是否存在		
			'exists_id'=>array(
					'method'=>array(array(parent::TABLE_CMS_ARTICLE_TYPE, 'find_exists_id'), "文章分类ID有误,数据不存在",) 
			),
			
		),
		
		
	);
	
	
	
	
		
	/**
	 * 获取一个id号
	 * 
	 * @param	void
	 * @return	string
	 */
	public function get_unique_id(){
		return cmd(array(22), 'random autoincrement');
	}
	
	
	
	
		
	/**
	 * 根据ID,判断是否存在
	 * 
	 * @param	string 		$cms_article_type_id
	 */
	public function find_exists_id($cms_article_type_id){
		return object(parent::CACHE)->data(__CLASS__, __METHOD__, array($cms_article_type_id), function($cms_article_type_id){
			return (bool)db(parent::DB_APPLICATION_ID)
			->table('cms_article_type')
			->where(array('cms_article_type_id=[+]', (string)$cms_article_type_id))
			->find('cms_article_type_id');
		});
		
	}
		
	
	
			
	/**
	 * 获取一个数据
	 * 
	 * @param	string	$cms_article_type_id
	 * @return	array
	 */
	public function find($cms_article_type_id = ''){
		if( empty($cms_article_type_id) ){
			return false;
		}
		
		return object(parent::CACHE)->data(__CLASS__, __METHOD__, array($cms_article_type_id), function($cms_article_type_id){
			return db(parent::DB_APPLICATION_ID)
			->table('cms_article_type')
			->where(array('cms_article_type_id=[+]', (string)$cms_article_type_id))
			->find();
		});
		
	}	
	
	
	
				
	/**
	 * 获取多条数据
	 *  $config = array(
	 * 	'where' => array(), //条件
	 * 	'orderby' => array(), //排序
	 * 	'limit'	=> array(0, page_size), //取出条数,默认不限制
	 *  'select' => array(),//查询的字段,可以是数组和字符串
	 * );
	 * 
	 * @param	array	$config
	 * @return	array
	 */
	public function select($config = array()){
		return object(parent::CACHE)->data(__CLASS__, __METHOD__, array($config), function($config){
			$where = isset($config['where']) && is_array($config['where'])? $config['where'] : array();
			$orderby = isset($config['orderby']) && is_array($config['orderby'])? $config['orderby'] : array();
			$limit = isset($config['limit']) && is_array($config['limit'])? $config['limit'] : array();
			$select = isset($config['select']) && is_array($config['select'])? $config['select'] : array();
				
			return db(parent::DB_APPLICATION_ID)
			->table('cms_article_type')
			->call('where', $where)
			->call('orderby', $orderby)
			->call('limit', $limit)
			->select($select);
		});
	}		
	
	
	
	
	/**
	 * 获取多条数据
	 *  $config = array(
	 * 	'where' => array(), //条件
	 * 	'orderby' => array(), //排序
	 * 	'limit'	=> array(0, page_size), //取出条数,默认不限制
	 *  'select' => array(),//查询的字段,可以是数组和字符串
	 * );
	 * 
	 * @param	array	$config
	 * @return	array
	 */
	public function select_join($config = array()){
		return object(parent::CACHE)->data(__CLASS__, __METHOD__, array($config), function($config){
			$where = isset($config['where']) && is_array($config['where'])? $config['where'] : array();
			$orderby = isset($config['orderby']) && is_array($config['orderby'])? $config['orderby'] : array();
			$limit = isset($config['limit']) && is_array($config['limit'])? $config['limit'] : array();
			$select = isset($config['select']) && is_array($config['select'])? $config['select'] : array();
			
			//类型
			$type = array(
				'table' => 'type t',
				'type' => 'INNER',
				'on' => 't.type_id = cat.type_id'
			);
			
			if( empty($select) ){
				$select = array(
					"cat.cms_article_type_id",
					"cat.cms_article_type_time",
					"cat.cms_article_id",
					"cat.type_id",
					"t.*",
				);
			}
			
			return db(parent::DB_APPLICATION_ID)
			->table('cms_article_type cat')
			->joinon($type)
			->call('where', $where)
			->call('orderby', $orderby)
			->call('limit', $limit)
			->select($select);
		});
		
	}		
	
	
	
	
	
	
			
	/**
	 * 更新数据
	 * 
	 * @param	array		$where
	 * @param	array		$data
	 * @param	array		$call_data
	 * @return	bool
	 */
	public function update($where = array(), $data = array(), $call_data = array()){
		if( empty($where) || (empty($data) && empty($call_data)) ){
			return false;
		}
		
		$bool = (bool)db(parent::DB_APPLICATION_ID)
		->table('cms_article_type')
		->call('where', $where)
		->call('data', $call_data)
		->update($data);
		
		if( !empty($bool) ){
			//清理当前项目缓存
			object(parent::CACHE)->clear(self::CACHE_KEY);
		}
		
		return $bool;
	}	
			
		
		
	
		
	/**
	 * 删除数据
	 * 
	 * @param	array	$where
	 * @return	array
	 */
	public function delete($where = array()){
		if( empty($where) ){
			return false;
		}
		
		$bool = (bool)db(parent::DB_APPLICATION_ID)
		->table('cms_article_type')
		->call('where', $where)
		->delete();
		
		if( !empty($bool) ){
			//清理当前项目缓存
			object(parent::CACHE)->clear(self::CACHE_KEY);
		}
		
		return $bool;
	}
		
		
	
	
		
					
	/**
	 * 根据唯一标识,删除数据
	 * 
	 * @param	array	$cms_article_type_id
	 * @return	array
	 */
	public function remove($cms_article_type_id = ''){
		if( empty($cms_article_type_id) ){
			return false;
		}
		
		$bool = (bool)db(parent::DB_APPLICATION_ID)
		->table('cms_article_type')
		->where(array('cms_article_type_id=[+]', (string)$cms_article_type_id))
		->delete();
		
		if( !empty($bool) ){
			//清理当前项目缓存
			object(parent::CACHE)->clear(self::CACHE_KEY);
		}
		
		return $bool;
	}		
		
	
	
	
    /**
     * 批量插入数据
     * 
     * @param   array $data 数据,索引数组
     * @return  bool
     */
    public function insert_batch($data){
        if (empty($data))
            return false;
        $bool = db(parent::DB_APPLICATION_ID)
        ->table('cms_article_type')
        ->batch()
        ->insert($data);
        //清理缓存
        if ($bool)
            object(parent::CACHE)->clear(self::CACHE_KEY);
        return $bool;
    }
	
	
	
	
	
			
	/**
	 * 插入新数据
	 * 
	 * @param	array		$data			数据
	 * @param	array		$call_data		数据
	 * @return	bool
	 */
	public function insert($data = array(), $call_data = array()){
		if( empty($data) && empty($call_data) ){
			return false;
		}
		
		$bool = (bool)db(parent::DB_APPLICATION_ID)
		->table('cms_article_type')
		->call('data', $call_data)
		->insert($data);
		
		if( !empty($bool) ){
			//清理当前项目缓存
			object(parent::CACHE)->clear(self::CACHE_KEY);
		}
		
		return $bool;
	}	
	
	
	
	
	/**
	 * 根据 分类ID 获取产品ID
	 * 
	 * @param	array		$where
	 * @return	string
	 */
	public function sql_search_type($where = array()){
		
		//类型
		$type = array(
			'table' => 'type t',
			'type' => 'INNER',
			'on' => 't.ype_id = cat.type_id'
		);
		
		return db(parent::DB_APPLICATION_ID)
		->table('cms_article_type cat')
		->joinon($type)
		->call('where', $where)
		->select(array('distinct cat.cms_article_id'), function($q){
			return $q['query']['select'];
		});
	}
	
	
	
	
	/**
	 * 获取父分类的所有商品ID
	 * 
	 * @param	string		$type_id		父分类ID
	 * @param	array		$call_where
	 * @return	string
	 */
	public function sql_join_type_parent_article_id($type_id, $call_where = array()){
		
		//二级分类数据
		$type = array(
			'table' => 'type t',
			'type' => 'INNER',
			'on' => 't.type_id = cat.type_id'
		);
		
		return db(parent::DB_APPLICATION_ID)
		->table('cms_article_type cat')
		->joinon($type)
		->where( array('t.type_parent_id = [+]', $type_id) )
		->call("where", $call_where)
		->select(array('distinct cat.cms_article_id'), function($q){
			return $q['query']['select'];
		});
	}
	
	
	
	/**
	 * 获取二级分类的所有商品ID
	 * 
	 * @param	string		$type_id
	 * @param	array		$call_where
	 * @return	string
	 */
	public function sql_join_type_son_article_id($type_id, $call_where = array()){
		
		//类型
		$type = array(
			'table' => 'type t',
			'type' => 'INNER',
			'on' => 't.type_id = cat.type_id'
		);
		
		return db(parent::DB_APPLICATION_ID)
		->table('cms_article_type cat')
		->joinon($type)
		->where( array('cat.type_id = [+]', $type_id) )
		->call("where", $call_where)
		->select(array('distinct cat.cms_article_id'), function($q){
			return $q['query']['select'];
		});
	}
	
		
	
	
	
	
}
?>