#10000 平台商品列表

This commit is contained in:
赵世界 2022-09-02 18:42:57 +08:00
parent 431b350add
commit a92f86f557
10 changed files with 168 additions and 15 deletions

View 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));
}
}

View File

@ -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']);
}
}

View 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);
}
}

View File

@ -36,7 +36,7 @@ class StockUpdateListener
foreach ($shops as $shop) {
if (isset($event->goodsSku) && '下架' !== $event->goodsSku->status) {
$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) {
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
}
@ -47,7 +47,7 @@ class StockUpdateListener
continue;
}
$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) {
BusinessGoodsSkuIncrQuantity::dispatch($shop, $businessGoodsSku->toArray(), $num, false);
}

View File

@ -2,8 +2,19 @@
namespace App\Models;
use App\Models\traits\Filter;
class BusinessGoodsSku extends Model
{
use Filter;
//查询字段
public $fieldSearchable = [
'external_sku_id',
'goods_name',
'shop_id',
];
/**
* @var mixed
*/
@ -46,4 +57,9 @@ class BusinessGoodsSku extends Model
'thumb_url',
'verification_number',
];
public function shop()
{
return $this->hasOne(Shop::class, 'id', 'shop_id');
}
}

View File

@ -26,6 +26,9 @@ class AddFieldsWithDailyStockRecordsTable extends Migration
*/
public function down()
{
//
Schema::table('daily_stock_records', function (Blueprint $table) {
$table->dropColumn('order_goods_num');
$table->dropColumn('inventory_time');
});
}
}

View File

@ -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');
});
}
}

View File

@ -13,23 +13,24 @@ class MenusTableSeeder extends Seeder
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([
['parent_id' => $id,'code' => 'GOODS_LIST', 'name' => '商品列表', 'seq' => 0],
['parent_id' => $id,'code' => 'GOODS_TYPE', 'name' => '商品种类', 'seq' => 1],
['parent_id' => $id,'code' => 'GOODS_BRAND', 'name' => '商品品牌', 'seq' => 2],
['parent_id' => $id, 'code' => 'GOODS_LIST', 'name' => '商品列表', 'seq' => 0],
['parent_id' => $id, 'code' => 'GOODS_TYPE', 'name' => '商品种类', 'seq' => 1],
['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]);
// 系统管理-(角色管理,权限管理)
$id = DB::table('menus')->insertGetId(['parent_id' => 0,'code' => 'SYSTEM_MANAGE', 'name' => '系统管理', 'seq' => 3]);
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]);
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' => '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]);
}
}

View File

@ -239,11 +239,27 @@ return [
'SYSTEM_LOG' => [
'id' => 10,
'name' => '系统日志',
'parent_id' => 0,
'parent_id' => 7,
],
'logs.index' => [
'id' => 100,
'name' => '列表',
'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,
],
];

View File

@ -5,6 +5,7 @@ use App\Http\Controllers\Role\RolesController;
use App\Http\Controllers\UploadController;
use App\Http\Controllers\Shop\ShopsController;
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::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');