#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) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@ -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');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -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');
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -23,13 +23,14 @@ class MenusTableSeeder extends Seeder
|
||||
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')->insert([
|
||||
['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]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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,
|
||||
],
|
||||
];
|
||||
|
||||
@ -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');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user