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' => [] + ]; + } + } +}