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')
+
新建模块
+
+
+
+@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 }}
+ 查看
+
+
+
+
+
+
+
+@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++)
+ {{ $i }} 月 |
+ @endfor
+
+
+
+ @foreach ($years as $year => $months)
+
+ {{ $year }} |
+ @for ($i = 1; $i < 13; $i++)
+
+ 0) class="text-danger" @endif>{{ $months[$i]['should_balance'] ?? 0 }}
+ 元
+ |
+
+ @endfor
+
+ @endforeach
+
+
+
+@endsection