diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 21aeb894..66a78d7e 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -20,7 +20,6 @@ class Kernel extends HttpKernel \App\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, - \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, ]; /** diff --git a/beike/Admin/Http/Controllers/CurrencyController.php b/beike/Admin/Http/Controllers/CurrencyController.php new file mode 100644 index 00000000..df135a8e --- /dev/null +++ b/beike/Admin/Http/Controllers/CurrencyController.php @@ -0,0 +1,91 @@ + + * @created 2022-06-30 16:17:04 + * @modified 2022-06-30 16:17:04 + */ + +namespace Beike\Admin\Http\Controllers; + +use Beike\Admin\Http\Requests\CurrencyRequest; +use Beike\Admin\Http\Resources\CustomerResource; +use Beike\Models\Customer; +use Beike\Repositories\CountryRepo; +use Beike\Repositories\CurrencyRepo; +use Beike\Repositories\CustomerGroupRepo; +use Beike\Repositories\CustomerRepo; +use Illuminate\Http\Request; + +class CurrencyController extends Controller +{ + protected string $defaultRoute = 'currencies.index'; + + public function index(Request $request) + { + $currencies = CurrencyRepo::all(); + + $data = [ + 'currencies' => $currencies, + ]; + + return view('admin::pages.currencies.index', $data); + } + + public function create() + { + return view('admin::pages.currencies.form'); + } + + public function store(CurrencyRequest $request) + { + $data = [ + 'name' => $request->get('name', ''), + 'code' => $request->get('code', ''), + 'symbol_left' => $request->get('symbol_left', ''), + 'symbol_right' => $request->get('symbol_right', ''), + 'decimal_place' => (float)$request->get('decimal_place', 0), + 'value' => (float)$request->get('value', 1), + 'status' => (int)$request->get('status', 0), + ]; + CurrencyRepo::create($data); + + return redirect($this->getRedirect())->with('success', '货币创建成功!'); + } + + public function edit(Request $request, int $currency) + { + $data = [ + 'currency' => $currency, + '_redirect' => $this->getRedirect(), + ]; + + return view('admin::pages.currencies.form', $data); + } + + public function update(CurrencyRequest $request, int $currencyId) + { + $data = [ + 'name' => $request->get('name', ''), + 'code' => $request->get('code', ''), + 'symbol_left' => $request->get('symbol_left', ''), + 'symbol_right' => $request->get('symbol_right', ''), + 'decimal_place' => (float)$request->get('decimal_place', 0), + 'value' => (float)$request->get('value', 1), + 'status' => (int)$request->get('status', 0), + ]; + CurrencyRepo::update($currencyId, $data); + + return redirect($this->getRedirect())->with('success', '货币更新成功!'); + } + + public function destroy(Request $request, int $currencyId) + { + CurrencyRepo::delete($currencyId); + + return json_success('删除成功!'); + } +} diff --git a/beike/Admin/Http/Requests/CurrencyRequest.php b/beike/Admin/Http/Requests/CurrencyRequest.php new file mode 100644 index 00000000..162a8542 --- /dev/null +++ b/beike/Admin/Http/Requests/CurrencyRequest.php @@ -0,0 +1,45 @@ + 'required|max:64', + 'code' => 'required|max:16', + 'symbol_left' => 'max:16', + 'symbol_right' => 'max:16', + 'value' => 'required', + ]; + } + + public function attributes() + { + return [ + 'name' => '名称', + 'code' => '编码', + 'symbol_left' => '左符号', + 'symbol_right' => '右符号', + 'value' => '汇率值', + ]; + } +} diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 0956b00e..f89fd78b 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -23,6 +23,7 @@ Route::prefix('admin') Route::put('products/restore', [\Beike\Admin\Http\Controllers\ProductController::class, 'restore']); Route::resource('products', \Beike\Admin\Http\Controllers\ProductController::class); + Route::resource('currencies', \Beike\Admin\Http\Controllers\CurrencyController::class); Route::get('settings', [\Beike\Admin\Http\Controllers\SettingController::class, 'index'])->name('settings.index'); diff --git a/beike/Models/Currency.php b/beike/Models/Currency.php new file mode 100644 index 00000000..a6855d83 --- /dev/null +++ b/beike/Models/Currency.php @@ -0,0 +1,24 @@ + + * @created 2022-06-30 15:22:18 + * @modified 2022-06-30 15:22:18 + */ + +namespace Beike\Models; + +use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Factories\HasFactory; + +class Currency extends Model +{ + use HasFactory; + + protected $fillable = ['name', 'code', 'symbol_left', 'symbol_right', 'decimal_place', 'value', 'status']; + +} + diff --git a/beike/Repositories/CurrencyRepo.php b/beike/Repositories/CurrencyRepo.php new file mode 100644 index 00000000..f32714dc --- /dev/null +++ b/beike/Repositories/CurrencyRepo.php @@ -0,0 +1,69 @@ + + * @created 2022-06-30 15:22:05 + * @modified 2022-06-30 15:22:05 + */ + +namespace Beike\Repositories; + +use Beike\Models\Country; +use Beike\Models\Currency; + +class CurrencyRepo +{ + /** + * 创建一个currency记录 + * @param $data + * @return int + */ + public static function create($data) + { + return Currency::query()->create($data); + } + + /** + * @param $id + * @param $data + * @return bool|int + */ + public static function update($id, $data) + { + $item = Currency::query()->find($id); + if (!$item) { + throw new \Exception("货币id {$id} 不存在"); + } + $item->update($data); + return $item; + } + + /** + * @param $id + * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model|null + */ + public static function find($id) + { + return Currency::query()->find($id); + } + + /** + * @param $id + * @return void + */ + public static function delete($id) + { + $item = Currency::query()->find($id); + if ($item) { + $item->delete(); + } + } + + public static function all() + { + return Currency::query()->get(); + } +} diff --git a/resources/beike/admin/views/pages/currencies/form.blade.php b/resources/beike/admin/views/pages/currencies/form.blade.php new file mode 100644 index 00000000..b4778488 --- /dev/null +++ b/resources/beike/admin/views/pages/currencies/form.blade.php @@ -0,0 +1,77 @@ +@extends('admin::layouts.master') + +@section('title', '货币管理') + +@section('content') +
| # | +名称 | +编码 | +货币左符号 | +货币右符号 | +小数位数 | +汇率值 | +状态 | +操作 | +
|---|---|---|---|---|---|---|---|---|
| {{ $currency['id'] }} | +{{ $currency['name'] }} | +{{ $currency['code'] }} | +{{ $currency['symbol_left'] }} | +{{ $currency['symbol_right'] }} | +{{ $currency['decimal_place'] }} | +{{ $currency['value'] }} | +{{ $currency['status'] }} | ++ 编辑 + | +