diff --git a/app/Http/Controllers/Admin/ModuleController.php b/app/Http/Controllers/Admin/ModuleController.php index f3dea8c..adbd6d6 100644 --- a/app/Http/Controllers/Admin/ModuleController.php +++ b/app/Http/Controllers/Admin/ModuleController.php @@ -59,6 +59,7 @@ public function store(Request $request): RedirectResponse $module->api_token = $api_token; $module->url = $request->input('url'); $module->status = $request->input('status'); + $module->wecom_key = $request->input('wecom_key'); $module->save(); @@ -73,6 +74,7 @@ private function rules(): array 'name' => 'required|string|max:255', 'url' => 'required|url', 'status' => 'required|string|in:up,down,maintenance', + 'wecom_key' => 'required|string|max:255', ]; } @@ -101,8 +103,6 @@ public function show(Module $module): View */ public function edit(Module $module): View { - // - return view('admin.modules.edit', compact('module')); } @@ -126,6 +126,7 @@ public function update(Request $request, Module $module): RedirectResponse $module->name = $request->input('name'); $module->url = $request->input('url'); $module->status = $request->input('status'); + $module->wecom_key = $request->input('wecom_key'); $module->save(); diff --git a/app/Models/Balance.php b/app/Models/Balance.php index ccd1705..9e01ae0 100644 --- a/app/Models/Balance.php +++ b/app/Models/Balance.php @@ -2,14 +2,16 @@ namespace App\Models; +use App\Notifications\UserCharged; use GeneaLabs\LaravelModelCaching\Traits\Cachable; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo as BelongsToAlias; +use Illuminate\Notifications\Notifiable; use function auth; class Balance extends Model { - use Cachable; + use Cachable, Notifiable; protected $fillable = [ 'order_id', @@ -35,6 +37,14 @@ protected static function boot() $balance->order_id = date('YmdHis') . $balance->id . rand(1000, 9999); }); + + static::updated(function ($balance) { + if ($balance->isDirty('paid_at')) { + if ($balance->paid_at) { + $balance->notify(new UserCharged()); + } + } + }); } public function user(): BelongsToAlias diff --git a/app/Notifications/UserBalance.php b/app/Notifications/UserBalance.php deleted file mode 100644 index 749f3cf..0000000 --- a/app/Notifications/UserBalance.php +++ /dev/null @@ -1,69 +0,0 @@ -paid_at !== null) { - $view = 'notifications.user.balance'; - $notifiable->load('user'); - $user = $notifiable->user; - - - $wecom_key = config('settings.wecom.robot_hook.billing'); - - - $data = [ - 'balance' => $notifiable, - 'user' => $user, - ]; - - $resp = Http::post('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' . $wecom_key, [ - 'msgtype' => 'markdown', - 'markdown' => [ - 'content' => view($view, $data)->render(), - ], - ]); - - if (!$resp->successful()) { - Log::error('企业微信机器人发送失败', $data); - } - } - } - } -} diff --git a/app/Notifications/UserCharged.php b/app/Notifications/UserCharged.php new file mode 100644 index 0000000..e4ead46 --- /dev/null +++ b/app/Notifications/UserCharged.php @@ -0,0 +1,54 @@ +load('user'); + + $user = $notifiable->user; + + $wecom_key = config('settings.wecom.robot_hook.billing'); + + return [ + 'key' => $wecom_key, + 'view' => 'notifications.charge_success', + 'data' => [ + 'user' => $user, + 'balance' => $notifiable, + ] + ]; + + } +} diff --git a/resources/views/admin/modules/create.blade.php b/resources/views/admin/modules/create.blade.php index d4efe04..5272863 100644 --- a/resources/views/admin/modules/create.blade.php +++ b/resources/views/admin/modules/create.blade.php @@ -23,6 +23,11 @@ +
+ + +
+
@@ -36,4 +41,4 @@ -@endsection \ No newline at end of file +@endsection diff --git a/resources/views/admin/modules/edit.blade.php b/resources/views/admin/modules/edit.blade.php index 0fb25c9..22fb63d 100644 --- a/resources/views/admin/modules/edit.blade.php +++ b/resources/views/admin/modules/edit.blade.php @@ -26,6 +26,11 @@
+
+ + +
+