<?php
namespace model;
use \model;
use \model\check;
use \model\collocation;

class pbrand extends model
{

	public function getExtList($params, $rules = [])
	{
		$filters = $params['filters'];
		$page = $params['page'];
		$pagesize = $params['rows'];
		$sidx = empty($params['sidx'])? '': $params['sidx'];
		$sord = empty($params['sord'])? 'asc': $params['sord'];
		$orderby = $params['orderby'];

		$table = 'pro_brand_ext(pbe)';
		$join = [
			"[><]pro_brand(pb)" => ["pbe.pbe_pb_id" => "pb_id"],
			"[>]adm_user(au)" => ["pbe.pbe_opuser" => "au_id"]	
		];
        $where = $this->filter2medoo($filters,function(&$field,&$op,&$data){
			
        });
		
		if(!empty($params['keys'])) $where['pbe_id'] = explode(',', $params['keys']);
		if(!empty($params['pb_id'])) $where['pb_id'] = explode(',', $params['pb_id']);
		if(!empty($params['type'])) $where['pbe_type'] = explode(',', $params['type']);
		if(!empty($params['query'])) $where['pbe_val[~]'] = $params['query'];
        $where = $this->listWhere($where,$page,$pagesize,$sidx,$sord,$orderby);
		if($page>0 && $pagesize>0){
			$fields = '*';
			$pages = $this->paging($table,$join,$fields,$where,$page,$pagesize);
			$where["LIMIT"] = [$pages['limit'],$pagesize];
		}

		$fields = '*';
        $arr = $this->db->select($table,$join,$fields,$where);
		if(!empty($arr)){
			$collocation = new collocation();
			$collArr = $collocation->getCollItems('work');
			foreach($arr as &$v){
				$v['captions'] = [
					'pbe_size_unit'=>!empty($collArr[$v['pbe_size_unit']])? $collArr[$v['pbe_size_unit']]: '',
					'pbe_opuser'=>$v['au_name']
				];
			}
		}

		$data = [
			'page'=> $page,
			'total'=> $pages['total'],
			'records' => $pages['records'],
			'rows' => $arr
		];
		return $data;
	}

	//删除
	public function delData($table, $idArr)
	{
		if(empty($idArr) || !is_array($idArr)) return [];
		$this->db->Begin();
		if($table == 'pro_brand_ext'){
			$this->db->delete('pro_brand_ext', ['pbe_id'=>$idArr]);
		}
		$this->db->End();
		return [];
	}

	
	//编辑
	public function setExtCell($kid, $setArr)
	{
		if(!empty($kid) && !empty($setArr))
		{
			$ignoreFileds = ['pbe_pb_id', 'pbe_type'];
			$old = $this->db->get('pro_brand_ext', '*', ['pbe_id'=>$kid]);
			if(empty($old)) exitJson('记录不存在');

			$this->db->Begin();
			foreach($setArr as $filed=>$val){
				if(in_array($filed, $ignoreFileds) || stripos($filed, 'pbe_') !== 0){
					unset($setArr[$filed]);
					continue;
				}
			}
			if(!empty($setArr)){
				$opuser = getOpuser();
				$datetime = getNowTime();
				$setArr['pbe_opuser'] = $opuser;
				$setArr['pbe_update_time'] = $datetime;
				if(isset($setArr['pbe_val'])){
					$exists = $this->db->get('pro_brand_ext', 'pbe_id', ['pbe_pb_id'=>$old['pbe_pb_id'], 'pbe_type'=>$old['pbe_type'], 'pbe_val'=>$setArr['pbe_val'], 'pbe_id[!]'=>$kid]);
					if(!empty($exists)) exitJson('记录已存在');
				}
				$this->db->update('pro_brand_ext', $setArr, ['pbe_id'=>$kid]);
			}
			$this->db->End();
		}
		return [];
	}

	public function getDetail($kid)
	{	
		$rulesArr = ['B'=>'商品品牌', 'M'=>'汽车品牌', 'C'=>'小类','S'=>'流水号'];
		$detail = $this->db->get('pro_brand', '*', ['pb_id'=>$kid]);
		if($detail['pb_rules']){
			$arr = explode('@', $detail['pb_rules']);
			foreach ($arr as $val) {
				$detail['rulesArr'][] = ['key'=>$val,'name'=>$rulesArr[$val]];
			}
		}
		return $detail;
	}

}