<?php
/**
 * ----------------------------------------------------------------------------
 * 行到水穷处，坐看云起时
 * 开发软件，找贵阳云起信息科技，官网地址:https://www.56q7.com/
 * ----------------------------------------------------------------------------
 * Author: 老成
 * email：85556713@qq.com
 */
declare(strict_types=1);

namespace app\admin\command;

use app\common\model\FengsuShip;

use think\console\Command;
use think\console\Input;
use think\console\Output;
use GuzzleHttp\Client;
use app\common\model\CrontabLog;
use app\common\model\FengsuSku;
use app\common\model\ShopList;
use app\common\model\ProductConfig;
use app\common\model\ShopDelivery;
use app\common\model\CustomerSpec;
use app\admin\service\FengsuService;

use GuzzleHttp\Psr7\Request;

// 小红书
class TaskXhs extends Command
{
    
    protected $url = 'https://fsxpt.fengsutb.com/amount/ship-list-new';

    protected $headers = [
            'Accept'=> "application/json, text/plain, */*",
            'Accept-Encoding'=> "gzip, deflate, br, zstd",
            'Accept-Language'=> "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
            "Authorization"=> "Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZmEiLCJuaWtlIjoi6Zi_5Y-R5rWL6YCfIiwiY3JlYXRlZCI6MTc1ODc5MDI4NDU3OSwiZHBJZCI6MTkxOTQwLCJleHAiOjE3NTkwNDk0ODQsImVuYWJsZWQiOnRydWUsImF1dGhvcml0aWVzIjpbInpodXlvbmdodSJdLCJkcEFjY291bnRJZCI6MTc4MzU3fQ.TuHvPz7Jf0vuYsbrxX9VpyZ2oOrtZ0YzLQJafoX_RV8up1PmtPLfPATBE93_v_1Ig39nODadaTb4aePy3b0hsA",
            "Cache-Control"=> "no-cache",
            'Connection'   => 'keep-alive',
            "Content-Type"=> "application/json",
            "Host"        => "fsxpt.fengsutb.com",
            "Origin"      => "https://fx.fengsutb.com",
            "platform"    => "xhs",
            "Pragma"      => "no-cache",
            "Referer"     => "https://fx.fengsutb.com/",
            "Sec-ch-ua"   => '"Chromium";v="140", "Not=A?Brand";v="24", "Microsoft Edge";v="140"',
            "Sec-ch-ua-Mobile"=> "?0",
            "Sec-ch-ua-platform"=> "Windows",
            "Sec-Fetch-Dest" => "empty",
            "Sec-Fetch-Mode" => "cors",
            "Sec-Fetch-Site" => "same-site",
            "User-Agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0"
    ];
    
    
    // 指令配置
    protected function configure()
    {
        $this->setName('task:xhs')->setDescription('the task command');
    }

    //根据shop_id
    protected function execute(Input $input, Output $output)
    {
        $client = new Client([ 'verify' => false]);
        $last_time = CrontabLog::getLastRunTime(5);
        $body = '{
        "goodType": 2,
        "goodsFlag": 1,
        "current": 1,
        "size": 25,
        "startTime": "'.$last_time.'",
        "endTime": "'.date('Y-m-d H:i:s').'",
        "skuOuterIdExact": false,
        "skuPropExact": false,
        "sort": "CONSIGN_TIME",
        "sortAsc": false,
        "timeType": 2,
        "tradeStatus": 2
        }';
        //获取Token
        $this->headers['Authorization'] = site_config('addonsd.authorization_token');
        $request = new Request('POST', $this->url, $this->headers, $body);
        $res = $client->sendAsync($request)->wait();
        if($res->getStatusCode() == 200) {
            $data = json_decode($res->getBody()->getContents(), true);  
            $list = $data['data']['list'];
            if(empty($list)) {
                $output->writeln('无数据');
                return;
            }
            $queue = [];
            $shopList = new ShopList();
            $fengsuSku = new FengsuSku();
            $productConfig = new ProductConfig();
            $shopDelivery = new ShopDelivery();
            $customerSpec = new CustomerSpec();
            foreach($list as $item) {
                $status = FengsuService::getAdditionalPrice( $shopList, $fengsuSku, $productConfig, $shopDelivery, $customerSpec, $item);
                $queue[] = [
                    'shop_id'       => $item['shopId'],
                    'trade_from'    => $item['tradeFrom'],
                    'province'      => $item['receiverProvince'],
                    'city'          => $item['receiverCity'],
                    'company_name'  => $item['tradeOrderPrintVos'][0]['companyName'],
                    'waybill_no'    => $item['waybillNo'],
                    'consign_time'  => $item['consignTime'],
                    'goods_id'      => $item['tradeOrderPrintVos'][0]['goodsId'],
                    'sku_id'        => $item['tradeOrderPrintVos'][0]['skuId'],
                    'num'           => $item['tradeOrderPrintVos'][0]['total'],
                    'goods_title'   => $item['tradeOrderPrintVos'][0]['goodsTitle'],
                    'weigh'         => $item['tradeOrderPrintVos'][0]['weight'],
                    'price'         => bcdiv((string)$item['payment'], '100', 2),
                    'status'        => $status,
                ];
            }
            
            // 保存到数据库
            (new FengsuShip())->saveAll($queue);
            // 更新最后执行时间
            CrontabLog::create(['type_id' => 5,'last_time' => date('Y-m-d H:i:s')]);
        }

        // 指令输出
        $output->writeln('ok');
    }



}