feat: 免打扰导致推送角标数量不对

This commit is contained in:
kuaifan 2023-01-18 18:24:32 +08:00
parent 271d2c97fa
commit 3249501950
4 changed files with 41 additions and 3 deletions

View File

@ -159,7 +159,7 @@ class UmengAlias extends AbstractModel
->chunkById(100, function ($datas) use ($array) { ->chunkById(100, function ($datas) use ($array) {
$uids = $datas->groupBy('userid'); $uids = $datas->groupBy('userid');
foreach ($uids as $uid => $rows) { 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'); $lists = $rows->groupBy('platform');
foreach ($lists as $platform => $list) { foreach ($lists as $platform => $list) {
$alias = $list->pluck('alias')->implode(','); $alias = $list->pluck('alias')->implode(',');

View File

@ -12,6 +12,7 @@ use Carbon\Carbon;
* @property int|null $msg_id 消息ID * @property int|null $msg_id 消息ID
* @property int|null $userid 接收会员ID * @property int|null $userid 接收会员ID
* @property int|null $mention 是否提及(被@ * @property int|null $mention 是否提及(被@
* @property int|null $silence 是否免打扰0否1是
* @property int|null $email 是否发了邮件 * @property int|null $email 是否发了邮件
* @property int|null $after 在阅读之后才添加的记录 * @property int|null $after 在阅读之后才添加的记录
* @property string|null $read_at 阅读时间 * @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 whereMention($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereMsgId($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 whereReadAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereSilence($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereUserid($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsgRead whereUserid($value)
* @mixin \Eloquent * @mixin \Eloquent
*/ */

View File

@ -111,10 +111,11 @@ class WebSocketDialogMsgTask extends AbstractTask
// 推送目标①:会话成员/群成员 // 推送目标①:会话成员/群成员
$array = []; $array = [];
foreach ($userids AS $userid) { foreach ($userids AS $userid) {
$silence = $this->silence || $silences[$userid];
if ($userid == $msg->userid) { if ($userid == $msg->userid) {
$array[$userid] = [ $array[$userid] = [
'userid' => $userid, 'userid' => $userid,
'silence' => $this->silence || $silences[$userid], 'silence' => $silence,
'mention' => false, 'mention' => false,
]; ];
} else { } else {
@ -124,10 +125,11 @@ class WebSocketDialogMsgTask extends AbstractTask
'msg_id' => $msg->id, 'msg_id' => $msg->id,
'userid' => $userid, 'userid' => $userid,
'mention' => $mention, 'mention' => $mention,
'silence' => $silence,
])->saveOrIgnore(); ])->saveOrIgnore();
$array[$userid] = [ $array[$userid] = [
'userid' => $userid, 'userid' => $userid,
'silence' => $this->silence || $silences[$userid], 'silence' => $silence,
'mention' => $mention, 'mention' => $mention,
]; ];
// 机器人收到消处理 // 机器人收到消处理

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddWebSocketDialogMsgReadsAddSilence extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('web_socket_dialog_msg_reads', function (Blueprint $table) {
if (!Schema::hasColumn('web_socket_dialog_msg_reads', 'silence')) {
$table->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");
});
}
}