params = $params; } public function handle() { try { if ($this->params['is_admin'] == 1) { $receiveUser = UserModel::query()->where('code', $this->params['receive_uid'])->first(['nick as title']); $fromUser = ShopsModel::query()->where('uid', $this->params['from_uid'])->first(['title as nick']); } else { $receiveUser = ShopsModel::query()->where('uid', $this->params['receive_uid'])->first(['title']); $fromUser = UserModel::query()->where('code', $this->params['from_uid'])->first(['nick']); } $date = date('Y-m-d H:i:s'); $data = [ 'subject' => '购买商品聊天信息', 'struct_type' => $this->params['struct_type'], 'receive_uid' => $this->params['receive_uid'], 'shops_name' => $receiveUser->title, 'receive_type' => 'shops', //接收对象类型,user=单个用户;all_user=所有用户 'from_uid' => $this->params['from_uid'], 'from_nick' => $fromUser->nick, 'from_type' => 'shops', 'created_at' => toMongoIsoDate(Carbon::parse($date)), 'updated_at' => toMongoIsoDate(Carbon::parse($date)), 'read_at' => $this->params['read_at'], 'is_admin' => $this->params['is_admin'] ]; $content['message'] = $this->params['message']; $data['content'] = json_encode($content, JSON_UNESCAPED_UNICODE); $res = make(MessageModel::class)->db()->insertOne($data); if ($this->params['is_admin'] == 2) { $sendData = [ 'routes' => 'api/tg/send/chat/message', 'content' => [ 'dispatcher' => ($fromUser->nick ?? '') . '(' . $this->params['from_uid'] .')', 'recipient' => ($receiveUser->title ?? '') . '(' . $this->params['receive_uid'] .')', 'content' => $data['content'], ] ]; make(QueueService::class)->publicSendTgMegJob($sendData); } if (!$res) { logger('聊天日志存储失败', [json_encode($data, JSON_UNESCAPED_UNICODE)]); } } catch (\Exception $exception) { logger('SaveChatRecordJob', [$exception->getMessage(), json_encode($this->params, JSON_UNESCAPED_UNICODE)]); } } }