<?php
namespace admin\action;
use \model\carmodel;
use \model\collocation;
use \model\tags;
use \model\make;
class carmodelAction  extends \action{
	public function getModelFiled()
	{
		$carmodel = new carmodel();
		$fileds = $carmodel->fieldLnkCaption;
		$data = [];
		foreach($fileds as $fk=>$fv)
		{
			$data[] = ['key'=>$fk, 'value'=>$fv];
		}
		$this->successJson($data);
	}


	public function smallModelfields()
	{
		$carmodel = new carmodel();
		$fileds = $carmodel->smallModelfields;
		$data = [];
		foreach($fileds as $fk=>$fv)
		{
			$data[] = ['key'=>$fk, 'value'=>$fv];
		}
		$this->successJson($data);
	}


	public function proExpModelfields()
	{
		$carmodel = new carmodel();
		$fileds = $carmodel->proExpModelfields;
		$data = [];
		foreach($fileds as $fk=>$fv)
		{
			$data[] = ['key'=>$fk, 'value'=>$fv['value'],'en'=>$fv['en'],'cn'=>$fv['cn']];
		}
		$this->successJson($data);
	}
	
	
	public function makeList(){
		$req = \mvc::$req;
		$where = [];
		if($req['filters']){
			$where = $this->filter2medoo($req['filters']);
		}
		$make = new make();
		$data = $make->list($where, $req['page'], $req['rows'], $req['sidx'], $req['sord'],"mk_name");
		$this->successJson($data);
	}
    public function makeEditCell()
    {
		$req = \mvc::$req;
        $id = $req['id'];
        $oper = $req['oper'];
        $field = $req['field'];
        $value = $req[$field];
        $make = new make();
        if($oper=='edit'){
            $make->setValue($id,$field,$value);
        }
    }

	public function getSeries()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$rows = $carmodel->getModelSeries($req['mk_id']);
		$data = [];
		foreach($rows as $k=>$v)
		{
			$data[] = ['key'=>$v['ms_id'], 'value'=>$v['ms_name']];
		}
		$this->successJson($data);
	}
	
	public function getCollNodes()
	{
		$req = \mvc::$req;
		$collocation = new collocation();
		$rows = $collocation->getParentNodes($req['parent_id']);
		$data = [];
		foreach($rows as $k=>$v)
		{
			
			$data[] = ['key'=>$v['o_id'], 'value'=>$v[LG_NAME]];
		}
		$this->successJson($data);
	}


	public function getModelList()
	{
		$req = \mvc::$req;
        $carmodel = new carmodel();
		$req['orderby'] = 'mk_'.LG_NAME.',ms_name,mm_name';
		$rules = $this->urlRulesToWhere($req);
        $data = $carmodel->getModelList($req, $rules);
        $this->successJson($data);
	}

	public function getModelGroupList()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$req['orderby'] = 'mk_'.LG_NAME.',ms_name,mm_name';
        $data = $carmodel->getModelGroupList($req);
        $this->successJson($data);
	}

	public function lists()
	{
		$req = \mvc::$req;
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
	}


	/**
	  * @method 删除大车型
	  * @param  mkid int [必填] 大车型ID
	  * @author soul
	  */
	public function delModelMake()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$data = $carmodel->delModelMake($req['mkid']);
		$this->successJson($data);
	}

	/**
	  * @method 删除小车型
	  * @param  ids int array [必填] [1,2,3,...]
	  * @author soul
	  */
	public function delSeries()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$data = $carmodel->delSeries($req['ids']);
		$this->successJson($data);
	}


	/**
	  * @method 检测删除车型
	  * @param  ids array [必填] 1,2,3,...
	  * @author soul
	  */
	public function chkdelModels()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$data = $carmodel->chkdelModels(explode(',', $req['ids']));
		$this->successJson($data);
	}

	/**
	  * @method 删除车型
	  * @param  ids array [必填] 1,2,3,...
	  * @author soul
	  */
	public function delModels()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$data = $carmodel->delModels(explode(',', $req['ids']), $req['delremark']);
		$this->successJson($data);
	}


	/**
	  * @method 获取品牌id
	  * @param  regionids  string  [必填] 多个逗号分隔
	  * @author soul
	  */
	public function getMakeIds()
	{
		$req = \mvc::$req;
		$carmodel = new \model\carmodel();
		$data = $carmodel->getMakeIds($req['regionids']);
		$this->successJson($data);
	}
	

	/**
	  * @method 小车型明细
	  * @param  ms_id int [必填] 小车型ID
	  * @author soul
	  */
	public function seriesDetail()
    {
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$dataArr = [];
		if(!empty($req['ms_id']))
		{
			$dataArr = $carmodel->getSeriesInfo($req['ms_id']);
		}
		else if(!empty($req['mk_id']))
		{
			$rows = $carmodel->getMakeInfo($req['mk_id']);
			if(!empty($rows))
			{
				$dataArr = [
					'ms'=>[
						'mk_id'=>$rows['mk_id'],
						'mk_name'=>$rows['mk_name']
					]
				];
			}
		}
		\view::set('dataArr', $dataArr);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
    }

	/**
	  * @method 保存|新增 小车型
	  * @author soul
	  */
	public function saveSeriesDetail()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$setArr = ['base'=>$req['base'], 'areas'=>[]];
		if(!empty($req['areas']))
		{
			foreach($req['areas'] as $id=>$v)
			{
				if(!empty($v['checked']))
					$setArr['areas'][] = ['sal_ma_id'=>$id, 'sal_ms_id'=>$req['ms_id'], 'sal_name'=>$v['sal_name']];
			}
		}

		$data = $carmodel->saveSeriesDetail($req['ms_id'], $setArr);
		$this->successJson($data);
	}

	/**
	  * @method 小车型的单字段
	  * @author soul
	  */
	public function setSeriesCell()
	{
		$req = \mvc::$req;
        $msid = $req['id'];
        $field = $req['field'];
        $value = $req[$field];
		$setArr = [
			$req['field']=>$req[$req['field']]
		];
		$carmodel = new carmodel();
		$carmodel->setSeriesCell($req['id'], $setArr);
	}

	/**
	  * @method 车型明细
	  * @param  mm_id int [必填] 车型ID
	  * @author soul
	  */
	public function modelDetail()
    {
		$req = \mvc::$req;
		$carmodel = new carmodel();
		if(!empty($req['mm_id']))
		{
			$dataArr = $carmodel->getModelInfo($req['mm_id']);
		}
		else if(!empty($req['ms_id']))
		{//&mk_id=1&ms_id=200
			$dataArr = $carmodel->getSeriesInfo($req['ms_id']);
		}
		$collocation = new collocation();
		$sourceArr = $collocation->getParentNodes(23);
		\view::set('sourceArr', $sourceArr);

		if(!empty($dataArr['source_link']))
		{
			$dataArr['source_link'] = array_column($dataArr['source_link'], null, 'mms_source');
		}
		\view::set('ma_id', (int) $req['ma_id']);
		\view::set('dataArr', $dataArr);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
    }
	
	/**
	  * @method 保存|新增 车型
	  * @author soul
	  */
	public function saveModelDetail()
	{
		$req = \mvc::$req;
		$setArr = ['base'=>$req['base'], 'source'=>$req['source'], 'sale_coun'=>$req['sale_coun']];
		$carmodel = new carmodel();
		$data = $carmodel->saveModelDetail($req['mm_id'], $setArr);
		$this->successJson($data);
	}

	

	/**
	  * @method 大车型列表
	  * @author soul
	  */
	public function mkList()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		$data = $carmodel->getModelMake();
		\view::set('makeArr',$data);
		if(!empty($data))
		{
			$tjrows = $carmodel->getModelMakeCount(array_column($data, 'mk_id'), $req['ma_id']);
			\view::set('tjArr', array_column($tjrows, null, 'mk_id'));
		}

		\view::set('req', $req);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
	}
	

	/**
	  * @method 小车型列表
	  * @author soul
	  */
	public function msList()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();

		$data = $carmodel->getModelSeries($req['mk_id']);
		\view::set('msArr',$data);
		if(!empty($data))
		{
			$tjrows = $carmodel->getModelSeriesCount(array_column($data, 'ms_id'), $req['ma_id']);
			\view::set('tjArr', array_column($tjrows, null, 'ms_id'));
		}
		\view::set('req', $req);
		\view::set('QUERY_STRING', $_SERVER['QUERY_STRING']);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
	}

	/**
	  * @method 小车型列表
	  * @author soul
	  */
	public function getSeriesList()
	{
		$req = \mvc::$req;
        $carmodel = new carmodel();
		$req['orderby'] = 'mk_'.LG_NAME.',ms_name';
        $data = $carmodel->getSeriesList($req);
        $this->successJson($data);
	}



	/**
	  * @method 车型列表
	  * @author soul
	  */
	public function mmList()
	{
		$req = \mvc::$req;
		\view::set('QUERY_STRING', $_SERVER['QUERY_STRING']);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
	}


	/**
	  * @method 同步车型
	  * @author soul
	  */
	public function uploadModel()
	{
		set_time_limit(0);
		ignore_user_abort(true);
		set_time_limit(\mvc::$cfg['bigtable_memory_limit']);
		$req = \mvc::$req;
        $carmodel = new carmodel();
        $data = $carmodel->uploadModel();
		$this->successJson($data);
	}

	public function getSelectData()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
        $data = $carmodel->getSelectData($req);
		$this->successJson($data);
	}

	public function setHotBrand()
	{
		$req = \mvc::$req;
        $ckv = new \model\ckv();
		$hot = explode(',', $req['ids']);
		$data = $ckv->setKV('hot_brands', $hot);
        $this->successJson([]);
	}
}