From a811e366352482fa71391de4cd481b8ad3fba64f Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Sat, 6 Dec 2025 13:41:37 +0800 Subject: [PATCH] =?UTF-8?q?chore(addon/aikefu):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/addon/aikefu/event/KefuChat.php | 47 ++++ .../{Kefu.php => KefuCreateConversation.php} | 223 ++++++++---------- src/addon/aikefu/event/KefuGetHistory.php | 47 ++++ 3 files changed, 188 insertions(+), 129 deletions(-) create mode 100644 src/addon/aikefu/event/KefuChat.php rename src/addon/aikefu/event/{Kefu.php => KefuCreateConversation.php} (67%) create mode 100644 src/addon/aikefu/event/KefuGetHistory.php diff --git a/src/addon/aikefu/event/KefuChat.php b/src/addon/aikefu/event/KefuChat.php new file mode 100644 index 000000000..d023b3ad6 --- /dev/null +++ b/src/addon/aikefu/event/KefuChat.php @@ -0,0 +1,47 @@ +site_id = $data['site_id'] ?? 0; + $kefu_api->member_id = $data['member_id'] ?? 0; + $kefu_api->token = $data['token'] ?? ''; + $kefu_api->params = [ + 'message' => $data['message'] ?? '', + 'user_id' => $data['user_id'] ?? '', + 'conversation_id' => $data['conversation_id'] ?? '', + 'stream' => $data['stream'] ?? false, + ]; + + // 调用addon的chat方法 + $response = $kefu_api->chat(); + + // 返回响应数据 + return json_decode($response->getContent(), true); + } catch (\Exception $e) { + return [ + 'code' => -1, + 'message' => '聊天失败:' . $e->getMessage(), + 'data' => [] + ]; + } + } +} diff --git a/src/addon/aikefu/event/Kefu.php b/src/addon/aikefu/event/KefuCreateConversation.php similarity index 67% rename from src/addon/aikefu/event/Kefu.php rename to src/addon/aikefu/event/KefuCreateConversation.php index 169293ec7..11e3379de 100644 --- a/src/addon/aikefu/event/Kefu.php +++ b/src/addon/aikefu/event/KefuCreateConversation.php @@ -1,129 +1,94 @@ -site_id = $data['site_id'] ?? 0; - $kefu_api->member_id = $data['member_id'] ?? 0; - $kefu_api->token = $data['token'] ?? ''; - $kefu_api->params = [ - 'message' => $data['message'] ?? '', - 'user_id' => $data['user_id'] ?? '', - 'conversation_id' => $data['conversation_id'] ?? '', - 'stream' => $data['stream'] ?? false, - ]; - - // 调用addon的chat方法 - $response = $kefu_api->chat(); - - // 返回响应数据 - return json_decode($response->getContent(), true); - } catch (\Exception $e) { - return [ - 'code' => -1, - 'message' => '聊天失败:' . $e->getMessage(), - 'data' => [] - ]; - } - } - - /** - * 处理智能客服创建会话事件 - * @param array $data 事件数据 - * @return array - */ - public function handleKefuCreateConversation($data) - { - try { - // 创建addon的KefuApi实例 - $kefu_api = new KefuApi(); - - // 设置必要的属性 - $kefu_api->site_id = $data['site_id'] ?? 0; - $kefu_api->member_id = $data['member_id'] ?? 0; - $kefu_api->token = $data['token'] ?? ''; - $kefu_api->params = [ - 'user_id' => $data['user_id'] ?? '', - ]; - - // 调用addon的createConversation方法 - $response = $kefu_api->createConversation(); - - // 返回响应数据 - return json_decode($response->getContent(), true); - } catch (\Exception $e) { - return [ - 'code' => -1, - 'message' => '创建会话失败:' . $e->getMessage(), - 'data' => [] - ]; - } - } - - /** - * 处理智能客服获取历史消息事件 - * @param array $data 事件数据 - * @return array - */ - public function handleKefuGetHistory($data) - { - try { - // 创建addon的KefuApi实例 - $kefu_api = new KefuApi(); - - // 设置必要的属性 - $kefu_api->site_id = $data['site_id'] ?? 0; - $kefu_api->member_id = $data['member_id'] ?? 0; - $kefu_api->token = $data['token'] ?? ''; - $kefu_api->params = [ - 'conversation_id' => $data['conversation_id'] ?? '', - 'user_id' => $data['user_id'] ?? '', - 'limit' => $data['limit'] ?? 20, - 'offset' => $data['offset'] ?? 0, - ]; - - // 调用addon的getHistory方法 - $response = $kefu_api->getHistory(); - - // 返回响应数据 - return json_decode($response->getContent(), true); - } catch (\Exception $e) { - return [ - 'code' => -1, - 'message' => '获取历史消息失败:' . $e->getMessage(), - 'data' => [] - ]; - } - } - - /** - * 事件监听映射 - * @return array - */ - public function subscribe() - { - return [ - 'KefuChat' => 'handleKefuChat', - 'KefuCreateConversation' => 'handleKefuCreateConversation', - 'KefuGetHistory' => 'handleKefuGetHistory', - ]; - } -} +site_id = $data['site_id'] ?? 0; + $kefu_api->member_id = $data['member_id'] ?? 0; + $kefu_api->token = $data['token'] ?? ''; + $kefu_api->params = [ + 'user_id' => $data['user_id'] ?? '', + ]; + + // 调用addon的createConversation方法 + $response = $kefu_api->createConversation(); + + // 返回响应数据 + return json_decode($response->getContent(), true); + } catch (\Exception $e) { + return [ + 'code' => -1, + 'message' => '创建会话失败:' . $e->getMessage(), + 'data' => [] + ]; + } + } + + /** + * 处理智能客服获取历史消息事件 + * @param array $data 事件数据 + * @return array + */ + public function handleKefuGetHistory($data) + { + try { + // 创建addon的KefuApi实例 + $kefu_api = new KefuApi(); + + // 设置必要的属性 + $kefu_api->site_id = $data['site_id'] ?? 0; + $kefu_api->member_id = $data['member_id'] ?? 0; + $kefu_api->token = $data['token'] ?? ''; + $kefu_api->params = [ + 'conversation_id' => $data['conversation_id'] ?? '', + 'user_id' => $data['user_id'] ?? '', + 'limit' => $data['limit'] ?? 20, + 'offset' => $data['offset'] ?? 0, + ]; + + // 调用addon的getHistory方法 + $response = $kefu_api->getHistory(); + + // 返回响应数据 + return json_decode($response->getContent(), true); + } catch (\Exception $e) { + return [ + 'code' => -1, + 'message' => '获取历史消息失败:' . $e->getMessage(), + 'data' => [] + ]; + } + } + + /** + * 事件监听映射 + * @return array + */ + public function subscribe() + { + return [ + 'KefuChat' => 'handleKefuChat', + 'KefuCreateConversation' => 'handleKefuCreateConversation', + 'KefuGetHistory' => 'handleKefuGetHistory', + ]; + } +} diff --git a/src/addon/aikefu/event/KefuGetHistory.php b/src/addon/aikefu/event/KefuGetHistory.php new file mode 100644 index 000000000..aa86ef043 --- /dev/null +++ b/src/addon/aikefu/event/KefuGetHistory.php @@ -0,0 +1,47 @@ +site_id = $data['site_id'] ?? 0; + $kefu_api->member_id = $data['member_id'] ?? 0; + $kefu_api->token = $data['token'] ?? ''; + $kefu_api->params = [ + 'conversation_id' => $data['conversation_id'] ?? '', + 'user_id' => $data['user_id'] ?? '', + 'limit' => $data['limit'] ?? 20, + 'offset' => $data['offset'] ?? 0, + ]; + + // 调用addon的getHistory方法 + $response = $kefu_api->getHistory(); + + // 返回响应数据 + return json_decode($response->getContent(), true); + } catch (\Exception $e) { + return [ + 'code' => -1, + 'message' => '获取历史消息失败:' . $e->getMessage(), + 'data' => [] + ]; + } + } +}