| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace App\Jobs;
- use App\Model\Mongo\MessageModel;
- use App\Model\UserModel;
- use Carbon\Carbon;
- use Hyperf\AsyncQueue\Job;
- class SaveUserChatRecordJob extends Job
- {
- public $params;
- public function __construct($params)
- {
- // 这里最好是普通数据,不要使用携带 IO 的对象,比如 PDO 对象
- $this->params = $params;
- }
- public function handle()
- {
- try {
- $userModel = new UserModel();
- $fromUserInfo = $userModel->where('code', $this->params['from_uid'])->first(['nick', 'avatar']);
- $receiveUserInfo = $userModel->where('code', $this->params['receive_uid'])->first(['nick', 'avatar']);
- $date = date('Y-m-d H:i:s');
- $chatData = [
- 'subject' => '用户聊天',
- 'struct_type' => $this->params['msg_type'],
- 'receive_uid' => $this->params['receive_uid'],
- 'receive_nick' => $receiveUserInfo->nick,
- 'receive_avatar' => $receiveUserInfo->avatar,
- 'receive_type' => 'user',
- 'from_uid' => $this->params['from_uid'],
- 'from_nick' => $fromUserInfo->nick,
- 'from_avatar' => $fromUserInfo->avatar,
- 'from_type' => 'user',
- 'created_at' => toMongoIsoDate(Carbon::parse($date)),
- 'updated_at' => toMongoIsoDate(Carbon::parse($date)),
- 'read_at' => $this->params['read_at'],
- 'content' => json_encode(['message' => $this->params['message']], JSON_UNESCAPED_UNICODE),
- ];
- make(MessageModel::class)->db()->insertOne($chatData);
- } catch (\Exception $exception) {
- logger('SaveChatRecordJob', [$exception->getMessage(), json_encode($this->params, JSON_UNESCAPED_UNICODE)]);
- }
- }
- }
|