#10000 平台商品列表
This commit is contained in:
parent
431b350add
commit
a92f86f557
21
app/Filters/BusinessGoodsSkuFilter.php
Normal file
21
app/Filters/BusinessGoodsSkuFilter.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Filters;
|
||||||
|
|
||||||
|
class BusinessGoodsSkuFilter extends Filters
|
||||||
|
{
|
||||||
|
protected function externalSkuId($value)
|
||||||
|
{
|
||||||
|
return $this->builder->where('external_sku_id', '=', trim($value));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function goodsName($value)
|
||||||
|
{
|
||||||
|
return $this->builder->where('goods_name', '=', trim($value));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function shipId($value)
|
||||||
|
{
|
||||||
|
return $this->builder->where('shop_id', '=', trim($value));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Business;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Http\Resources\BusinessGoodsSkuResource;
|
||||||
|
use App\Models\BusinessGoodsSku;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
|
class BusinessGoodsSkusController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
$businessGoodsSkus = BusinessGoodsSku::query()
|
||||||
|
->filter()
|
||||||
|
->with(['shop:id,name'])
|
||||||
|
->paginate($request->get('per_page'));
|
||||||
|
|
||||||
|
return BusinessGoodsSkuResource::collection($businessGoodsSkus);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'is_sync' => ['required', Rule::in([0, 1])]
|
||||||
|
]);
|
||||||
|
if ($validator->fails()) {
|
||||||
|
$this->setValidatorFailResponse($validator->getMessageBag()->getMessages());
|
||||||
|
|
||||||
|
return response($this->res, $this->res['httpCode']);
|
||||||
|
}
|
||||||
|
$sku = BusinessGoodsSku::find($id);
|
||||||
|
$sku->is_sync = $request->input('is_sync');
|
||||||
|
$sku->save();
|
||||||
|
|
||||||
|
return response($this->res, $this->res['httpCode']);
|
||||||
|
}
|
||||||
|
}
|
||||||
19
app/Http/Resources/BusinessGoodsSkuResource.php
Normal file
19
app/Http/Resources/BusinessGoodsSkuResource.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Resources;
|
||||||
|
|
||||||
|
use Illuminate\Http\Resources\Json\JsonResource;
|
||||||
|
|
||||||
|
class BusinessGoodsSkuResource extends JsonResource
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Transform the resource into an array.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toArray($request)
|
||||||
|
{
|
||||||
|
return parent::toArray($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -36,7 +36,7 @@ class StockUpdateListener
|
|||||||
foreach ($shops as $shop) {
|
foreach ($shops as $shop) {
|
||||||
if (isset($event->goodsSku) && '下架' !== $event->goodsSku->status) {
|
if (isset($event->goodsSku) && '下架' !== $event->goodsSku->status) {
|
||||||
$num = $event->goodsSku->stock;
|
$num = $event->goodsSku->stock;
|
||||||
$businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('external_sku_id', $event->goodsSku->goods['goods_code'] . '_' . $event->goodsSku->sku_code)->get();
|
$businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('is_sync', 1)->where('external_sku_id', $event->goodsSku->goods['goods_code'] . '_' . $event->goodsSku->sku_code)->get();
|
||||||
foreach ($businessGoodsSkus as $businessGoodsSku) {
|
foreach ($businessGoodsSkus as $businessGoodsSku) {
|
||||||
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
|
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
|
||||||
}
|
}
|
||||||
@ -47,7 +47,7 @@ class StockUpdateListener
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$num = $goodsSku->stock;
|
$num = $goodsSku->stock;
|
||||||
$businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('external_sku_id', $goodsSku->goods['goods_code'] . '_' . $goodsSku->sku_code)->get();
|
$businessGoodsSkus = BusinessGoodsSku::query()->where('shop_id', $shop->id)->where('is_sync', 1)->where('external_sku_id', $goodsSku->goods['goods_code'] . '_' . $goodsSku->sku_code)->get();
|
||||||
foreach ($businessGoodsSkus as $businessGoodsSku) {
|
foreach ($businessGoodsSkus as $businessGoodsSku) {
|
||||||
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
|
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,19 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use App\Models\traits\Filter;
|
||||||
|
|
||||||
class BusinessGoodsSku extends Model
|
class BusinessGoodsSku extends Model
|
||||||
{
|
{
|
||||||
|
use Filter;
|
||||||
|
|
||||||
|
//查询字段
|
||||||
|
public $fieldSearchable = [
|
||||||
|
'external_sku_id',
|
||||||
|
'goods_name',
|
||||||
|
'shop_id',
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var mixed
|
* @var mixed
|
||||||
*/
|
*/
|
||||||
@ -46,4 +57,9 @@ class BusinessGoodsSku extends Model
|
|||||||
'thumb_url',
|
'thumb_url',
|
||||||
'verification_number',
|
'verification_number',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function shop()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Shop::class, 'id', 'shop_id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,6 +26,9 @@ class AddFieldsWithDailyStockRecordsTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
//
|
Schema::table('daily_stock_records', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('order_goods_num');
|
||||||
|
$table->dropColumn('inventory_time');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddFieldsWithBusinessGoodsSkusTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('business_goods_skus', function (Blueprint $table) {
|
||||||
|
$table->tinyInteger('is_sync')->default(1)->comment('是否同步');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('business_goods_skus', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('is_sync');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -13,23 +13,24 @@ class MenusTableSeeder extends Seeder
|
|||||||
public function run()
|
public function run()
|
||||||
{
|
{
|
||||||
// 商品管理-(商品列表,商品种类,商品品牌)
|
// 商品管理-(商品列表,商品种类,商品品牌)
|
||||||
$id = DB::table('menus')->insertGetId(['parent_id' => 0,'code' => 'GOODS_MANAGE', 'name' => '商品管理', 'seq' => 0]);
|
$id = DB::table('menus')->insertGetId(['parent_id' => 0, 'code' => 'GOODS_MANAGE', 'name' => '商品管理', 'seq' => 0]);
|
||||||
DB::table('menus')->insert([
|
DB::table('menus')->insert([
|
||||||
['parent_id' => $id,'code' => 'GOODS_LIST', 'name' => '商品列表', 'seq' => 0],
|
['parent_id' => $id, 'code' => 'GOODS_LIST', 'name' => '商品列表', 'seq' => 0],
|
||||||
['parent_id' => $id,'code' => 'GOODS_TYPE', 'name' => '商品种类', 'seq' => 1],
|
['parent_id' => $id, 'code' => 'GOODS_TYPE', 'name' => '商品种类', 'seq' => 1],
|
||||||
['parent_id' => $id,'code' => 'GOODS_BRAND', 'name' => '商品品牌', 'seq' => 2],
|
['parent_id' => $id, 'code' => 'GOODS_BRAND', 'name' => '商品品牌', 'seq' => 2],
|
||||||
]);
|
]);
|
||||||
// 店铺管理
|
// 店铺管理
|
||||||
DB::table('menus')->insertGetId(['parent_id' => 0,'code' => 'SHOP_MANAGE', 'name' => '店铺管理', 'seq' => 1]);
|
DB::table('menus')->insertGetId(['parent_id' => 0, 'code' => 'SHOP_MANAGE', 'name' => '店铺管理', 'seq' => 1]);
|
||||||
// 用户管理
|
// 用户管理
|
||||||
DB::table('menus')->insertGetId(['parent_id' => 0,'code' => 'USER_MANAGE', 'name' => '用户管理', 'seq' => 2]);
|
DB::table('menus')->insertGetId(['parent_id' => 0, 'code' => 'USER_MANAGE', 'name' => '用户管理', 'seq' => 2]);
|
||||||
// 系统管理-(角色管理,权限管理)
|
// 系统管理-(角色管理,权限管理,系统日志)
|
||||||
$id = DB::table('menus')->insertGetId(['parent_id' => 0,'code' => 'SYSTEM_MANAGE', 'name' => '系统管理', 'seq' => 3]);
|
$id = DB::table('menus')->insertGetId(['parent_id' => 0, 'code' => 'SYSTEM_MANAGE', 'name' => '系统管理', 'seq' => 3]);
|
||||||
DB::table('menus')->insert([
|
DB::table('menus')->insert([
|
||||||
['parent_id' => $id,'code' => 'ROLE_MANAGE', 'name' => '角色管理', 'seq' => 0],
|
['parent_id' => $id, 'code' => 'ROLE_MANAGE', 'name' => '角色管理', 'seq' => 0],
|
||||||
// ['parent_id' => $id,'code' => 'PERMISSION_MANAGE', 'name' => '权限管理', 'seq' => 1],
|
// ['parent_id' => $id,'code' => 'PERMISSION_MANAGE', 'name' => '权限管理', 'seq' => 1],
|
||||||
|
['parent_id' => $id, 'code' => 'SYSTEM_LOG', 'name' => '系统日志', 'seq' => 2],
|
||||||
]);
|
]);
|
||||||
// 系统日志
|
// 平台
|
||||||
DB::table('menus')->insertGetId(['parent_id' => 0,'code' => 'SYSTEM_LOG', 'name' => '系统日志', 'seq' => 4]);
|
DB::table('menus')->insertGetId(['parent_id' => 0, 'code' => 'PLAT', 'name' => '平台', 'seq' => 4]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -239,11 +239,27 @@ return [
|
|||||||
'SYSTEM_LOG' => [
|
'SYSTEM_LOG' => [
|
||||||
'id' => 10,
|
'id' => 10,
|
||||||
'name' => '系统日志',
|
'name' => '系统日志',
|
||||||
'parent_id' => 0,
|
'parent_id' => 7,
|
||||||
],
|
],
|
||||||
'logs.index' => [
|
'logs.index' => [
|
||||||
'id' => 100,
|
'id' => 100,
|
||||||
'name' => '列表',
|
'name' => '列表',
|
||||||
'parent_id' => 10,
|
'parent_id' => 10,
|
||||||
],
|
],
|
||||||
|
// 平台
|
||||||
|
'PLAT' => [
|
||||||
|
'id' => 12,
|
||||||
|
'name' => '平台',
|
||||||
|
'parent_id' => 0,
|
||||||
|
],
|
||||||
|
'plat_goods.index' => [
|
||||||
|
'id' => 120,
|
||||||
|
'name' => '货品列表',
|
||||||
|
'parent_id' => 12,
|
||||||
|
],
|
||||||
|
'plat_goods.update' => [
|
||||||
|
'id' => 121,
|
||||||
|
'name' => '同步更新设置',
|
||||||
|
'parent_id' => 12,
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
@ -5,6 +5,7 @@ use App\Http\Controllers\Role\RolesController;
|
|||||||
use App\Http\Controllers\UploadController;
|
use App\Http\Controllers\UploadController;
|
||||||
use App\Http\Controllers\Shop\ShopsController;
|
use App\Http\Controllers\Shop\ShopsController;
|
||||||
use App\Http\Controllers\Goods\GoodsSkusController;
|
use App\Http\Controllers\Goods\GoodsSkusController;
|
||||||
|
use App\Http\Controllers\Business\BusinessGoodsSkusController;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@ -55,3 +56,7 @@ Route::resource('menus', 'Menu\MenusController', ['only' => ['index',
|
|||||||
Route::get('shop_platforms', [ShopsController::class, 'getPlatList'])->name('plat.list')->middleware('auth:api');
|
Route::get('shop_platforms', [ShopsController::class, 'getPlatList'])->name('plat.list')->middleware('auth:api');
|
||||||
|
|
||||||
Route::post('business', [ShopsController::class, 'business'])->name('shop.put.business');
|
Route::post('business', [ShopsController::class, 'business'])->name('shop.put.business');
|
||||||
|
|
||||||
|
// 平台
|
||||||
|
Route::resource('plat_goods', 'Business\BusinessGoodsSkusController', ['only' => ['index', 'update']]);
|
||||||
|
Route::post('plat/sync/stock', [BusinessGoodsSkusController::class, 'syncStock'])->name('plat.sync.stock');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user