From a209dc808097b43d1b2cd54c6289cfaab26282ea Mon Sep 17 00:00:00 2001 From: ZF sun <34314687@qq.com> Date: Sat, 6 Dec 2025 14:06:12 +0800 Subject: [PATCH] =?UTF-8?q?chore(addon/aikefu):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=99=A8=E5=8F=8A=E6=9B=B4=E6=96=B0=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/addon/aikefu/api/controller/Kefu.php | 23 ++++++++++++++++--- src/addon/aikefu/event/KefuChat.php | 12 ++-------- .../aikefu/event/KefuCreateConversation.php | 21 ++++------------- src/addon/aikefu/event/KefuGetHistory.php | 12 ++-------- 4 files changed, 28 insertions(+), 40 deletions(-) diff --git a/src/addon/aikefu/api/controller/Kefu.php b/src/addon/aikefu/api/controller/Kefu.php index 9a8b7cae0..040ba8a14 100644 --- a/src/addon/aikefu/api/controller/Kefu.php +++ b/src/addon/aikefu/api/controller/Kefu.php @@ -10,6 +10,23 @@ use extend\api\HttpClient; class Kefu extends BaseApi { + /** + * 为事件调用初始化属性 + * @param array $data 事件数据 + */ + public function initializeForEvent($data) + { + $this->site_id = $data['site_id'] ?? 0; + $this->member_id = $data['member_id'] ?? 0; + $this->token = $data['token'] ?? ''; + $this->params = [ + 'message' => $data['message'] ?? '', + 'user_id' => $data['user_id'] ?? '', + 'conversation_id' => $data['conversation_id'] ?? '', + 'stream' => $data['stream'] ?? false, + ]; + } + /** * 智能客服聊天接口 * @return \think\response\Json @@ -31,7 +48,7 @@ class Kefu extends BaseApi // 获取智能客服配置 $kefu_config_model = new KefuConfigModel(); $config_info = $kefu_config_model->getConfig($this->site_id); - + if (empty($config_info['data']['value']) || $config_info['data']['value']['status'] != 1) { return $this->response($this->error('智能客服暂未启用')); } @@ -74,7 +91,7 @@ class Kefu extends BaseApi // 保存消息记录 $kefu_message_model = new KefuMessageModel(); $kefu_conversation_model = new KefuConversationModel(); - + // 保存用户消息 $kefu_message_model->addMessage([ 'site_id' => $this->site_id, @@ -182,7 +199,7 @@ class Kefu extends BaseApi // 获取智能客服配置 $kefu_config_model = new KefuConfigModel(); $config_info = $kefu_config_model->getConfig($this->site_id); - + if (empty($config_info['data']['value']) || $config_info['data']['value']['status'] != 1) { return $this->response($this->error('智能客服暂未启用')); } diff --git a/src/addon/aikefu/event/KefuChat.php b/src/addon/aikefu/event/KefuChat.php index d023b3ad6..bdc898d44 100644 --- a/src/addon/aikefu/event/KefuChat.php +++ b/src/addon/aikefu/event/KefuChat.php @@ -20,16 +20,8 @@ class KefuChat // 创建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 = [ - 'message' => $data['message'] ?? '', - 'user_id' => $data['user_id'] ?? '', - 'conversation_id' => $data['conversation_id'] ?? '', - 'stream' => $data['stream'] ?? false, - ]; + // 调用初始化方法设置属性 + $kefu_api->initializeForEvent($data); // 调用addon的chat方法 $response = $kefu_api->chat(); diff --git a/src/addon/aikefu/event/KefuCreateConversation.php b/src/addon/aikefu/event/KefuCreateConversation.php index 11e3379de..0cd4b6a47 100644 --- a/src/addon/aikefu/event/KefuCreateConversation.php +++ b/src/addon/aikefu/event/KefuCreateConversation.php @@ -21,13 +21,8 @@ class KefuCreateConversation // 创建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'] ?? '', - ]; + // 调用初始化方法设置属性 + $kefu_api->initializeForEvent($data); // 调用addon的createConversation方法 $response = $kefu_api->createConversation(); @@ -54,16 +49,8 @@ class KefuCreateConversation // 创建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, - ]; + // 调用初始化方法设置属性 + $kefu_api->initializeForEvent($data); // 调用addon的getHistory方法 $response = $kefu_api->getHistory(); diff --git a/src/addon/aikefu/event/KefuGetHistory.php b/src/addon/aikefu/event/KefuGetHistory.php index aa86ef043..0b0de5df4 100644 --- a/src/addon/aikefu/event/KefuGetHistory.php +++ b/src/addon/aikefu/event/KefuGetHistory.php @@ -20,16 +20,8 @@ class KefuGetHistory // 创建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, - ]; + // 调用初始化方法设置属性 + $kefu_api->initializeForEvent($data); // 调用addon的getHistory方法 $response = $kefu_api->getHistory();