<?php
namespace admin\action\wdzy;
use model\wdzy\factory;

class factoryAction extends \action
{
	public function detail()
    {
        $req = \mvc::$req;
        $fac_id = $req['fac_id'];
        if($fac_id){
			$factory = new factory();
            $item = $factory->getList(['fac_id'=>$fac_id]);
        }
        if(empty($item['rows'][0]['fac_country'])){
            $item['rows'][0]['fac_country'] = 'CN';
            $item['rows'][0]['captions']['fac_country'] = '中国';
        }
        \view::set('dataArr',$item['rows'][0]);

        \view::put();
    }

    public function list()
    {
        $req = \mvc::$req;
        \view::put();
    }

    public function getList()
    {
        $req = \mvc::$req;
        $factory = new factory();
        $data = $factory->getList($req);
        $this->successJson($data);
    }

    public function saveDetail()
    {
        $req = \mvc::$req;
        $factory = new factory();
        $data = $factory->saveDetail($req);
        $this->successJson($data);
    }


    public function delData()
    {
        $req = \mvc::$req;
        $factory = new factory();
        $data = $factory->delData(explode(',', $req['ids']));
        $this->successJson($data);
    }

    public function getFactoryAllKeyValues()
    {   
        
        $req = \mvc::$req;
		$factory = new factory();
        $factory->initNoResourceId(); //初始化没有资源ID的工厂
        $where['OR'] = [
            'fac_name[~]'=>$req['query'],
            'fac_alias[~]'=>$req['query'],
        ];

        //权限 - 小类
        $cates = \p::cates($req['pwcode']?:'1300');
        $join = [];    
        if(!\p::isAdmin() && $cates){
            $join = ['[><]factory_cate(fc)'=>['fac.fac_id'=>'fc_fac_id']];
            $where['fc.fc_cat_id'] = explode(',', $cates);
            $where['GROUP'] = 'fac_id'; //去重
        }

        $rows = $factory->getDb()->select('factory(fac)',$join,['fac_id','fac_name','fac_alias','fac_resource_facid'],$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['fac_resource_facid'], 'value'=> $row['fac_name']??$row['fac_alias'] ];
        }
        $this->successJson($data);
    }

    public function getCountryAllKeyValues()
    {
        $req = \mvc::$req;
		$factory = new factory();
        $where['OR'] = [
            'cn_name[~]'=>$req['query'],
            'en_name[~]'=>$req['query'],
        ];
        $rows = $factory->getDb()->select('crm_country','*',$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['cc_code'], 'value'=> $row[LG_NAME]??$row['cn_name'] ];
        }
        $this->successJson($data);
    }

    public function getPctList()
    {
        $req = \mvc::$req;
        $factory = new factory();
        if(isset($req['pid'])){
            $where['pc_pid'] = $req['pid'];
        }
        if(isset($req['level'])){
            if($req['level']==2){
                $provinceId = $factory->getDb()->select('province_city', 'pc_id', ['pc_pid' => 0]);
                $where['pc_pid'] = $provinceId;
            }
            if($req['level']==3){
                $sql = "select distinct b.pc_id from province_city as b 
                join province_city as a on b.pc_pid = a.pc_id where a.pc_pid =0";
                $where['RAW #1'] = raw( sprintf('pc_pid in (%s)',$sql));
            }
        }
        if($req['query']) $where['pc_name[~]'] = $req['query'];
        $where['ORDER'] = ['pc_id'=>'ASC'];   
        $rows = $factory->getDb()->select('province_city','*',$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['pc_id'], 'value'=>$row['pc_name'] ];
        }
        $this->successJson($data); 
    }


    //获取公司信息
    public function getCompanyInfo()
    {   
        $req = \mvc::$req;
        $factory = new factory();
        $data  = $factory->getCompanyInfoByApi($req['name']);
        $this->successJson($data); 
    }

    /**
     * @method 通过关键字获取工厂信息
     * @author zhengweihua 
     * @copyright 2025-10-15
     */
    public function getFactoryInfo()
    {
        $req = \mvc::$req;
        $factory = new factory();
        $data  = $factory->getFactoryInfo($req);
        $this->successJson($data); 
    }
}