| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace Longyi\ShippingInsurance\Http\Controllers\Admin;
- use Illuminate\Http\RedirectResponse;
- use Illuminate\View\View;
- use Webkul\Admin\Http\Controllers\Controller;
- use Webkul\Core\Repositories\CoreConfigRepository;
- class ShippingInsuranceController extends Controller
- {
- /**
- * Create a new controller instance.
- */
- public function __construct(
- protected CoreConfigRepository $coreConfigRepository,
- ) {
- }
- /**
- * Display the shipping insurance configuration.
- */
- public function index(): View
- {
- $config = [
- 'enable' => (bool) core()->getConfigData('sales.checkout.shipping_insurance.enable'),
- 'name' => core()->getConfigData('sales.checkout.shipping_insurance.name') ?: '运费险',
- 'type' => core()->getConfigData('sales.checkout.shipping_insurance.type') ?: 'fixed',
- 'value' => core()->getConfigData('sales.checkout.shipping_insurance.value') ?: 0,
- ];
- return view('shippinginsurance::admin.index', compact('config'));
- }
- /**
- * Store the shipping insurance configuration.
- */
- public function store(): RedirectResponse
- {
- $validated = request()->validate([
- 'enable' => 'nullable|boolean',
- 'name' => 'nullable|string|max:50',
- 'type' => 'required|in:fixed,percentage',
- 'value' => 'required|numeric|min:0',
- ]);
- $values = [
- 'sales.checkout.shipping_insurance.enable' => ($validated['enable'] ?? false) ? 1 : 0,
- 'sales.checkout.shipping_insurance.name' => $validated['name'] ?? '运费险',
- 'sales.checkout.shipping_insurance.type' => $validated['type'],
- 'sales.checkout.shipping_insurance.value' => $validated['value'],
- ];
- foreach ($values as $code => $value) {
- $this->coreConfigRepository->updateOrCreate(
- ['code' => $code],
- ['value' => $value]
- );
- }
- session()->flash('success', trans('shippinginsurance::app.admin.save-success'));
- return redirect()->route('admin.shipping_insurance.index');
- }
- }
|