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"); + }); + } +}