<?php


namespace app\admin\controller;


use app\admin\model\GoodBasic;
use app\user\model\AccountCompany;
use app\user\model\AccountItem;
use think\App;
class Good extends Base{
    public function __construct(App $app)
    {
        $this->noLogin=['list'];
        parent::__construct($app);
        $this->model=new \app\admin\model\GoodBasic();
    }

    public function list(){
        $params=$this->request->param(['cat_id'=>'','is_combind'=>'','good_name'=>"","spucode"=>"","good_type"=>"",
        "companyNo"=>[],"supplierNo"=>"","supplier"=>"","company"=>"","brandid"=>"","status"=>[],"is_stock"=>"",
        'start'=>"","end"=>"","isonline"=>"","relaComNo"=>"","page"=>1,"size"=>15]);
        $where=[["is_del","=",0]];
        if($params['cat_id']!="")$where[]=["cat_id","=",$params['cat_id']];
        if($params['is_combind']!="") $where[]=["is_combind","=",$params['is_combind']];
        if($params['good_name']!="") $where[]=["good_name","like","%".$params['good_name']."%"];
        if($params['spucode']!="") $where[]=["spuCode","like","%".$params['spucode']."%"];
        if($params['good_type']!="") $where[]=["good_type","=",$params['good_type']];
        if(!empty($params['companyNo'])) $where[]=["companyNo","in",$params['companyNo']];
        if($params['supplierNo']!="") $where[]=["supplierNo","like","%".$params['supplierNo']."%"];
        if($params['supplier']!="") $where[]=["supplierName","like","%".$params['supplier']."%"];
        if($params['company']!="") $where[]=["companyName","like","%".$params['company']."%"];
        if($params['brandid']!="") $where[]=["brandid","=",$params['brandid']];
        if(!empty($params['status'])) $where[]=["status","in",$params['status']];
        if($params['is_stock']!="") $where[]=["is_stock","=",$params['is_stock']];
        if($params['isonline']!=""){
                if($params['isonline']==1) $where[]=["spuCode","in",function ($query) {
                        $query->name('good_platform')->where('exam_status', 3)->field('spuCode');
                    }];
                else $where[]=['spuCode','not in',function ($query) {
                        $query->name('good_platform')->where('exam_status', 3)->field('spuCode');
                    }
                ];
        }
        if($params['relaComNo']!="") $where[]=["companyNo|supplierNo","like","%".$params['relaComNo']."%"];
        $list=$this->model->with(["brand","unit","cat","GoodTax"=>["outCategory","inCategory","cgdCategory"]])
        ->where($where)
        ->order("id desc")
        ->paginate(["page"=>$params['page'],"list_rows"=>$params['size']])
        ->each(function (&$item){
            $item['exclusive']= (new \app\admin\model\Exclusive)->getExclusive($item['is_exclusive']);
            $item['noble_name']=GoodBasic::$NobleMetalCn[$item->noble_metal];
            $item['has_account'] = AccountCompany::SupplierHasAcount($item->supplierNo);
            $info = AccountItem::with(['ItemName'])->where(['account_id'=>$item->chargerid])->findOrEmpty();
            $item['charger_company_name'] =  $info->depart_name??"";
        });
        return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]);

    }
    public function create(){
    }
    public function info(){
    }
    public function update(){
    }
    public function delete(){
    }
}