<?php

namespace admin\action;


use model\carmodel;
use model\pro\param;
use model\pro\pro;
use model\history;
use servers\baseModel;
use \servers\excel\write;
use Firebase\JWT\JWT;


class indexAction  extends baseAction
{

	public function testEmail()
	{
		$email = new \model\email();
		$res = $email->send('xxx@qq.com', 'title', 'test');
		dd($res);
	}


    public function test()
    {
       $oe = make(\model\oe::class);
       $oe->drawEpcWz('https://3thpics.paojd.cn/etk/EPC/mercedes/photo/B_42/B_42_045000098_130821.jpg', [[
						"10",
						"826,534,871,571"
					],
				[
					"80",
					"498,305,543,342"
				]
			], 0, 1);
    }

    //主界面框架与主菜单
    public function index()
    {

        \view::put();
    }

    //获取最新token的API接口
    public function getLatestToken()
    {
        try {
            $ypApiCom = new \model\ypApiCom();
            $token = $ypApiCom->getApiToken();
            
            header('Content-Type: application/json');
            echo json_encode([
                'success' => true,
                'token' => $token,
                'timestamp' => time()
            ]);
        } catch (\Exception $e) {
            header('Content-Type: application/json');
            echo json_encode([
                'success' => false,
                'error' => $e->getMessage()
            ]);
        }
        exit;
    }

	public function main()
    {
		$pro = new pro();
		$tjArr = $pro->getBaseTj();
		\view::set('tjArr', $tjArr);
        \view::put();
    }
	
	//统计信息
	public function main2()
	{
		\view::put();
	}

	//语言包文件
	public function lgJsFile(){
		$langArr = \mvc::$localeData['project']['language'];
        $br = "\r\n";
        echo "var langs = [];".$br;
        foreach($langArr as $k=>$v){
            echo "langs['".$k."']='".$v."';".$br;
        }
	}
	
	//语言包编辑
	public function langlist(){
        $where = [];
        $iszh = false;
        if(\mvc::$req['filters']){
            $rules = json_decode(\mvc::$req['filters'],true);
            foreach($rules['rules'] as $rule){
                $where[$rule['field']] = strtolower(trim($rule['data']));
                if($rule['op']=='nn') $iszh = true;
            }
        }
        $rows=[];
        $file = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['locale'] .'/language/'.\mvc::$req['lang'].'/field.php';
        $scanfile = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['locale'] .'/language/'.\mvc::$req['lang'].'/field_scan.php';
        $field = require($file);
        $field_scan = require($scanfile);
        $langs = array_merge($field_scan,$field);
        foreach($langs as $k=>$v){
            if(isset($where['key']) && $where['key']!=''){
                if(strpos(strtolower($k),$where['key'])===false){
                    continue;
                }
            }
            if(isset($where['value']) && $where['value']!=''){
                if(strpos(strtolower($v),$where['value'])===false){
                    continue;
                }
            }
            if($iszh){
                preg_match("/[\x{4e00}-\x{9fa5}]+/u",$v,$m);
                if(!$m){
                    continue;
                }
            }
            $rows[] = ['key'=>trim($k),'value'=>$v];
        }
        $data = [
            'page'=>1,
            'records'=> count($rows),
            'total'=>1,
            'rows'=>$rows
        ];
        $this->successJson( $data );
	}
	//语言包保存
	public function langsave($data){
        $file = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['locale'] .'/language/'.\mvc::$req['lang'].'/field.php';
        $scanfile = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['locale'] .'/language/'.\mvc::$req['lang'].'/field_scan.php';
        $field = require($file);
        $field_scan = require($scanfile);
        $langs = array_merge($field_scan,$field);
        foreach ($data as $k=>$v){
            $langs[$v['key']] = $v['value'];
        }
        $br="\r\n";
        $contents = '<?php return['.$br;
        foreach($langs as $k=>$v){
            $contents.=sprintf("\t\"%s\" => \"%s\",%s",str_replace(["'",'"'],"\'",$k),str_replace(["'",'"'],"\'",$v),$br);
        }
        $contents.='];'.$br;
        $flag = file_put_contents($file,$contents);
        if(!$flag){
            $this->errorJson(-1,'保存失败,请检查权限');
        }   
        $this->successJson();
	}
	
    //前端语言包编辑
	public function frontendLanglist(){
        $where = [];
        $iszh = false;
        if(\mvc::$req['filters']){
            $rules = json_decode(\mvc::$req['filters'],true);
            foreach($rules['rules'] as $rule){
                $where[$rule['field']] = strtolower(trim($rule['data']));
                if($rule['op']=='nn') $iszh = true;
            }
        }
        $rows=[];
        $file = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['frontendLocale'] .'/language/'.\mvc::$req['lang'].'/field.php';
        $scanfile = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['frontendLocale'] .'/language/'.\mvc::$req['lang'].'/field_scan.php';
        $field = is_file($file) ? require($file) : [];
        $field_scan = is_file($scanfile) ? require($scanfile) : [];
        if(!is_array($field)) $field = [];
        if(!is_array($field_scan)) $field_scan = [];
        $langs = array_merge($field_scan,$field);
        foreach($langs as $k=>$v){
            if(isset($where['key']) && $where['key']!=''){
                if(strpos(strtolower($k),$where['key'])===false){
                    continue;
                }
            }
            if(isset($where['value']) && $where['value']!=''){
                if(strpos(strtolower($v),$where['value'])===false){
                    continue;
                }
            }
            if($iszh){
                preg_match("/[\x{4e00}-\x{9fa5}]+/u",$v,$m);
                if(!$m){
                    continue;
                }
            }
            $rows[] = ['key'=>trim($k),'value'=>$v];
        }
        $data = [
            'page'=>1,
            'records'=> count($rows),
            'total'=>1,
            'rows'=>$rows
        ];
        $this->successJson( $data );
    }

    //前端语言包保存
    public function frontendLangsave($data){
        $file = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['frontendLocale'] .'/language/'.\mvc::$req['lang'].'/field.php';
        $scanfile = \mvc::$cfg['dir']['locale'].'/'. \mvc::$cfg['frontendLocale'] .'/language/'.\mvc::$req['lang'].'/field_scan.php';
        $field = is_file($file) ? require($file) : [];
        $field_scan = is_file($scanfile) ? require($scanfile) : [];
        if(!is_array($field)) $field = [];
        if(!is_array($field_scan)) $field_scan = [];
        $langs = array_merge($field_scan,$field);
        foreach ($data as $k=>$v){
            $langs[$v['key']] = $v['value'];
        }
        $br="\r\n";
        $contents = '<?php return['.$br;
        foreach($langs as $k=>$v){
            $contents.=sprintf("\t\"%s\" => \"%s\",%s",str_replace(["'",'"'],"\'",$k),str_replace(["'",'"'],"\'",$v),$br);
        }
        $contents.='];'.$br;
        file_put_contents($file,$contents);
        $this->successJson();
    }

	//CKV
	public function getKV($k,$v=''){
		$this->successJson( ['data'=>(new \model\ckv())->getKV($k,$v)] );
	}
	
	//Power
	public function getPowerData(){
	    $data = \p::getData();
	    if($data)
		    $this->successJson( $data );
		else
		    $this->errorJson( \p::error() );
	}

	public function phpInfo(){
        exit(phpinfo());
	}

	public function sessionInfo(){
		dd($_SESSION);
	}

	public function serverInfo(){
		dd($_SERVER);
	}

	public function power(){
        //处理前端权限
        $power = new \model\user\power();
        $works = $power->frontWork();

        $this->successJson(['works'=>$works]);
	}

	public function fanyi()
	{
		$req = \mvc::$req;
        $fanyi = new \model\fanyi();
		$data = $fanyi->translate($req['query'], $req['from'], $req['to']);
		$this->successJson($data);
	}
}
