From 0116d920214dc12355430a347beca14623b6d493 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 31 Oct 2025 23:17:04 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E7=BB=99=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E8=A7=92=E6=A0=87=E7=9A=84Android=E8=AE=BE=E5=A4=87=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=B7=BB=E5=8A=A0=E8=A7=92=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/UmengAlias.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Models/UmengAlias.php b/app/Models/UmengAlias.php index c169377f7..fddce90c9 100644 --- a/app/Models/UmengAlias.php +++ b/app/Models/UmengAlias.php @@ -153,7 +153,7 @@ class UmengAlias extends AbstractModel $description = $array['description'] ?: 'no description'; // 描述 $extra = is_array($array['extra']) ? $array['extra'] : []; // 额外参数 $seconds = intval($array['seconds']) ?: 86400; // 有效时间(单位:秒) - $badge = intval($array['badge']) ?: 0; // 角标数(iOS) + $badge = intval($array['badge']) ?: 0; // 角标数 // switch ($platform) { case 'ios': @@ -203,6 +203,7 @@ class UmengAlias extends AbstractModel 'title' => $title, 'after_open' => 'go_app', 'play_sound' => true, + 'set_badge' => min(99, $badge), ], ], $extra), 'type' => 'customizedcast', @@ -215,12 +216,17 @@ class UmengAlias extends AbstractModel ], 'category' => 1, 'channel_properties' => [ + 'main_activity' => 'com.dootask.task.WelcomeActivity', 'oppo_channel_id' => 'dootask', 'vivo_category' => 'IM', 'huawei_channel_importance' => 'NORMAL', 'huawei_channel_category' => 'IM', 'channel_fcm' => 0, ], + 'local_properties' => [ + 'importance' => 'IMPORTANCE_DEFAULT', + 'category' => 'CATEGORY_MESSAGE', + ] ] ]); break; From 96106498d8c480c3ea7ec493bfb063450e11b7b5 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 1 Nov 2025 02:01:16 +0000 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0Umeng=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=A8=A1=E5=9E=8B=E5=8F=8A=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/IndexController.php | 1 + app/Models/UmengAlias.php | 14 +++++++- app/Models/UmengLog.php | 32 +++++++++++++++++++ app/Tasks/DeleteTmpTask.php | 12 +++++++ ...5_11_01_095600_create_umeng_logs_table.php | 23 +++++++++++++ 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 app/Models/UmengLog.php create mode 100644 database/migrations/2025_11_01_095600_create_umeng_logs_table.php diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index dea8947d2..4a99e70e3 100755 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -258,6 +258,7 @@ class IndexController extends InvokeController Task::deliver(new DeleteTmpTask('file')); Task::deliver(new DeleteTmpTask('tmp_file', 24)); Task::deliver(new DeleteTmpTask('user_device', 24)); + Task::deliver(new DeleteTmpTask('umeng_log', 24 * 3)); // 删除机器人消息 Task::deliver(new DeleteBotMsgTask()); // 周期任务 diff --git a/app/Models/UmengAlias.php b/app/Models/UmengAlias.php index fddce90c9..7dd3cf376 100644 --- a/app/Models/UmengAlias.php +++ b/app/Models/UmengAlias.php @@ -70,6 +70,9 @@ class UmengAlias extends AbstractModel return; } + $instance = null; + $responsePayload = null; + try { switch ($first['platform']) { case 'ios': @@ -81,8 +84,11 @@ class UmengAlias extends AbstractModel default: return; } - $instance->send($first['data']); + $responsePayload = $instance->send($first['data']); } catch (\Exception $e) { + $responsePayload = [ + 'error' => $e->getMessage(), + ]; $first['retry'] = intval($first['retry'] ?? 0) + 1; if ($first['retry'] > 3) { info("[PushMsg] fail: " . $e->getMessage()); @@ -91,6 +97,12 @@ class UmengAlias extends AbstractModel self::$waitSend[] = $first; } } finally { + if ($instance !== null) { + UmengLog::create([ + 'request' => Base::array2json($first['data']), + 'response' => Base::array2json($responsePayload), + ]); + } self::sendTask(); } } diff --git a/app/Models/UmengLog.php b/app/Models/UmengLog.php new file mode 100644 index 000000000..2cb9f903b --- /dev/null +++ b/app/Models/UmengLog.php @@ -0,0 +1,32 @@ +subHours($this->hours)) + ->orderBy('id') + ->chunk(500, function ($logs) { + /** @var UmengLog $log */ + foreach ($logs as $log) { + $log->delete(); + } + }); + break; } } diff --git a/database/migrations/2025_11_01_095600_create_umeng_logs_table.php b/database/migrations/2025_11_01_095600_create_umeng_logs_table.php new file mode 100644 index 000000000..6e2d71ff9 --- /dev/null +++ b/database/migrations/2025_11_01_095600_create_umeng_logs_table.php @@ -0,0 +1,23 @@ +id(); + $table->text('request')->nullable()->comment('请求参数'); + $table->text('response')->nullable()->comment('推送返回'); + $table->timestamps(); + }); + } + + public function down(): void + { + Schema::dropIfExists('umeng_logs'); + } +};