From 6ce37d789fba9d27b8e3049dff6b0590c9febe08 Mon Sep 17 00:00:00 2001 From: cano Date: Mon, 25 Mar 2024 06:29:56 +0800 Subject: [PATCH] change struct --- app/Bean/Queue/Api/QueueAddPostBean.php | 37 +++++++++++++++++ .../Queue/Api/QueueUserActiveStatusBean.php | 41 +++++++++++++++++++ app/Jobs/Api/AddPostQueue.php | 13 +++++- app/Jobs/Api/UserActiveStatusQueue.php | 13 +++++- .../Api/Customer/CustomerUserExtendModel.php | 26 ++++++------ app/Models/Api/Post/PostModel.php | 14 +++---- app/Models/Api/Post/PostPushBoxModel.php | 18 +++----- app/Structs/QueueAddPostStruct.php | 12 ------ app/Structs/QueueUserActiveStatusStruct.php | 12 ------ ...QueueWalletAddrTransactionChangeStruct.php | 12 ------ .../QueueWalletPlatformUserWithdrawStruct.php | 11 ----- 11 files changed, 128 insertions(+), 81 deletions(-) create mode 100644 app/Bean/Queue/Api/QueueAddPostBean.php create mode 100644 app/Bean/Queue/Api/QueueUserActiveStatusBean.php delete mode 100644 app/Structs/QueueAddPostStruct.php delete mode 100644 app/Structs/QueueUserActiveStatusStruct.php delete mode 100644 app/Structs/QueueWalletAddrTransactionChangeStruct.php delete mode 100644 app/Structs/QueueWalletPlatformUserWithdrawStruct.php diff --git a/app/Bean/Queue/Api/QueueAddPostBean.php b/app/Bean/Queue/Api/QueueAddPostBean.php new file mode 100644 index 0000000..4f90978 --- /dev/null +++ b/app/Bean/Queue/Api/QueueAddPostBean.php @@ -0,0 +1,37 @@ +id; + } + + public function setId($id): void + { + $this->id = $id; + } + + public function getType() + { + return $this->type; + } + + public function setType($type): void + { + $this->type = $type; + } + + + + +} + diff --git a/app/Bean/Queue/Api/QueueUserActiveStatusBean.php b/app/Bean/Queue/Api/QueueUserActiveStatusBean.php new file mode 100644 index 0000000..b631e44 --- /dev/null +++ b/app/Bean/Queue/Api/QueueUserActiveStatusBean.php @@ -0,0 +1,41 @@ +uid; + } + + public function setUid($uid): void + { + $this->uid = $uid; + } + + public function getQueueCreatedAt() + { + return $this->queue_created_at; + } + + public function setQueueCreatedAt($queue_created_at): void + { + $this->queue_created_at = $queue_created_at; + } + + + + + + + + +} + diff --git a/app/Jobs/Api/AddPostQueue.php b/app/Jobs/Api/AddPostQueue.php index 8a7d132..abf5c9a 100644 --- a/app/Jobs/Api/AddPostQueue.php +++ b/app/Jobs/Api/AddPostQueue.php @@ -2,6 +2,7 @@ namespace App\Jobs\Api; +use App\Bean\Queue\Api\QueueAddPostBean; use App\Exceptions\ModelException; use App\Models\Api\Post\PostPushBoxModel; use Illuminate\Bus\Queueable; @@ -28,7 +29,17 @@ class AddPostQueue implements ShouldQueue */ public function handle(array $params): void { + $bean = new QueueAddPostBean($params); $oPostPushBoxModel = new PostPushBoxModel(); - $oPostPushBoxModel->addPostQueueConsumer($params); + $oPostPushBoxModel->addPostQueueConsumer($bean); + } + + public static function putToQueue(QueueAddPostBean $bean,$delaySec = null): \Illuminate\Foundation\Bus\PendingDispatch + { + $queue = self::dispatch($bean->toArrayNotNull())->onQueue(QueueAddPostBean::QUEUE_NAME); + if(!empty($delaySec)){ + $queue->delay(now()->addSeconds($delaySec)); + } + return $queue; } } diff --git a/app/Jobs/Api/UserActiveStatusQueue.php b/app/Jobs/Api/UserActiveStatusQueue.php index 835c10d..7beeb31 100644 --- a/app/Jobs/Api/UserActiveStatusQueue.php +++ b/app/Jobs/Api/UserActiveStatusQueue.php @@ -2,6 +2,7 @@ namespace App\Jobs\Api; +use App\Bean\Queue\Api\QueueUserActiveStatusBean; use App\Models\Api\Customer\CustomerUserExtendModel; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -26,7 +27,17 @@ class UserActiveStatusQueue implements ShouldQueue */ public function handle(array $params): void { + $bean = new QueueUserActiveStatusBean($params); $oCustomerUserExtendModel = new CustomerUserExtendModel(); - $oCustomerUserExtendModel->activeUserStatusQueueConsumer($params); + $oCustomerUserExtendModel->activeUserStatusQueueConsumer($bean); + } + + public static function putToQueue(QueueUserActiveStatusBean $bean,$delaySec = null): \Illuminate\Foundation\Bus\PendingDispatch + { + $queue = self::dispatch($bean->toArrayNotNull())->onQueue(QueueUserActiveStatusBean::QUEUE_NAME); + if(!empty($delaySec)){ + $queue->delay(now()->addSeconds($delaySec)); + } + return $queue; } } diff --git a/app/Models/Api/Customer/CustomerUserExtendModel.php b/app/Models/Api/Customer/CustomerUserExtendModel.php index 63c5548..d9eab0a 100644 --- a/app/Models/Api/Customer/CustomerUserExtendModel.php +++ b/app/Models/Api/Customer/CustomerUserExtendModel.php @@ -2,12 +2,12 @@ namespace App\Models\Api\Customer; +use App\Bean\Queue\Api\QueueUserActiveStatusBean; use App\Exceptions\ModelException; use App\Jobs\Api\UserActiveStatusQueue; use App\Models\Api\Base\ApiBaseModel; use App\Models\Api\Post\PostPushBoxModel; use App\Models\Api\WebSocket\CustomerWsHistoryModel; -use App\Structs\QueueUserActiveStatusStruct; use Carbon\Carbon; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; @@ -114,7 +114,11 @@ class CustomerUserExtendModel extends ApiBaseModel if ($res) { //记录日志 $oCustomerChangeInfoLogModel->addUserActiveStatusLog($oUserExtend->uid, $oUserExtend->is_active, self::IS_ACTIVE_YES, CustomerChangeInfoLogModel::REMARK_DAILY_CHECK_USER_ACTIVE_STATUS_YES); - $this->activeUserStatusToQueueProducer($oUserExtend->uid); //投递到消息队列 + //投递到消息队列 + $oQueueUserActiveStatusBean = new QueueUserActiveStatusBean(); + $oQueueUserActiveStatusBean->setUid($oUserExtend->uid); + $oQueueUserActiveStatusBean->setQueueCreatedAt(date('Y-m-d H:i:s')); + UserActiveStatusQueue::putToQueue($oQueueUserActiveStatusBean); } } else { //三日内不活跃 if ($oUserExtend->is_active == self::IS_ACTIVE_NO) continue; //已经是不活跃用户 @@ -150,7 +154,11 @@ class CustomerUserExtendModel extends ApiBaseModel if ($res) { //记录日志 $oCustomerChangeInfoLogModel->addUserActiveStatusLog($uid, $oCustomerUserExtendModel->is_active, self::IS_ACTIVE_YES, CustomerChangeInfoLogModel::REMARK_DAILY_CHECK_USER_ACTIVE_STATUS_YES); - $this->activeUserStatusToQueueProducer($uid); //投递到消息队列 + //投递到消息队列 + $oQueueUserActiveStatusBean = new QueueUserActiveStatusBean(); + $oQueueUserActiveStatusBean->setUid($uid); + $oQueueUserActiveStatusBean->setQueueCreatedAt(date('Y-m-d H:i:s')); + UserActiveStatusQueue::putToQueue($oQueueUserActiveStatusBean); } Db::commit(); }catch (\Exception $e){ @@ -160,18 +168,10 @@ class CustomerUserExtendModel extends ApiBaseModel } - //投递到消息队列,处理活跃推送信箱更新问题 - function activeUserStatusToQueueProducer($uid): void - { - $params = QueueUserActiveStatusStruct::PARAMS; - $params['uid'] = $uid; - $params['queueCreatedAt'] = date('Y-m-d H:i:s'); - UserActiveStatusQueue::dispatch($params)->onQueue(QueueUserActiveStatusStruct::QUEUE_NAME); - } - function activeUserStatusQueueConsumer($params): void + function activeUserStatusQueueConsumer(QueueUserActiveStatusBean $bean): void { - $uid = $params['uid']; + $uid = $bean->getUid(); $oPostPushBoxModel = new PostPushBoxModel(); $oPostPushBoxModel->pullBigFanMasterPostConsumer($uid); } diff --git a/app/Models/Api/Post/PostModel.php b/app/Models/Api/Post/PostModel.php index 231e470..7e947b8 100644 --- a/app/Models/Api/Post/PostModel.php +++ b/app/Models/Api/Post/PostModel.php @@ -2,7 +2,9 @@ namespace App\Models\Api\Post; +use App\Bean\Queue\Api\QueueAddPostBean; use App\Exceptions\ModelException; +use App\Jobs\Api\AddPostQueue; use App\Models\Api\Base\ApiBaseModel; use App\Models\Api\Post\Structs\PostParamsStruct; use App\Tools\Tools; @@ -82,7 +84,11 @@ class PostModel extends ApiBaseModel $aItem['created_at'] = $sDateTime; $res = $this->addItem($aItem); if ($res) { - $this->pushToQueue(self::TYPE_POST, $res->id); + //发送到消息队列处理新增post + $oQueueAddPostBean = new QueueAddPostBean(); + $oQueueAddPostBean->setId($res->id); + $oQueueAddPostBean->setType(self::TYPE_POST); + AddPostQueue::putToQueue(new QueueAddPostBean(['id' => $res->id, 'type' => $type])); } return $res; } @@ -99,12 +105,6 @@ class PostModel extends ApiBaseModel } } - //发送到消息队列处理新增post - function pushToQueue($type, $id): void - { - PostPushBoxModel::addPostQueueProducer(['type' => $type, 'id' => $id]); - } - /** * @throws ModelException */ diff --git a/app/Models/Api/Post/PostPushBoxModel.php b/app/Models/Api/Post/PostPushBoxModel.php index d7391a9..aae49aa 100644 --- a/app/Models/Api/Post/PostPushBoxModel.php +++ b/app/Models/Api/Post/PostPushBoxModel.php @@ -2,6 +2,7 @@ namespace App\Models\Api\Post; +use App\Bean\Queue\Api\QueueAddPostBean; use App\Exceptions\ModelException; use App\Jobs\Api\AddPostQueue; use App\Models\Api\Base\ApiBaseModel; @@ -9,7 +10,6 @@ use App\Models\Api\Comment\PostCommentModel; use App\Models\Api\Customer\CustomerUserExtendModel; use App\Models\Api\Follow\FollowModel; use App\Models\Api\Post\Structs\PostParamsStruct; -use App\Structs\QueueAddPostStruct; use App\Tools\CollectOffsetLimit; use App\Tools\Tools; use Illuminate\Database\Eloquent\Casts\Attribute; @@ -82,22 +82,16 @@ class PostPushBoxModel extends ApiBaseModel ); } - public static function addPostQueueProducer(array $params): void - { - AddPostQueue::dispatch($params)->onQueue(QueueAddPostStruct::QUEUE_NAME); - } - /** * 提交后调用事件,在消费队列跑推送 * @throws ModelException */ - function addPostQueueConsumer(array $params) + function addPostQueueConsumer(QueueAddPostBean $bean) { - if (empty($params)) return false; - if (isset($params['id'])) return false; - if (isset($params['type'])) return false; - $id = $params['id']; - $type = $params['type']; + $id = $bean->getId(); + $type = $bean->getType(); + if (empty($id)) return false; + if (empty($type)) return false; if (!in_array($type, [self::TYPE_POST, self::TYPE_REPOST, self::TYPE_COMMENT])) return false; if (empty($id)) return false; diff --git a/app/Structs/QueueAddPostStruct.php b/app/Structs/QueueAddPostStruct.php deleted file mode 100644 index 6fa9aa2..0000000 --- a/app/Structs/QueueAddPostStruct.php +++ /dev/null @@ -1,12 +0,0 @@ -'', - 'id'=>'', - ]; - -} diff --git a/app/Structs/QueueUserActiveStatusStruct.php b/app/Structs/QueueUserActiveStatusStruct.php deleted file mode 100644 index 00da62d..0000000 --- a/app/Structs/QueueUserActiveStatusStruct.php +++ /dev/null @@ -1,12 +0,0 @@ -'', - 'queueCreatedAt'=>'', - ]; - -} diff --git a/app/Structs/QueueWalletAddrTransactionChangeStruct.php b/app/Structs/QueueWalletAddrTransactionChangeStruct.php deleted file mode 100644 index 5b3a0ae..0000000 --- a/app/Structs/QueueWalletAddrTransactionChangeStruct.php +++ /dev/null @@ -1,12 +0,0 @@ -'', - 'wallet_addr_transaction_type'=>'', - ]; - -} diff --git a/app/Structs/QueueWalletPlatformUserWithdrawStruct.php b/app/Structs/QueueWalletPlatformUserWithdrawStruct.php deleted file mode 100644 index 504cf62..0000000 --- a/app/Structs/QueueWalletPlatformUserWithdrawStruct.php +++ /dev/null @@ -1,11 +0,0 @@ -'', - ]; - -}