<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Filter\LogFilter;
use App\Http\Controllers\Filter\SupplierLogFilter;
use App\Http\Services\LogService;
use App\Http\Services\SupplierService;
use App\Http\Services\SupplierTagService;
use App\Model\BrandModel;
use App\Model\IntracodeModel;
use App\Model\LogModel;
use App\Model\SupplierChannelModel;
use App\Model\SupplierLogModel;
use App\Model\TagsModel;
use GuzzleHttp\Client;
use Illuminate\Http\Request;
use DB;

class SkuController extends Controller
{
    public function Entrance(Request $request, $id = 'index')
    {
        if ($request->path() == '/') {
            $path = 'web/index';
        } else {
            $path = $request->path();
        }

        $this->data = [
            'menus' => $request->menus,
            'header' => $request->user->header,
            'username' => $request->user->email,
            'user_email' => $request->user->email,
            'uri' => '/' . $path,
            'id' => $id
        ];
        return $this->$id($request);
    }

    public function __call($method, $parameters)
    {
        return $this->errhtml('Not', '没有这个页面');
    }

    public function SkuList($request)
    {
        $orgId = !empty(request()->user->org_id) ? request()->user->org_id : 1;
        $this->data['isIedge'] =  $orgId == 1 ? false : true;
        $this->data['orgId'] = $orgId;
        $skuTags = TagsModel::getTagNamesByTagUse(16, 2);
        $this->data['skuTags'] = $skuTags;
        //获取筛选框的品牌数据
        $brandSelectValue = [];
        $selectBrandIds = $request->get('brand_id/condition');
        if ($selectBrandIds) {
            $brandModel = new BrandModel();
            $brandSelectValue = $brandModel->whereIn('brand_id', explode(',', $selectBrandIds))->get();
            $brandSelectValue = $brandSelectValue ? $brandSelectValue->toArray() : [];
            $brandSelectValue = array_map(function ($value) {
                return array_only($value, ['brand_name', 'brand_id']);
            }, $brandSelectValue);
        }
        $this->data['brandSelectValue'] = $brandSelectValue;
        $intraCodeModel = new IntracodeModel();
        $this->data['userCodes'] = $intraCodeModel->getSampleEncode();
        return $this->view('供应商日志');
    }

    //批量下sku
    public function BatchOffShelf($request)
    {
        //获取所有启用的供应商编码
        $model = new SupplierChannelModel();
        $suppliers = $model->where('is_type', 0)->where('status', 2)->select(['supplier_name', 'supplier_code'])->get();
        $supplierCodes = [];
        foreach ($suppliers as $supplier) {
            $supplier = $supplier->toArray();
            $supplierCodes[$supplier['supplier_code']] = $supplier['supplier_name'] . '(' . $supplier['supplier_code'] . ')';
        }
        $this->data['supplierCodes'] = $supplierCodes;
        return $this->view('批量下架');
    }

    public function BatchUpdateEncoded($request)
    {
        //获取所有启用的供应商编码
        $model = new SupplierChannelModel();
        $suppliers = $model->where('is_type', 0)->where('status', 2)->select(['supplier_name', 'supplier_code'])->get();
        $userCodes = (new IntracodeModel())->getChannelUsersEncode();
        $supplierCodes = [];
        foreach ($suppliers as $supplier) {
            $supplier = $supplier->toArray();
            $supplierCodes[$supplier['supplier_code']] = $supplier['supplier_name'] . '(' . $supplier['supplier_code'] . ')';
        }
        $this->data['supplierCodes'] = $supplierCodes;
        $this->data['userCodes'] = $userCodes;
        $supplierData = SupplierService::getSupplierCodeListForXmSelect();
        $this->data['supplierData'] = $supplierData;
        return $this->view('批量修改内部编码');
    }

    public function BatchUpdateSkuStatus($request)
    {
        return $this->view('批量上架');
    }

    //批量打标签
    public function BatchAddSkuTag($request)
    {

        $this->data['title'] = '批量修改Sku标签';
        $suppliers = SupplierChannelModel::where('is_type', 0)->where('status', 2)
            ->select(['supplier_name', 'supplier_code'])->get();
        $supplierCodes = [];
        foreach ($suppliers as $supplier) {
            $supplier = $supplier->toArray();
            $supplierCodes[$supplier['supplier_code']] = $supplier['supplier_name'] . '(' . $supplier['supplier_code'] . ')';
        }
        $skuIds = $request->input('sku_ids');
        if (!empty($skuIds)) {
            $skuIds = explode(',', $skuIds);
            $this->data['skuIds'] = $skuIds;
        }

        $this->data['supplierCodes'] = $supplierCodes;
        return $this->view('批量修改Sku标签');
    }

    //批量设置sku显示类型
    public function BatchUpdateGoodsLabel($request)
    {
        $orgId = !empty(request()->user->org_id) ? request()->user->org_id : 1;
        $this->data['isIedge'] =  $orgId == 1 ? false : true;
        $this->data['orgId'] = $orgId;
        $this->data['title'] = '批量设置sku显示类型';
        $skuIds = $request->input('sku_ids');
        if (!empty($skuIds)) {
            $skuIds = explode(',', $skuIds);
            $this->data['skuIds'] = $skuIds;
        }
        $supplierData = SupplierService::getSupplierCodeListForXmSelect();
        $this->data['supplierData'] = $supplierData;
        return $this->view('批量设置sku显示类型');
    }

    //设置供应商的过期时间
    public function SetSupplierSkuCpTimeLimit($request)
    {
        $model = new SupplierChannelModel();
        $suppliers = $model->where('is_type', 0)
            ->select(['supplier_name', 'supplier_code'])->get();
        $supplierCodes = [];
        foreach ($suppliers as $supplier) {
            $supplier = $supplier->toArray();
            $supplierCodes[$supplier['supplier_code']] = $supplier['supplier_name'] . '(' . $supplier['supplier_code'] . ')';
        }
        $supplierData = SupplierService::getSupplierCodeListForXmSelect();
        $this->data['supplierData'] = $supplierData;
        $this->data['title'] = '商品有效期配置';
        $this->data['supplierCodes'] = $supplierCodes;
        return $this->view('商品有效期配置');
    }
}