<?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\SkuUploadLogModel; use App\Model\SupplierChannelModel; 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]; // } $uploadLogId = SkuUploadLogModel::where('supplier_code', $supplierCode) ->where('status', SkuUploadLogModel::STATUS_HANDLED)->orderBy('id', 'desc') ->value('id'); $data = [ 'supplier_code' => $supplierCode, 'brand_id' => $brandId, 'log_id' => $uploadLogId, "down_type" => 1, ]; //改成队列 (new SkuService())->batchOffShelfSkuQueue($data); $this->response(0, '批量下架任务已经发送,请等待任务完成,期间你可以刷新列表查看下架情况'); } //批量修改内部编码 public function batchUpdateEncoded($request) { $canal = $request->get('canal'); $encoded = $request->get('encoded'); if (empty($canal)) { $this->response(-1, '请选择供应商'); } if (empty($encoded)) { $this->response(-1, '请选择供内部编码(采购员)'); } //判断采购员是否属于该供应商 $flag = SupplierChannelModel::where('supplier_code', $canal)-> where('channel_uid', 'like', "%$encoded%")->exists(); if (!$flag) { $this->response(-1, '选择的采购员不属于该供应商,请重新选择'); } $data = [ 'canal' => $canal, "encoded" => $encoded, ]; //改成队列 (new SkuService())->batchUpdateEncodedQueue($data); $this->response(0, '批量修改内部编码任务已经发送,请等待任务完成,期间你可以刷新列表查看下架情况'); } //批量上下架 public function batchUpdateSkuStatus(Request $request) { $data = $request->only([ 'sku_ids', 'is_long_term', 'operate_type', 'cp_time', ]); if ($data['operate_type'] == SkuService::OPERATE_TYPE_PUTAWAY) { if ($data['is_long_term'] == -1 && empty($data['cp_time'])) { $this->response(-1, '请设置上架有效期'); } } (new SkuService())->batchUpdateSkuStatus($data); $this->response(0, '操作成功,请等待后台上下架任务完成刷新查看'); } //设置精选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']); } } }