diff --git a/app/Service/Message/SubscribeHandleService.php b/app/Service/Message/SubscribeHandleService.php index 19736fa..ad5bf5b 100644 --- a/app/Service/Message/SubscribeHandleService.php +++ b/app/Service/Message/SubscribeHandleService.php @@ -48,7 +48,7 @@ class SubscribeHandleService } /** - * @param array $data + * @param array $data 数据 *
* [ * 'uuid' => '', @@ -61,7 +61,7 @@ class SubscribeHandleService public function handle(array $data) { if (!isset($data['uuid'], $data['event'], $data['data'], $data['options'])) { - return false; + return; } if (isset(self::EVENTS[$data['event']])) { @@ -120,7 +120,7 @@ class SubscribeHandleService if (!$result) return; $message = di()->get(FormatMessageService::class)->handleChatRecords([$result->toArray()])[0]; - $notify = [ + $push = [ 'sender_id' => $sender_id, 'receiver_id' => $receiver_id, 'talk_type' => $talk_type, @@ -130,7 +130,7 @@ class SubscribeHandleService ]) ]; - $this->socketPushNotify($fds, json_encode([TalkEventConstant::EVENT_TALK, $notify])); + $this->push($fds, json_encode([TalkEventConstant::EVENT_TALK, $push])); } /** @@ -142,7 +142,7 @@ class SubscribeHandleService { $fds = $this->clientService->findUserFds($data['data']['receiver_id']); - $this->socketPushNotify($fds, json_encode([TalkEventConstant::EVENT_KEYBOARD, $data['data']])); + $this->push($fds, json_encode([TalkEventConstant::EVENT_KEYBOARD, $data['data']])); } /** @@ -166,7 +166,7 @@ class SubscribeHandleService $fds = array_unique(array_merge(...$fds)); - $this->socketPushNotify($fds, json_encode([ + $this->push($fds, json_encode([ TalkEventConstant::EVENT_ONLINE_STATUS, [ 'user_id' => $user_id, 'status' => $status @@ -199,7 +199,7 @@ class SubscribeHandleService if (!$fds) return; - $this->socketPushNotify($fds, json_encode([TalkEventConstant::EVENT_REVOKE_TALK, [ + $this->push($fds, json_encode([TalkEventConstant::EVENT_REVOKE_TALK, [ 'talk_type' => $record->talk_type, 'sender_id' => $record->user_id, 'receiver_id' => $record->receiver_id, @@ -245,16 +245,16 @@ class SubscribeHandleService 'mobile' => $friendInfo->mobile, ]; - $this->socketPushNotify(array_unique($fds), json_encode([TalkEventConstant::EVENT_FRIEND_APPLY, $msg])); + $this->push(array_unique($fds), json_encode([TalkEventConstant::EVENT_FRIEND_APPLY, $msg])); } /** * WebSocket 消息推送 * - * @param $fds - * @param $message + * @param array $fds + * @param string $message */ - private function socketPushNotify($fds, $message) + private function push(array $fds, string $message): void { $server = server(); foreach ($fds as $fd) { diff --git a/app/Service/TalkMessageService.php b/app/Service/TalkMessageService.php index 0ce5644..f5b81e0 100644 --- a/app/Service/TalkMessageService.php +++ b/app/Service/TalkMessageService.php @@ -1,4 +1,5 @@ id; + $code['record_id'] = $insert->id; $code['created_at'] = date('Y-m-d H:i:s'); if (!TalkRecordsCode::create($code)) { throw new Exception('插入聊天记录(代码消息)失败...'); @@ -120,7 +121,7 @@ class TalkMessageService { Db::beginTransaction(); try { - $message['msg_type'] = TalkMessageType::FILE_MESSAGE; + $message['msg_type'] = TalkMessageType::FILE_MESSAGE; $message['created_at'] = date('Y-m-d H:i:s'); $message['updated_at'] = date('Y-m-d H:i:s'); @@ -129,8 +130,8 @@ class TalkMessageService throw new Exception('插入聊天记录失败...'); } - $file['record_id'] = $insert->id; - $file['file_type'] = MediaTypeConstant::getMediaType($file['file_suffix']); + $file['record_id'] = $insert->id; + $file['file_type'] = MediaTypeConstant::getMediaType($file['file_suffix']); $file['created_at'] = date('Y-m-d H:i:s'); if (!TalkRecordsFile::create($file)) { throw new Exception('插入聊天记录(代码消息)失败...'); @@ -170,21 +171,21 @@ class TalkMessageService Db::beginTransaction(); try { - $message['msg_type'] = TalkMessageType::VOTE_MESSAGE; + $message['msg_type'] = TalkMessageType::VOTE_MESSAGE; $message['created_at'] = date('Y-m-d H:i:s'); $message['updated_at'] = date('Y-m-d H:i:s'); - $insert = TalkRecords::create($message); + $insert = TalkRecords::create($message); $options = []; foreach ($vote['answer_option'] as $k => $option) { $options[chr(65 + $k)] = $option; } - $vote['record_id'] = $insert->id; + $vote['record_id'] = $insert->id; $vote['answer_option'] = $options; - $vote['answer_num'] = $answer_num; - $vote['created_at'] = date('Y-m-d H:i:s'); - $vote['updated_at'] = $vote['created_at']; + $vote['answer_num'] = $answer_num; + $vote['created_at'] = date('Y-m-d H:i:s'); + $vote['updated_at'] = $vote['created_at']; if (!TalkRecordsVote::create($vote)) { throw new Exception('插入聊天记录(投票消息)失败...'); @@ -298,17 +299,17 @@ class TalkMessageService Db::beginTransaction(); try { $message['receiver_id'] = RobotConstant::LOGIN_ROBOT; - $message['talk_type'] = TalkModeConstant::PRIVATE_CHAT; - $message['msg_type'] = TalkMessageType::USER_LOGIN_MESSAGE; - $message['created_at'] = date('Y-m-d H:i:s'); - $message['updated_at'] = date('Y-m-d H:i:s'); + $message['talk_type'] = TalkModeConstant::PRIVATE_CHAT; + $message['msg_type'] = TalkMessageType::USER_LOGIN_MESSAGE; + $message['created_at'] = date('Y-m-d H:i:s'); + $message['updated_at'] = date('Y-m-d H:i:s'); $insert = TalkRecords::create($message); if (!$insert) { throw new Exception('插入聊天记录失败...'); } - $loginParams['record_id'] = $insert->id; + $loginParams['record_id'] = $insert->id; $loginParams['created_at'] = date('Y-m-d H:i:s'); if (!TalkRecordsLogin::create($loginParams)) { diff --git a/app/Service/TalkService.php b/app/Service/TalkService.php index 758fe3d..2d503ca 100644 --- a/app/Service/TalkService.php +++ b/app/Service/TalkService.php @@ -1,4 +1,5 @@ leftJoin('users', 'users.id', '=', 'talk_records.user_id'); + $model = TalkRecords::select($fields); + $model->leftJoin('users', 'users.id', '=', 'talk_records.user_id'); if ($record_id) { - $rowsSqlObj->where('talk_records.id', '<', $record_id); + $model->where('talk_records.id', '<', $record_id); } if ($talk_type == TalkModeConstant::PRIVATE_CHAT) { - $rowsSqlObj->where(function ($query) use ($user_id, $receiver_id) { + $model->where(function ($query) use ($user_id, $receiver_id) { $query->where([ ['talk_records.user_id', '=', $user_id], ['talk_records.receiver_id', '=', $receiver_id] @@ -61,24 +61,24 @@ class TalkService extends BaseService ]); }); } else { - $rowsSqlObj->where('talk_records.receiver_id', $receiver_id); + $model->where('talk_records.receiver_id', $receiver_id); } - $rowsSqlObj->where('talk_records.talk_type', $talk_type); + $model->where('talk_records.talk_type', $talk_type); if ($msg_type) { - $rowsSqlObj->whereIn('talk_records.msg_type', $msg_type); + $model->whereIn('talk_records.msg_type', $msg_type); } // 过滤用户删除记录 - $rowsSqlObj->whereNotExists(function ($query) use ($user_id) { + $model->whereNotExists(function ($query) use ($user_id) { $prefix = config('databases.default.prefix'); $query->select(Db::raw(1))->from('talk_records_delete'); $query->whereRaw("{$prefix}talk_records_delete.record_id = {$prefix}talk_records.id and {$prefix}talk_records_delete.user_id = {$user_id}"); $query->limit(1); }); - $rows = $rowsSqlObj->orderBy('talk_records.id', 'desc')->limit($limit)->get()->toArray(); + $rows = $model->orderBy('talk_records.id', 'desc')->limit($limit)->get()->toArray(); if ($record_id === 0 && $talk_type == TalkModeConstant::PRIVATE_CHAT && empty($msg_type)) { if (!di()->get(UserFriendService::class)->isFriend($user_id, $receiver_id, true)) { @@ -244,9 +244,9 @@ class TalkService extends BaseService 'users.avatar as avatar', ]; - $rowsSqlObj = TalkRecords::select($fields)->leftJoin('users', 'users.id', '=', 'talk_records.user_id'); + $model = TalkRecords::select($fields)->leftJoin('users', 'users.id', '=', 'talk_records.user_id'); if ($talk_type == 1) { - $rowsSqlObj->where(function ($query) use ($user_id, $receiver_id) { + $model->where(function ($query) use ($user_id, $receiver_id) { $query->where([ ['talk_records.user_id', '=', $user_id], ['talk_records.receiver_id', '=', $receiver_id] @@ -256,25 +256,26 @@ class TalkService extends BaseService ]); }); } else { - $rowsSqlObj->where('talk_records.receiver_id', $receiver_id); + $model->where('talk_records.receiver_id', $receiver_id); } - $rowsSqlObj->where('talk_records.talk_type', $talk_type); + $model->where('talk_records.talk_type', $talk_type); - if (isset($params['keywords'])) { - $rowsSqlObj->where('talk_records.content', 'like', "%{$params['keywords']}%"); + if (isset($params['keywords']) && !empty($params['keywords'])) { + $model->where('talk_records.content', 'like', "%{$params['keywords']}%"); } if (isset($params['date'])) { - $rowsSqlObj->whereDate('talk_records.created_at', $params['date']); + $model->whereDate('talk_records.created_at', $params['date']); } - $count = $rowsSqlObj->count(); + $count = $model->count(); if ($count == 0) { return $this->getPagingRows([], 0, $page, $page_size); } - $rows = $rowsSqlObj->orderBy('talk_records.id', 'desc')->forPage($page, $page_size)->get()->toArray(); + $rows = $model->orderBy('talk_records.id', 'desc')->forPage($page, $page_size)->get()->toArray(); + $rows = di()->get(FormatMessageService::class)->handleChatRecords($rows); return $this->getPagingRows($rows, $count, $page, $page_size); diff --git a/app/Support/SendEmailCode.php b/app/Support/SendEmailCode.php index 1226e6b..b345268 100644 --- a/app/Support/SendEmailCode.php +++ b/app/Support/SendEmailCode.php @@ -50,7 +50,7 @@ class SendEmailCode * @param string $email 邮箱地址 * @return bool */ - public function send(string $type, string $title, string $email) + public function send(string $type, string $title, string $email): bool { $key = $this->getKey($type, $email); if (!$sms_code = $this->getCode($key)) {