<?php
namespace admin\action\pack;

use model\pack\material;

class materialAction extends \action
{
    public function detail()
    {
        $req = \mvc::$req;
        $pmb_id = $req['pmb_id'];
        $material = new material();
        if($pmb_id){
            $item = $material->getDetail($pmb_id);
          
        }
        \view::set('item',$item);
        \view::put(); 
    }

    public function list()
    {
        $req = \mvc::$req;
        $material = new material();
        $data = $material->getAllMaterialAttributes($req);
        \view::set('attcatArr',$data);
        \view::put();
    }
    public function getList()
    {
        $req = \mvc::$req;

        $rules = $this->urlRulesToWhere($req);
	
		if(isset($req['numbers'])){
			$rules['numbers'] = arryNums($req['numbers']);
			$rules['numlike'] = empty($req['numlike']) ? 0 : $req['numlike'];
		}

        $material = new material();
        $data = $material->getList($req,$rules);
        $this->successJson($data);
    }
    public function saveDetail()
    {
        $req = \mvc::$req;
        $material = new material();
        $id = $material->saveDetail($req);
        $this->successJson(['key'=>$id]);
    }

    public function delData()
    {
        $req = \mvc::$req;
        $material = new material();
        if(!isset($req['ids'])){
            $this->errorJson('请选择要删除的数据');
        }
        $ids = !is_array($req['ids'])?explode(',',$req['ids']):$req['ids'];
        $data = $material->delData($ids);
        $this->successJson($data);
    }

    public function getMaterialKVList()
    {
        $req = \mvc::$req;
		$material = new material();
        $where['pmb_status'] =1;
        if($req['pb_id']){
            $where['pmb_pb_id'] = $req['pb_id'];
        }
        
        if($req['query']){
            if(strpos($req['query'], '*') !== false){
                $escapedQuery = str_replace(['%', '_', '*'], ['\%', '\_', '\*'], $req['query']);
                $where['OR']=[
                    'pam.pam_spec[~]' => '%' . $escapedQuery . '%',
                ];
            }else{
                $where['OR']=[
                    'pam.pam_'.LG_NAME.'[~]'=>$req['query'],
                    'pmb.pmb_incode[~]' =>$req['query'],
                    'pam.pam_spec[~]' =>$req['query'],
                ]; 
            } 
        }
       
        $join = [
            '[><]pack_material(pam)'=>['pmb.pmb_pam_id'=>'pam_id']
        ];    
        $rows = $material->getDb()->select('pack_material_brand(pmb)',$join,['pam.pam_spec','pam.pam_'.LG_NAME.'(pam_name)','pmb_id','pmb_incode'],$where);
        $data = [];
        $regi=0;
		$firstkey = isset($req['firstkey'])? $req['firstkey']: 0;
        if(isset($req['hasFirst']) && $req['hasFirst']){
            $data[0] = ['key'=>$firstkey, 'value'=>'' ];
            $regi = 1;
        }
        foreach($rows as $k=>$row){

            $data[$k+$regi] = ['key'=>$row['pmb_id'], 'value'=> $row['pam_spec'].' '.$row['pam_name'].'('.$row['pmb_incode'].')' ];
        }
        $this->successJson($data);
    }

    public function getDetail()
    {
        $req = \mvc::$req;
        $pmb_id = $req['pmb_id'];
        $material = new material();
        if($pmb_id){
            $item = $material->getBaseDetail($pmb_id);
            $this->successJson($item);
        }
    }

    public function setCell()
    {
        $req = \mvc::$req;
        $material = new material();
        $item = $material->setCell($req['id'],$req);
    }

    public function batchUploadImgs()
    {
        $req = \mvc::$req;
        $ids = $req['ids'];
        $idArr = !is_array($ids)?explode(',',$ids):$ids;
        $material = new material();
        $inCodes = $material->getSimpleList(['pmb_id'=>$idArr]);
        \view::set('inCodes',$inCodes);
        \view::put();
    }

    public function saveBatchImgs()
    {
        $req = \mvc::$req;
        $rows = [];
        if(isset($req['rows'])){
            $rows = json_decode($req['rows'],true);
        }
        if(!$rows || !is_array($rows)){
            $this->errorJson('参数错误');
        }
        $material = new material();
        $updated = $material->saveBatchImgs($rows);
        $this->successJson(['rows'=>$updated]);
    }
}
