<?php
namespace admin\action\pro;
use \model\carmodel;
use \model\pro\promodel;
use \model\pro\cate;
class carmodelAction  extends \action
{
	/**
	  * @method 车型 数据
	  * @author soul
	  */
	/*public function getProModelList()
	{
		$req = \mvc::$req;
        $promodel = new promodel();
        $data = $promodel->getAnyProModelList($req);
        $this->successJson($data);
	}*/


	/**
	  * @method 待进入车型
	  * @author soul
	  */
	function listTemp()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		\view::set('carModelFileds', $carmodel->fieldLnkCaption);
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::set('req', $req);
		\view::put();
	}


	/**
	  * @method 待进入车型 数据
	  * @author soul
	  */
	public function getListTemp()
	{
		$req = \mvc::$req;
		$rules = $this->urlRulesToWhere($req);
		if(isset($req['numbers'])){
			$rules['numbers'] = explode(',', $req['numbers']);
			$rules['numlike'] = empty($req['numlike']) ? 0 : $req['numlike'];
		}
        $promodel = new promodel();
        $data = $promodel->getListTemp($req, $rules);
        $this->successJson($data);
	}



	/**
	  * @method 虚删除
	  * @author soul
	  */
	function listTempDel()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		\view::set('carModelFileds', $carmodel->fieldLnkCaption);
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::put();
	}

	/**
	  * @method 虚删除数据
	  * @author soul
	  */
	public function getListTempDel()
	{
		$req = \mvc::$req;
		$req['pmlt_status'] = -1;
		$rules = $this->urlRulesToWhere($req);
		if(isset($req['numbers'])){
			$rules['numbers'] = formatNums($req['numbers']);
			$rules['numlike'] = empty($req['numlike']) ? 0 : $req['numlike'];
		}
        $promodel = new promodel();
        $data = $promodel->getListTemp($req, $rules);
        $this->successJson($data);
	}



	/**
	  * @method 待进入车型明细
	  * @param  pmlt_id int [必填] ID
	  * @author soul
	  */
	public function proModelTempDetail()
    {
		$req = \mvc::$req;
		$dataArr = [];
		if(!empty($req['pmlt_id']))
		{
			$promodel = new promodel();
			$dataArr = $promodel->getListTemp($req);
			$dataArr = $dataArr['rows'][0];
			if(!empty($dataArr['areas']))
				$dataArr['areas'] = array_column($dataArr['areas'], null, 'ma_id');
		}
		\view::set('dataArr', $dataArr);
		$carmodel = new carmodel();
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
    }

	/**
	  * @method 保存|新增 待进入车型
	  * @author soul
	  */
	public function saveProModelTempDetail()
	{
		$req = \mvc::$req;
		$setArr = ['base'=>$req['base'], 'areas'=>[], 'tags'=>$req['tags']];
		if(!empty($req['areas']))
		{	
			$carmodel = new carmodel();
			foreach($req['areas'] as $id=>$v)
			{
				if(!empty($v['checked']))
					$setArr['areas'][] = ['pmat_ma_id'=>$id, 'pmat_catalog_notes'=>$v['pmat_catalog_notes']];
			}
		}
		$promodel = new promodel();
		$data = $promodel->saveProModelTempDetail($req['pmlt_id'], $setArr);
		if(!empty($data['msg'])) exitJson($data['msg']);
		$this->successJson($data);
	}


	
	/**
	  * @method 删除待进入
	  * @param  ids string [必填] pnt_id 1,2,3...
	  * @author soul
	  */
	public function delProModelTemp()
	{
		$req = \mvc::$req;
		$promodel = new promodel();
		$data = $promodel->delProModelTemp(explode(',', $req['ids']));
		$this->successJson($data);
	}

	
	/**
	  * @method 编辑待进入单字段
	  * @param  id  int  [必填] pnt_id
	  * @param  field  string  [必填] 字段
	  * @author soul
	  */
	public function setProModelCellTemp()
	{
		$req = \mvc::$req;
		if(!empty($req['id']) && preg_match('/^\d+$/', $req['id']))
		{
			$setArr = [
				$req['field']=>$req[$req['field']]
			];
			$promodel = new promodel();
			$promodel->setProModelCellTemp($req['id'], $setArr);
		}
	}



	/**
	  * @method 初审待进入产品
	  * @param  ids array [必填] 1,2,3,...
	  * @param  ckresult1 int [必填] 结论
	  * @param  ckremark1 string [必填] 核对备注
	  * @author soul
	  */
	public function check1Temp()
	{
		$req = \mvc::$req;
		$promodel = new promodel();
		$data = $promodel->check1Temp(explode(',', $req['ids']), $req);
		$this->successJson($data);
	}
	
	/**
	  * @method 复审待进入产品
	  * @param  ids array [必填] 1,2,3,...
	  * @param  ckresult2 int [必填] 结论
	  * @param  ckremark2 string [必填] 核对备注
	  * @author soul
	  */
	public function check2Temp()
	{
		$req = \mvc::$req;
		$promodel = new promodel();
		$data = $promodel->check2Temp(explode(',', $req['ids']), $req);
		$this->successJson($data);
	}




	/**
	  * @method 正式库
	  * @author soul
	  */
	public function list()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		\view::set('carModelFileds', $carmodel->fieldLnkCaption);
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::set('req', $req);
		\view::put();
	}

	/**
	  * @method 正式库 数据
	  * @author soul
	  */
	public function getList()
	{
		set_time_limit(90);
		$req = \mvc::$req;
		$rules = $this->urlRulesToWhere($req);
		if(isset($req['numbers'])){
			$rules['numbers'] = explode(',', $req['numbers']);
			$rules['numlike'] = empty($req['numlike']) ? 0 : $req['numlike'];
		}
		if(empty($req['p_id']) && $req['from']=='pro'){
		    exitJson(lg('参数错误'));
		}else{
            $promodel = new promodel();
            $data = $promodel->getList($req, $rules);
            $this->successJson($data);
		}
	}
	/**
	  * @method 正式库 数据 - 统计
	  * @author soul
	  */
	public function getListCount__($dbSelect,$sql,$pagesize)
	{
        $promodel = new promodel();
		$dbSelect = json_decode(base64_decode($dbSelect),true);
		$sql = base64_decode($sql);
        $data = $promodel->getListCount($dbSelect,$sql,$pagesize);
        //$data = $promodel->getListCount(base64_decode($sql),$pagesize);
        $this->successJson($data);
	}

	/**
	  * @method 正式库 数据 - 统计
	  * @author soul
	  */
	public function getListCount($sql='',$pagesize=0)
	{
        $promodel = new promodel();
        $data = $promodel->getListCount(base64_decode($sql),$pagesize);
        $this->successJson($data);
	}


	/**
	  * @method 正式车型明细
	  * @param  pmlt_id int [必填] ID
	  * @author soul
	  */
	public function proModelDetail()
    {
		$req = \mvc::$req;
		$dataArr = [];
		if(!empty($req['pml_id']))
		{
			$promodel = new promodel();
			$dataArr = $promodel->getList($req);
			$dataArr = $dataArr['rows'][0];
			if(!empty($dataArr['areas']))
				$dataArr['areas'] = array_column($dataArr['areas'], null, 'ma_id');
		}
		\view::set('dataArr', $dataArr);
		$carmodel = new carmodel();
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
    }

	/**
	  * @method 保存 正式车型
	  * @author soul
	  */
	public function saveProModelDetail()
	{
		$req = \mvc::$req;
		$setArr = $req['base'];
		$setArr['areas'] = [];
		$setArr['tags'] = $req['tags'];
		if(!empty($req['areas']))
		{
			$carmodel = new carmodel();
			$mlzyIds = $carmodel->getMlzyAreaIds();
			foreach($req['areas'] as $id=>$v)
			{
				if(!empty($v['checked']) && (in_array($id, $mlzyIds) || !empty($v['pma_catalog_notes'])))
				{
					$setArr['areas'][] = $id;
					$setArr['catalog_notes_'.$id] = $v['pma_catalog_notes'];
				}
			}
		}
		$promodel = new promodel();
		$data = $promodel->setProModelCell($req['pml_id'], $setArr);
		$this->successJson($data);
	}



	/**
	  * @method 编辑产品的库
	  * @param  id  int  [必填] pn_id
	  * @param  field  string  [必填] 字段
	  * @author soul
	  */
	public function setProModelCell()
	{
		$req = \mvc::$req;
		if(!empty($req['id']) && preg_match('/^\d+$/', $req['id']))
		{
			$setArr = [
				$req['field']=>$req[$req['field']]
			];
			$promodel = new promodel();
			$promodel->setProModelCell($req['id'], $setArr);
		}
	}

	/**
	  * @method 删除产品的号
	  * @param  ids  string  [必填] pml_id  多个逗号分隔
	  * @author soul
	  */
	public function delProModel()
	{
		$req = \mvc::$req;
		$promodel = new promodel();
		$data = $promodel->delProModel(explode(',', $req['ids']), $req['delremark']);
		$this->successJson($data);
	}

	/**
	  * @method 删除产品的变更记录
	  * @param  ids  string  [必填] pmc_id  多个逗号分隔
	  * @author soul
	  */
	public function delProModelChange()
	{
		$req = \mvc::$req;
		$promodel = new promodel();
		$data = $promodel->delProModelChange(explode(',', $req['ids']));
		$this->successJson($data);
	}
	

	/**
	  * @method 某产品正式库
	  * @param  p_id  int  [必填] 产品ID
	  * @author soul
	  */
	function listPro()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		\view::set('carModelFileds', $carmodel->fieldLnkCaption);
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::put();
	}


	/**
	  * @method 变更库
	  * @author soul
	  */
	public function listChange()
	{
		$req = \mvc::$req;
		$carmodel = new carmodel();
		\view::set('carModelFileds', $carmodel->fieldLnkCaption);
		\view::set('modelFiledVals', $carmodel->modelFiledVals);
		\view::put();
	}

	/**
	  * @method 变更库 数据
	  * @author soul
	  */
	public function getListChange()
	{
		$req = \mvc::$req;
        $promodel = new promodel();
        $data = $promodel->getListChange($req);
        $this->successJson($data);
	}


	/**
	  * @method 明细
	  * @param  pmc_id int [必填] ID
	  * @author soul
	  */
	public function proModelChangeDetail()
    {
		$req = \mvc::$req;
        $promodel = new promodel();
        $data = $promodel->getListChange($req);
		$dataArr = $data['rows'][0];
		$changeArr = $dataArr['pmc_change'];
		\view::set('dataArr', $dataArr);
		\view::set('changeArr', $changeArr);
		\view::put($this->activeView().substr(__METHOD__,strpos(__METHOD__,':')+2));
    }


	/**
	  * @method 重置！提醒
	  * @author soul
	  */
	public function resetWarn()
    {
       $promodel = new promodel();
       $data = $promodel->resetWarn();
       $this->successJson($data);
    }


	/**
	  * @method 位置合并
	  * @author soul
	  */
	public function mergeProModelPos()
    {
       $promodel = new promodel();
       $data = $promodel->mergeProModelPos();
       $this->successJson($data);
    }

	/**
	  * @method 添加产品的适用车型
	  * @param  p_id  int  [必填] 产品ID
	  * @param  ids  string  [必填] 车型ID  多个逗号分隔
	  * @author soul
	  */
	  public function addProModelTemp()
	  {
		  $req = \mvc::$req;
		  $promodel = new promodel();
		  $modArr = [];
		  foreach(explode(',', $req['ids']) as $id)
		  {
			  $modArr[] = ['pmlt_mm_id'=>$id];
		  }
		  $data = $promodel->addProModelTemp($req['p_id'], $modArr);
		  $this->successJson($data);
	  }
	/**
	 * @method 添加产品的国际车型
	* @param  p_id  int  [必填] 产品ID
	* @param  ids  string  [必填] 车型ID  多个逗号分隔
	* @author soul
	*/
	public function addProModel()
	{
		$req = \mvc::$req;
		$promodel = new promodel();
		$modArr = [];
		foreach(explode(',', $req['ids']) as $id)
		{
			$modArr[] = ['pml_mm_id'=>$id];
		}
		$data = $promodel->addProModel($req['p_id'], $modArr);
		$this->successJson($data);
	}

}