no message

This commit is contained in:
kuaifan 2023-04-01 23:09:13 +08:00
parent 8af540f9b2
commit 81fdcce40f
2 changed files with 22 additions and 11 deletions

View File

@ -155,12 +155,12 @@ class UmengAlias extends AbstractModel
$builder->whereUserid($userid); $builder->whereUserid($userid);
} }
$builder $builder
->orderByDesc('id') ->orderByDesc('updated_at')
->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)->whereSilence(0)->whereReadAt(null)->count(); $array['badge'] = WebSocketDialogMsgRead::whereUserid($uid)->whereSilence(0)->whereReadAt(null)->count();
$lists = $rows->groupBy('platform'); $lists = $rows->take(5)->groupBy('platform'); // 每个会员最多推送5个别名
foreach ($lists as $platform => $list) { foreach ($lists as $platform => $list) {
$alias = $list->pluck('alias')->implode(','); $alias = $list->pluck('alias')->implode(',');
self::pushMsgToAlias($alias, $platform, $array); self::pushMsgToAlias($alias, $platform, $array);

View File

@ -112,7 +112,7 @@ class PushTask extends AbstractTask
*/ */
public static function push(array $lists, $retryOffline = true, $key = null, $delay = 1) public static function push(array $lists, $retryOffline = true, $key = null, $delay = 1)
{ {
if (!is_array($lists) || empty($lists)) { if (empty($lists)) {
return; return;
} }
if (!Base::isTwoArray($lists)) { if (!Base::isTwoArray($lists)) {
@ -178,14 +178,7 @@ class PushTask extends AbstractTask
Task::deliver($task); Task::deliver($task);
} else { } else {
try { try {
$encrypt = Base::json2array(Cache::get("User::encrypt:" . $fid)); $swoole->push($fid, self::pushMsgFormat($fid, $msg));
if ($encrypt['type'] == 'pgp') {
$msg = [
'type' => 'encrypt',
'encrypted' => Doo::pgpEncryptApi($msg, $encrypt['key']),
];
}
$swoole->push($fid, Base::array2json($msg));
if ($tmpMsgId > 0) { if ($tmpMsgId > 0) {
WebSocketTmpMsg::whereId($tmpMsgId)->update(['send' => 1]); WebSocketTmpMsg::whereId($tmpMsgId)->update(['send' => 1]);
} }
@ -201,4 +194,22 @@ class PushTask extends AbstractTask
} }
} }
} }
/**
* 格式化推送消息
* @param $fid
* @param $msg
* @return string
*/
private static function pushMsgFormat($fid, $msg)
{
$encrypt = Base::json2array(Cache::get("User::encrypt:" . $fid));
if ($encrypt['type'] == 'pgp') {
$msg = [
'type' => 'encrypt',
'encrypted' => Doo::pgpEncryptApi($msg, $encrypt['key']),
];
}
return Base::array2json($msg);
}
} }