From 565c1d78d16dc0d5bbe9df4cf3e7babaf03b44b4 Mon Sep 17 00:00:00 2001 From: Edward Yang Date: Wed, 27 Jul 2022 11:24:16 +0800 Subject: [PATCH] fixed tax rate --- .../Http/Controllers/TaxClassController.php | 3 +- .../Http/Controllers/TaxRateController.php | 23 ++++++--- beike/Admin/Repositories/TaxRateRepo.php | 48 +++++++++++++++++++ beike/Admin/View/Components/Sidebar.php | 3 +- 4 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 beike/Admin/Repositories/TaxRateRepo.php diff --git a/beike/Admin/Http/Controllers/TaxClassController.php b/beike/Admin/Http/Controllers/TaxClassController.php index 3527d76e..74764720 100644 --- a/beike/Admin/Http/Controllers/TaxClassController.php +++ b/beike/Admin/Http/Controllers/TaxClassController.php @@ -11,10 +11,9 @@ namespace Beike\Admin\Http\Controllers; -use Beike\Admin\Repositories\TaxClassRepo; -use Beike\Models\TaxClass; use Beike\Models\TaxRate; use Illuminate\Http\Request; +use Beike\Admin\Repositories\TaxClassRepo; class TaxClassController extends Controller { diff --git a/beike/Admin/Http/Controllers/TaxRateController.php b/beike/Admin/Http/Controllers/TaxRateController.php index 6c0f7c69..41550138 100644 --- a/beike/Admin/Http/Controllers/TaxRateController.php +++ b/beike/Admin/Http/Controllers/TaxRateController.php @@ -11,29 +11,38 @@ namespace Beike\Admin\Http\Controllers; -use Beike\Models\TaxRate; use Illuminate\Http\Request; +use Beike\Admin\Repositories\TaxRateRepo; class TaxRateController { public function index() { - $taxRates = TaxRate::all(); - return view('admin::pages.tax_rates.index', ['tax_rates' => $taxRates]); + $data = [ + 'tax_rates' => TaxRateRepo::getList() + ]; + + return view('admin::pages.tax_rates.index', $data); } public function store(Request $request) { - return json_success('添加成功'); + $requestData = json_decode($request->getContent(), true); + $taxRate = TaxRateRepo::createOrUpdate($requestData); + return json_success('保存成功', $taxRate); } - public function update(Request $request) + public function update(Request $request, int $taxRateId) { - return json_success('更新成功'); + $requestData = json_decode($request->getContent(), true); + $requestData['id'] = $taxRateId; + $taxRate = TaxRateRepo::createOrUpdate($requestData); + return json_success('更新成功', $taxRate); } - public function destroy(Request $request) + public function destroy(Request $request, int $taxRateId) { + TaxRateRepo::deleteById($taxRateId); return json_success('删除成功'); } } diff --git a/beike/Admin/Repositories/TaxRateRepo.php b/beike/Admin/Repositories/TaxRateRepo.php new file mode 100644 index 00000000..e7ca2b38 --- /dev/null +++ b/beike/Admin/Repositories/TaxRateRepo.php @@ -0,0 +1,48 @@ + + * @created 2022-07-27 11:21:14 + * @modified 2022-07-27 11:21:14 + */ + +namespace Beike\Admin\Repositories; + +use Beike\Models\TaxRate; + +class TaxRateRepo +{ + public static function getList() + { + return TaxRate::query()->with([ + 'region' + ])->get(); + } + + public static function createOrUpdate($data) + { + $id = $data['id'] ?? 0; + if ($id) { + $taxRate = TaxRate::query()->findOrFail($id); + } else { + $taxRate = new TaxRate(); + } + $taxRate->fill([ + 'region_id' => $data['region_id'], + 'name' => $data['name'], + 'rate' => $data['rate'], + 'type' => $data['type'], + ]); + $taxRate->saveOrFail(); + return $taxRate; + } + + public static function deleteById($id) + { + $taxRate = TaxRate::query()->findOrFail($id); + $taxRate->delete(); + } +} diff --git a/beike/Admin/View/Components/Sidebar.php b/beike/Admin/View/Components/Sidebar.php index 13c60b95..0a8c0866 100644 --- a/beike/Admin/View/Components/Sidebar.php +++ b/beike/Admin/View/Components/Sidebar.php @@ -51,8 +51,9 @@ class Sidebar extends Component if (Str::startsWith($routeName, ['settings.', 'plugins.', 'tax_classes', 'tax_rates', 'regions'])) { $this->addLink('系统设置', admin_route('settings.index'), 'fa fa-tachometer-alt', $this->equalRoute('settings.index')); $this->addLink('插件列表', admin_route('plugins.index'), 'fa fa-tachometer-alt', $this->equalRoute('plugins.index')); - $this->addLink('税费设置', admin_route('tax_classes.index'), 'fa fa-tachometer-alt', $this->equalRoute('tax_classes.index')); $this->addLink('区域分组', admin_route('regions.index'), 'fa fa-tachometer-alt', $this->equalRoute('regions.index')); + $this->addLink('税率设置', admin_route('tax_rates.index'), 'fa fa-tachometer-alt', $this->equalRoute('tax_rates.index')); + $this->addLink('税费类别', admin_route('tax_classes.index'), 'fa fa-tachometer-alt', $this->equalRoute('tax_classes.index')); $this->addLink('首页装修', admin_route('design.index'), 'fa fa-tachometer-alt', $this->equalRoute('design.index'), true); }