Commit ba38bc7d by 杨树贤

Merge branch 'ysx-记录手动上下架sku日志-20250825'

parents 7eb1693e 2e960fd4
...@@ -118,6 +118,7 @@ class SkuApiController extends Controller ...@@ -118,6 +118,7 @@ class SkuApiController extends Controller
{ {
$data = $request->only([ $data = $request->only([
'sku_ids', 'sku_ids',
'supplier_codes',
'is_long_term', 'is_long_term',
'operate_type', 'operate_type',
'cp_time', 'cp_time',
...@@ -127,7 +128,6 @@ class SkuApiController extends Controller ...@@ -127,7 +128,6 @@ class SkuApiController extends Controller
$this->response(-1, '请设置上架有效期'); $this->response(-1, '请设置上架有效期');
} }
} }
(new SkuService())->batchUpdateSkuStatus($data); (new SkuService())->batchUpdateSkuStatus($data);
$this->response(0, '操作成功,请等待后台上下架任务完成刷新查看'); $this->response(0, '操作成功,请等待后台上下架任务完成刷新查看');
} }
......
...@@ -3,18 +3,19 @@ ...@@ -3,18 +3,19 @@
namespace App\Http\Services; namespace App\Http\Services;
use App\Http\Controllers\Filter\SkuListFilter; use GuzzleHttp\Client;
use App\Model\IntracodeModel;
use App\Model\LogModel; use App\Model\LogModel;
use App\Model\TagsModel;
use App\Model\RedisModel; use App\Model\RedisModel;
use App\Model\IntracodeModel;
use App\Model\SkuUploadLogModel; use App\Model\SkuUploadLogModel;
use App\Model\SupplierChannelModel; use App\Model\ManualPutawaySkuLog;
use App\Model\TagsModel;
use GuzzleHttp\Client;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use App\Model\SupplierChannelModel;
use PhpAmqpLib\Message\AMQPMessage;
use Illuminate\Support\Facades\Redis; use Illuminate\Support\Facades\Redis;
use App\Http\Controllers\Filter\SkuListFilter;
use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
class SkuService extends BaseService class SkuService extends BaseService
{ {
...@@ -35,8 +36,8 @@ class SkuService extends BaseService ...@@ -35,8 +36,8 @@ class SkuService extends BaseService
$map['no_rule'] = 1122; $map['no_rule'] = 1122;
try { try {
// $return = curl($url, $map, 1); // $return = curl($url, $map, 1);
$url = base64_encode($url.'?'.http_build_query($map)); $url = base64_encode($url . '?' . http_build_query($map));
$return = curl(config('website.FootstoneCurlUrl').$url); $return = curl(config('website.FootstoneCurlUrl') . $url);
} catch (\Exception $e) { } catch (\Exception $e) {
return $e->getMessage(); return $e->getMessage();
} }
...@@ -44,7 +45,7 @@ class SkuService extends BaseService ...@@ -44,7 +45,7 @@ class SkuService extends BaseService
$data = json_decode($return, true); $data = json_decode($return, true);
$list = []; $list = [];
if (isset($data['error_code']) && $data['error_code'] == 0) { if (isset($data['error_code']) && $data['error_code'] == 0) {
$url = config('website.GoodsServerUrl').'/synchronization?goods_id='.implode(',', $data['data']['goods_id']); $url = config('website.GoodsServerUrl') . '/synchronization?goods_id=' . implode(',', $data['data']['goods_id']);
$return = curl($url, $map, 1); $return = curl($url, $map, 1);
$skuListData = json_decode($return, true); $skuListData = json_decode($return, true);
if (isset($skuListData['errcode']) && $skuListData['errcode'] == 0) { if (isset($skuListData['errcode']) && $skuListData['errcode'] == 0) {
...@@ -318,19 +319,24 @@ class SkuService extends BaseService ...@@ -318,19 +319,24 @@ class SkuService extends BaseService
{ {
try { try {
$skuIds = explode(',', $data['sku_ids']); $skuIds = explode(',', $data['sku_ids']);
$supplierCodes = explode(',', $data['supplier_codes']);
//构建队列数据 //构建队列数据
//上架 //上架
$queueData = []; $queueData = [];
if ($data['operate_type'] == self::OPERATE_TYPE_PUTAWAY) { if ($data['operate_type'] == self::OPERATE_TYPE_PUTAWAY) {
$queueName = 'lie_footstone_batch_upsku_queue'; $queueName = 'lie_footstone_batch_upsku_queue';
$data['cp_time'] = $data['is_long_term'] == 1 ? self::LONG_TERM_TIMESTAMP : strtotime($data['cp_time']); $data['cp_time'] = $data['is_long_term'] == 1 ? self::LONG_TERM_TIMESTAMP : strtotime($data['cp_time']);
foreach ($skuIds as $skuId) { foreach ($skuIds as $key => $skuId) {
$queueData[] = [ $queueData[] = [
'sku_id' => $skuId, 'sku_id' => $skuId,
'cp_time' => $data['cp_time'], 'cp_time' => $data['cp_time'],
]; ];
ManualPutawaySkuLog::addManualPutawaySkuLog($skuId, $supplierCodes[$key]);
} }
} else { } else {
foreach ($skuIds as $key => $skuId) {
ManualPutawaySkuLog::addManualPutawaySkuLog($skuId, $supplierCodes[$key]);
}
$queueName = 'lie_footstone_batch_downsku_queue'; $queueName = 'lie_footstone_batch_downsku_queue';
$queueData['down_type'] = 2; $queueData['down_type'] = 2;
$queueData['data'] = $skuIds; $queueData['data'] = $skuIds;
......
<?php
namespace App\Model;
use App\Http\Services\SkuService;
use Illuminate\Database\Eloquent\Model;
//联营分类模型
class ManualPutawaySkuLog extends Model
{
protected $connection = 'spu';
protected $table = 'manual_putaway_sku_log';
protected $primaryKey = 'id';
public $timestamps = false;
public static function addManualPutawaySkuLog($skuId, $supplierCode = '')
{
if (empty($supplierCode)) {
return true;
}
//先判断是否存在
$manualPutawaySkuLog = self::where('sku_id', $skuId)->first();
if ($manualPutawaySkuLog) {
self::where('sku_id', $skuId)->update([
'is_new' => 1,
'update_time' => time(),
]);
return;
}
self::insert([
'sku_id' => $skuId,
'supplier_code' => $supplierCode,
'create_time' => time(),
'is_new' => 1,
]);
}
}
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
timeout: 30000, //超时时间设置,单位毫秒 timeout: 30000, //超时时间设置,单位毫秒
data: { data: {
sku_ids: data.field.sku_ids, sku_ids: data.field.sku_ids,
supplier_codes: data.field.supplier_codes,
is_long_term: data.field.is_long_term ? 1 : -1, is_long_term: data.field.is_long_term ? 1 : -1,
operate_type: data.field.operate_type, operate_type: data.field.operate_type,
cp_time: data.field.cp_time cp_time: data.field.cp_time
...@@ -64,4 +65,4 @@ ...@@ -64,4 +65,4 @@
}); });
}); });
</script> </script>
\ No newline at end of file
...@@ -285,14 +285,16 @@ ...@@ -285,14 +285,16 @@
let checkStatus = table.checkStatus('skuList'); let checkStatus = table.checkStatus('skuList');
let data = checkStatus.data; let data = checkStatus.data;
let skuIds = []; let skuIds = [];
let supplierCodes = [];
$.each(data, function (index, value) { $.each(data, function (index, value) {
skuIds.push(value.goods_id); skuIds.push(value.goods_id);
supplierCodes.push(value.canal);
}); });
if (skuIds.length === 0) { if (skuIds.length === 0) {
layer.msg('请选择要操作的sku'); layer.msg('请选择要操作的sku');
return; return;
} }
batchUpdateGoodsStatus(skuIds, 'passed'); batchUpdateGoodsStatus(skuIds, 'passed',supplierCodes);
}) })
//批量下架 //批量下架
...@@ -300,17 +302,18 @@ ...@@ -300,17 +302,18 @@
let checkStatus = table.checkStatus('skuList'); let checkStatus = table.checkStatus('skuList');
let data = checkStatus.data; let data = checkStatus.data;
let skuIds = []; let skuIds = [];
let supplierCodes = [];
$.each(data, function (index, value) { $.each(data, function (index, value) {
skuIds.push(value.goods_id); skuIds.push(value.goods_id);
supplierCodes.push(value.canal);
}); });
if (skuIds.length === 0) { if (skuIds.length === 0) {
layer.msg('请选择要操作的sku'); layer.msg('请选择要操作的sku');
return; return;
} }
batchUpdateGoodsStatus(skuIds, 'offshelf'); batchUpdateGoodsStatus(skuIds, 'offshelf',supplierCodes);
}) })
//批量下架
$("#set_prefer").click(function () { $("#set_prefer").click(function () {
let checkStatus = table.checkStatus('skuList'); let checkStatus = table.checkStatus('skuList');
let data = checkStatus.data; let data = checkStatus.data;
...@@ -387,7 +390,7 @@ ...@@ -387,7 +390,7 @@
}); });
//批量上下架操作 //批量上下架操作
function batchUpdateGoodsStatus(skuIds, status) { function batchUpdateGoodsStatus(skuIds, status,supplierCodes) {
let statusName = status === 'offshelf' ? '下架' : '上架'; let statusName = status === 'offshelf' ? '下架' : '上架';
let operateType = status === 'offshelf' ? '-1' : '1'; let operateType = status === 'offshelf' ? '-1' : '1';
if (status !== 'offshelf') { if (status !== 'offshelf') {
...@@ -397,7 +400,7 @@ ...@@ -397,7 +400,7 @@
offset: '100px', offset: '100px',
fixed: false, //不固定 fixed: false, //不固定
maxmin: true, maxmin: true,
content: '/sku/BatchUpdateSkuStatus?view=iframe&sku_ids=' + skuIds + '&operate_type=' + operateType, content: '/sku/BatchUpdateSkuStatus?view=iframe&sku_ids=' + skuIds + '&operate_type=' + operateType + '&supplier_codes=' + supplierCodes,
title: statusName + '商品', title: statusName + '商品',
end: function () { end: function () {
table.reload('skuList', { table.reload('skuList', {
...@@ -414,6 +417,7 @@ ...@@ -414,6 +417,7 @@
url: '/api/sku/batchUpdateSkuStatus', url: '/api/sku/batchUpdateSkuStatus',
timeout: 30000, //超时时间设置,单位毫秒 timeout: 30000, //超时时间设置,单位毫秒
data: { data: {
'supplier_codes': supplierCodes.join(','),
'sku_ids': skuIds.join(','), 'sku_ids': skuIds.join(','),
'operate_type': -1, 'operate_type': -1,
}, },
......
<div style="padding: 30px;"> <div style="padding: 30px;">
<form class="layui-form"> <form class="layui-form">
<input type="hidden" name="sku_ids" value="{{request()->get('sku_ids')}}"> <input type="hidden" name="sku_ids" value="{{request()->get('sku_ids')}}">
<input type="hidden" name="supplier_codes" value="{{request()->get('supplier_codes')}}">
<input type="hidden" name="operate_type" value="{{request()->get('operate_type')}}"> <input type="hidden" name="operate_type" value="{{request()->get('operate_type')}}">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label"><span style="color: red">* </span>上架有效期:</label> <label class="layui-form-label"><span style="color: red">* </span>上架有效期:</label>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment