From 32495019505007a00efc9f1a6078f6285535c86d Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 18 Jan 2023 18:24:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=8D=E6=89=93=E6=89=B0=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=8E=A8=E9=80=81=E8=A7=92=E6=A0=87=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/UmengAlias.php | 2 +- app/Models/WebSocketDialogMsgRead.php | 2 ++ app/Tasks/WebSocketDialogMsgTask.php | 6 ++-- ...eb_socket_dialog_msg_reads_add_silence.php | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 database/migrations/2023_01_18_181320_add_web_socket_dialog_msg_reads_add_silence.php diff --git a/app/Models/UmengAlias.php b/app/Models/UmengAlias.php index 0867f4625..e54d0951f 100644 --- a/app/Models/UmengAlias.php +++ b/app/Models/UmengAlias.php @@ -159,7 +159,7 @@ class UmengAlias extends AbstractModel ->chunkById(100, function ($datas) use ($array) { $uids = $datas->groupBy('userid'); foreach ($uids as $uid => $rows) { - $array['badge'] = WebSocketDialogMsgRead::whereUserid($uid)->whereReadAt(null)->count(); + $array['badge'] = WebSocketDialogMsgRead::whereUserid($uid)->whereSilence(0)->whereReadAt(null)->count(); $lists = $rows->groupBy('platform'); foreach ($lists as $platform => $list) { $alias = $list->pluck('alias')->implode(','); diff --git a/app/Models/WebSocketDialogMsgRead.php b/app/Models/WebSocketDialogMsgRead.php index e7ccef355..e3e605b85 100644 --- a/app/Models/WebSocketDialogMsgRead.php +++ b/app/Models/WebSocketDialogMsgRead.php @@ -12,6 +12,7 @@ use Carbon\Carbon; * @property int|null $msg_id 消息ID * @property int|null $userid 接收会员ID * @property int|null $mention 是否提及(被@) + * @property int|null $silence 是否免打扰:0否,1是 * @property int|null $email 是否发了邮件 * @property int|null $after 在阅读之后才添加的记录 * @property string|null $read_at 阅读时间 @@ -26,6 +27,7 @@ use Carbon\Carbon; * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereMention($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereMsgId($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereReadAt($value) + * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereSilence($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereUserid($value) * @mixin \Eloquent */ diff --git a/app/Tasks/WebSocketDialogMsgTask.php b/app/Tasks/WebSocketDialogMsgTask.php index f35f7c3a1..7e068b057 100644 --- a/app/Tasks/WebSocketDialogMsgTask.php +++ b/app/Tasks/WebSocketDialogMsgTask.php @@ -111,10 +111,11 @@ class WebSocketDialogMsgTask extends AbstractTask // 推送目标①:会话成员/群成员 $array = []; foreach ($userids AS $userid) { + $silence = $this->silence || $silences[$userid]; if ($userid == $msg->userid) { $array[$userid] = [ 'userid' => $userid, - 'silence' => $this->silence || $silences[$userid], + 'silence' => $silence, 'mention' => false, ]; } else { @@ -124,10 +125,11 @@ class WebSocketDialogMsgTask extends AbstractTask 'msg_id' => $msg->id, 'userid' => $userid, 'mention' => $mention, + 'silence' => $silence, ])->saveOrIgnore(); $array[$userid] = [ 'userid' => $userid, - 'silence' => $this->silence || $silences[$userid], + 'silence' => $silence, 'mention' => $mention, ]; // 机器人收到消处理 diff --git a/database/migrations/2023_01_18_181320_add_web_socket_dialog_msg_reads_add_silence.php b/database/migrations/2023_01_18_181320_add_web_socket_dialog_msg_reads_add_silence.php new file mode 100644 index 000000000..6b195a505 --- /dev/null +++ b/database/migrations/2023_01_18_181320_add_web_socket_dialog_msg_reads_add_silence.php @@ -0,0 +1,34 @@ +boolean('silence')->default(0)->nullable()->after('mention')->comment('是否免打扰:0否,1是'); + } + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('web_socket_dialog_msg_reads', function (Blueprint $table) { + $table->dropColumn("silence"); + }); + } +}