Admin Store ExportProductSku
parent
d12c76d0aa
commit
644be10419
|
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Admin\Actions\Store;
|
||||||
|
|
||||||
|
use App\Models\ProductSku;
|
||||||
|
use App\Models\Store\ProductSku as StoreProductSku;
|
||||||
|
use App\Models\Store\Store;
|
||||||
|
use Dcat\Admin\Show\AbstractTool;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class ExportGoodsSpu extends AbstractTool
|
||||||
|
{
|
||||||
|
protected $title = '导入全站商品';
|
||||||
|
|
||||||
|
protected $style = 'btn btn-sm btn-primary mr-1';
|
||||||
|
|
||||||
|
protected $amount = 10000;
|
||||||
|
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$id = $this->getKey();
|
||||||
|
$store = Store::findOrFail($id);
|
||||||
|
|
||||||
|
try {
|
||||||
|
DB::beginTransaction();
|
||||||
|
$skuIds = StoreProductSku::where('store_id', $store->id)->pluck('product_sku_id');
|
||||||
|
$skus = ProductSku::online()->whereNotIn('id', $skuIds)->get();
|
||||||
|
foreach($skus as $sku) {
|
||||||
|
StoreProductSku::create([
|
||||||
|
'store_id' => $store->id,
|
||||||
|
'product_sku_id' => $sku->id,
|
||||||
|
'status' => 1,
|
||||||
|
'amount' => $this->amount,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
return $this->response()->success('导入 '.$skus->count().' 个商品')->refresh();
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
DB::rollBack();
|
||||||
|
report($e);
|
||||||
|
return $this->response()->error($e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function confirm()
|
||||||
|
{
|
||||||
|
return ['是否确定?', '导入全部上架的商品, 库存为 ' . $this->amount . ', 店铺已经存在的商品会被忽略'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace App\Admin\Controllers\Store;
|
namespace App\Admin\Controllers\Store;
|
||||||
|
|
||||||
|
use App\Admin\Actions\Store\ExportGoodsSpu;
|
||||||
use App\Models\Store\{Store, ProductSku, Administrator as StoreAdministrator, StockLog};
|
use App\Models\Store\{Store, ProductSku, Administrator as StoreAdministrator, StockLog};
|
||||||
use Dcat\Admin\{Form, Grid, Show, Admin};
|
use Dcat\Admin\{Form, Grid, Show, Admin};
|
||||||
use Dcat\Admin\Http\Controllers\AdminController;
|
use Dcat\Admin\Http\Controllers\AdminController;
|
||||||
|
|
@ -11,6 +12,7 @@ use App\Models\Admin\Administrator;
|
||||||
use Dcat\Admin\Widgets\{Box, Tab, Card};
|
use Dcat\Admin\Widgets\{Box, Tab, Card};
|
||||||
use Dcat\Admin\Layout\{Content, Row};
|
use Dcat\Admin\Layout\{Content, Row};
|
||||||
use App\Admin\Metrics\Store\{TotalStore, TotalUser, TotalOrder, TotalMoney};
|
use App\Admin\Metrics\Store\{TotalStore, TotalUser, TotalOrder, TotalMoney};
|
||||||
|
use Dcat\Admin\Show\Tools;
|
||||||
|
|
||||||
class StoreController extends AdminController
|
class StoreController extends AdminController
|
||||||
{
|
{
|
||||||
|
|
@ -88,19 +90,23 @@ class StoreController extends AdminController
|
||||||
*/
|
*/
|
||||||
protected function detail($id)
|
protected function detail($id)
|
||||||
{
|
{
|
||||||
if (!$this->canAdmin()) {
|
if ($this->canAdmin()) {
|
||||||
|
$info = Store::findOrFail($id);
|
||||||
|
} else {
|
||||||
$user = Admin::user();
|
$user = Admin::user();
|
||||||
$user->stores()->findOrFail($id);
|
$info = $user->stores()->findOrFail($id);
|
||||||
}
|
}
|
||||||
$show = Show::make($id, new Store(), function (Show $show) {
|
$show = Show::make($id, $info);
|
||||||
|
$show->field('id');
|
||||||
|
$show->field('title');
|
||||||
|
$show->field('image')->image();
|
||||||
|
$show->field('sort');
|
||||||
|
$show->field('status')->using([ 0 => '关闭', 1 => '开启' ]);
|
||||||
|
$show->field('remarks');
|
||||||
|
$show->field('created_at');
|
||||||
|
|
||||||
$show->field('id');
|
$show->tools(function (Tools $tools) {
|
||||||
$show->field('title');
|
$tools->append(new ExportGoodsSpu());
|
||||||
$show->field('image')->image();
|
|
||||||
$show->field('sort');
|
|
||||||
$show->field('status')->using([ 0 => '关闭', 1 => '开启' ]);
|
|
||||||
$show->field('remarks');
|
|
||||||
$show->field('created_at');
|
|
||||||
});
|
});
|
||||||
return $show;
|
return $show;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
namespace App\Models\Store;
|
namespace App\Models\Store;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
class ProductSku extends Model
|
class ProductSku extends Model
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue