diff --git a/app/Http/Controllers/Admin/ModuleController.php b/app/Http/Controllers/Admin/ModuleController.php index 14ef003..cb47bd2 100644 --- a/app/Http/Controllers/Admin/ModuleController.php +++ b/app/Http/Controllers/Admin/ModuleController.php @@ -4,14 +4,18 @@ use App\Http\Controllers\Controller; use App\Models\Module; +use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Http\Response; +use Illuminate\Support\Str; +use Illuminate\View\View; class ModuleController extends Controller { /** * Display a listing of the resource. * - * @return \Illuminate\Http\Response + * @return Response */ public function index(Module $module) { @@ -23,11 +27,13 @@ public function index(Module $module) /** * Show the form for creating a new resource. * - * @return \Illuminate\Http\Response + * @return View */ - public function create() + public function create(): View { // + + return view('admin.modules.create'); } /** @@ -35,11 +41,27 @@ public function create() * * @param \Illuminate\Http\Request $request * - * @return \Illuminate\Http\Response + * @return Response */ public function store(Request $request) { // + + $request->validate($this->rules()); + + + $api_token = Str::random(60); + + $module = new Module(); + + $module->id = $request->id; + $module->name = $request->name; + $module->api_token = $api_token; + $module->url = $request->url; + $module->save(); + + return redirect()->route('admin.modules.index')->with('success', '模块创建成功, 请重置以获得 API Token。'); + } /** @@ -47,11 +69,13 @@ public function store(Request $request) * * @param \App\Models\Module $module * - * @return \Illuminate\Http\Response + * @return View */ - public function show(Module $module) + public function show(Module $module): View { - // + $years = $module->calculate(); + + return view('admin.modules.show', compact('module', 'years')); } /** @@ -59,11 +83,13 @@ public function show(Module $module) * * @param \App\Models\Module $module * - * @return \Illuminate\Http\Response + * @return Response */ - public function edit(Module $module) + public function edit(Module $module): View { // + + return view('admin.modules.edit', compact('module')); } /** @@ -72,11 +98,34 @@ public function edit(Module $module) * @param \Illuminate\Http\Request $request * @param \App\Models\Module $module * - * @return \Illuminate\Http\Response + * @return Response */ - public function update(Request $request, Module $module) + public function update(Request $request, Module $module): RedirectResponse { // + + $request->validate($this->rules()); + + + if ($request->reset_api_token) { + $module->api_token = Str::random(60); + } + + $module->id = $request->id; + $module->name = $request->name; + $module->url = $request->url; + + $module->save(); + + $text = '模块更新成功'; + + if ($request->reset_api_token) { + $text .= ', API Token 为 ' . $module->api_token . '。'; + } else { + $text .= '。'; + } + + return redirect()->route('admin.modules.edit', $module->id)->with('success', $text); } /** @@ -84,10 +133,23 @@ public function update(Request $request, Module $module) * * @param \App\Models\Module $module * - * @return \Illuminate\Http\Response + * @return Response */ public function destroy(Module $module) { // + + $module->delete(); + + return redirect()->route('admin.modules.index')->with('success', '模块已删除。'); + } + + private function rules(): array + { + return [ + 'id' => 'required|string|max:255', + 'name' => 'required|string|max:255', + 'url' => 'required|url', + ]; } } diff --git a/resources/views/admin/modules/create.blade.php b/resources/views/admin/modules/create.blade.php new file mode 100644 index 0000000..57f454d --- /dev/null +++ b/resources/views/admin/modules/create.blade.php @@ -0,0 +1,29 @@ +@extends('layouts.admin') + +@section('title', '新建模块') + +@section('content') +

新建模块

+ +
+ @csrf + +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ +@endsection diff --git a/resources/views/admin/modules/edit.blade.php b/resources/views/admin/modules/edit.blade.php new file mode 100644 index 0000000..6ba3719 --- /dev/null +++ b/resources/views/admin/modules/edit.blade.php @@ -0,0 +1,47 @@ +@extends('layouts.admin') + +@section('title', '模块:' . $module->name) + +@section('content') +

{{ $module->name }}

+ 查看 + +
+ @csrf + @method('PATCH') + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + +
+
+ @csrf + @method('DELETE') + +
+ +@endsection diff --git a/resources/views/admin/modules/index.blade.php b/resources/views/admin/modules/index.blade.php index 3add77b..d0640d3 100644 --- a/resources/views/admin/modules/index.blade.php +++ b/resources/views/admin/modules/index.blade.php @@ -4,6 +4,8 @@ @section('content') +

模块

+ 新建模块
@@ -24,6 +26,7 @@ {{ $module->name }} diff --git a/resources/views/admin/modules/show.blade.php b/resources/views/admin/modules/show.blade.php new file mode 100644 index 0000000..574ca99 --- /dev/null +++ b/resources/views/admin/modules/show.blade.php @@ -0,0 +1,35 @@ +@extends('layouts.admin') + +@section('title', '模块:' . $module->name) + +@section('content') +

{{ $module->name }}

+ 编辑 +

收益

+
+
+ 查看 编辑
+ + + + @for ($i = 1; $i < 13; $i++) + + @endfor + + + + @foreach ($years as $year => $months) + + + @for ($i = 1; $i < 13; $i++) + + + + @endfor + + @endforeach + +
年 / 月{{ $i }} 月
{{ $year }} 0) class="text-danger" @endif>{{ $months[$i]['should_balance'] ?? 0 }} + 元 +
+
+@endsection