<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Http\Services\SkuService;
use App\Http\Services\SupplierContactService;
use App\Http\Services\SupplierStatisticsService;
use App\Http\Transformers\SupplierContactTransformer;
use App\Http\Validators\SupplierContactValidator;
use App\Model\RedisModel;
use App\Model\SupplierContactModel;
use Illuminate\Http\Request;

//通用API,比如获取品牌列表,分类列表等
class SkuApiController extends Controller
{
    public function Entrance(Request $request, $id)
    {
        $this->$id($request, $id);
    }

    public function GetSkuList($request)
    {
        $skuService = new SkuService();
        $data = $skuService->getSkuList();
        $this->response(0, 'ok', $data['list'], $data['total']);
    }

    public function UpdateSkuStatus($request)
    {
        $map = $request->input('goods_id');
        if (empty($map) || !is_array($map)) {
            $this->response(-1, '请选择要操作的SKU', '0');
        }
        $status = $request->input('status');
        $userId = $request->cookie('oa_user_id');
        $sKey = $request->cookie('oa_skey');
        $cookie = 'oa_user_id=' . $userId . '; oa_skey=' . $sKey;
        $url = env('FOOTSTONE_URL') . '/fsapi/operation_sku_status';
        $params = [
            'goods_id' => $map,
            'status' => $status
        ];
        $params = http_build_query($params);
        $result = curl($url, $params, true, false, $cookie);
        $result = json_decode($result, true);
        if ($result['errcode'] == 0) {
            $this->response(0, '操作成功');
        } else {
            $this->response(-1, '操作失败,原因是 : ' . $result['errmsg']);
        }
    }

    //批量下架
    public function BatchOffShelf($request)
    {
        $supplierCode = $request->get('supplier_code');
        $brandId = $request->get('brand_ids');
        $brandId = str_replace(',', '', $brandId);
        $updateTime = $request->get('update_time');
        if (empty($supplierCode)) {
            $this->response(-1, '请选择供应商');
        }
        $startTime = $endTime = 0;
        if ($updateTime) {
            $updateTime = explode('~', $updateTime);
            $startTime = $updateTime[0];
            $endTime = $updateTime[1];
        }

        $map = [
            'supplier_code' => $supplierCode,
            'brand_id' => $brandId,
            'start_time' => $startTime,
            'end_time' => $endTime,
        ];
        $url = env('FOOTSTONE_URL') . '/uploadSkuApi/batchOffShelf';
        $userId = $request->cookie('oa_user_id');
        $sKey = $request->cookie('oa_skey');
        $cookie = 'oa_user_id=' . $userId . '; oa_skey=' . $sKey;
        $result = curl($url, $map, true, false, $cookie);
        $result = json_decode($result, true);
        if (isset($result['errcode']) && $result['errcode'] === 0) {
            $this->response(0, '批量下架任务已经发送,请等待任务完成,期间你可以刷新列表查看下架情况');
        } else {
            $this->response(-1, '批量下架失败');
        }
    }
    
    //设置精选Sku
    public function SetPreferSku($request)
    {
        $prefer = $request->get('prefer');
        $skuIds = $request->input('sku_id');
        if (empty($skuIds) || !is_array($skuIds)) {
            $this->response(-1, '请选择要操作的SKU', '0');
        }
        $skuService = new SkuService();
        $result = $skuService->setPreferSku($skuIds,$prefer);
        if ($result) {
            $this->response(0, '操作成功');
        } else {
            $this->response(-1, '操作失败,原因是 : ' . $result['errmsg']);
        }
    }
}