From 81fdcce40fe06ccf604c09c3cc0ddf951b174b68 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 1 Apr 2023 23:09:13 +0800 Subject: [PATCH] no message --- app/Models/UmengAlias.php | 4 ++-- app/Tasks/PushTask.php | 29 ++++++++++++++++++++--------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/Models/UmengAlias.php b/app/Models/UmengAlias.php index e54d0951f..761eb702e 100644 --- a/app/Models/UmengAlias.php +++ b/app/Models/UmengAlias.php @@ -155,12 +155,12 @@ class UmengAlias extends AbstractModel $builder->whereUserid($userid); } $builder - ->orderByDesc('id') + ->orderByDesc('updated_at') ->chunkById(100, function ($datas) use ($array) { $uids = $datas->groupBy('userid'); foreach ($uids as $uid => $rows) { $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) { $alias = $list->pluck('alias')->implode(','); self::pushMsgToAlias($alias, $platform, $array); diff --git a/app/Tasks/PushTask.php b/app/Tasks/PushTask.php index a10e9bc6a..c5fc977c8 100644 --- a/app/Tasks/PushTask.php +++ b/app/Tasks/PushTask.php @@ -112,7 +112,7 @@ class PushTask extends AbstractTask */ public static function push(array $lists, $retryOffline = true, $key = null, $delay = 1) { - if (!is_array($lists) || empty($lists)) { + if (empty($lists)) { return; } if (!Base::isTwoArray($lists)) { @@ -178,14 +178,7 @@ class PushTask extends AbstractTask Task::deliver($task); } else { try { - $encrypt = Base::json2array(Cache::get("User::encrypt:" . $fid)); - if ($encrypt['type'] == 'pgp') { - $msg = [ - 'type' => 'encrypt', - 'encrypted' => Doo::pgpEncryptApi($msg, $encrypt['key']), - ]; - } - $swoole->push($fid, Base::array2json($msg)); + $swoole->push($fid, self::pushMsgFormat($fid, $msg)); if ($tmpMsgId > 0) { 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); + } }