<?php
namespace model\sample;
use \model;
use \model\carmodel;
/**
 * Class 样品车型关系
 * @package model
 */
class samCarmodel extends model
{
	public $table = 'sample_model_link';
    public $key = 'sml_id';

	/**
	  * @method 样品的适用车型
	  * @param  $s_id  int  [必填] 样品ID
	  * @author soul
	  */
	public function getModel($s_id, $params)
	{
		$filters = $params['filters'];
		
		$refiled = [
			'mk_name'=>'mk.name',
			'ms_name'=>'ms.name',
			'mm_name'=>'mm.name',
		];
		$sidx =  strtr( $sidx, $refiled);

		$table = 'sample_model_link(sml)';
		$join = [
			"[><]m_model(mm)" => ["sml.sml_mm_id" => "mm_id"],
			"[><]m_series(ms)" => ["mm.mm_ms_id" => "ms_id"],
			"[><]m_make(mk)" => ["mm.mm_mk_id" => "mk_id"],
		];
		$this->set('refiled', $refiled);
        $where = $this->filter2medoo($filters,function(&$field,&$op,&$data){
			$field = strtr( $field, $this->get('refiled'));
        });
		$where['sml_s_id'] = $s_id;
		$modArr = $this->db->select($table,$join, ['sml.*','mm_id'],$where);
		if(!empty($modArr))
		{
			$carmodel = new carmodel();
			$modInfoArr = $carmodel->getModelInfoByIds(array_column($modArr, 'mm_id'));
			$modInfoArr = array_column($modInfoArr, null, 'mm_id');
			$carmodel = new carmodel();
			$collArr = $carmodel->getModelCollItems();
			foreach($modArr as $k=>$v)
			{
				if(!empty($modInfoArr[$v['mm_id']])) 
					$v = array_merge($modInfoArr[$v['mm_id']], $v);
				$modArr[$k] = $v;
			}
		}
		return $modArr;
	}



    /**
	  * @method 添加样品的适用车型
	  * @param  $s_id  int  [必填] 样品ID
	  * @param  $mmArr array  [必填] [
			['sml_mm_id'=>11, 'sml_pos0'=>'选填', ....]
		]
	  * @author soul
	  */
	public function addModel($s_id, $mmArr)
	{
		if(!empty($s_id) && !empty($mmArr))
		{
			$opuser = getOpuser();
			$datetime = getNowTime();
			$check = new \model\check();
			$this->db->Begin();
			foreach($mmArr as $mmid=>$row)
			{
				if(!empty($row['sml_mm_id']))
				{
					$row['opuser'] = $opuser;
					$row['sml_s_id'] = $s_id;
					$row['create_time'] = $datetime;
					$row['update_time'] = $datetime;
					$this->db->insert('sample_model_link', $row);
				}
			}
			$this->db->End();
		}
		return [];
	}

	/**
	  * @method 编辑样品的适用车型的基本信息
	  * @param  $s_id  int  [必填] 样品ID
	  * @param  $setArr  array  [必填] ['sml_pos0'=>'',....]
	  * @author soul
	  */
	public function setModelInfo($sml_id, $setArr)
	{
		if(!empty($sml_id) && !empty($setArr))
		{
			$opuser = getOpuser();
			$datetime = getNowTime();
			$this->db->Begin();
			foreach($setArr as $row)
			{
				if(!empty($row))
				{
					$row['opuser'] = $opuser;
					$row['update_time'] = $datetime;
					$this->db->update('sample_model_link', $row, ['sml_id'=>$sml_id]);
				}
			}
			$this->db->End();
		}
		return [];
	}


	/**
	  * @method 删除样品的适用车型
	  * @param  $s_id  int  [必填] 样品ID
	  * @param  $mmidArr array  [必填] 车型ID
	  * @author soul
	  */
	public function delModel($s_id, $mmidArr)
	{
		$this->db->delete('sample_model_link', ['sml_s_id'=>$s_id, 'sml_mm_id'=>$mmidArr]);
		return [];
	}

	public function deleteRows($keys)
    {
        if(!is_array($keys)) $keys = explode(',',$keys);
		return $this->db->delete('sample_model_link',['sml_id'=>$keys]);
    }
}
