chore(addon/aikefu): 调整事件名称

This commit is contained in:
2025-12-06 13:41:37 +08:00
parent d8a0dd5d31
commit a811e36635
3 changed files with 188 additions and 129 deletions

View File

@@ -0,0 +1,47 @@
<?php
namespace addon\aikefu\event;
use addon\aikefu\api\controller\Kefu as KefuApi;
/**
* 客服聊天
*/
class KefuChat
{
/**
* 处理智能客服聊天事件
* @param array $data 事件数据
* @return array
*/
public function handle($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 = [
'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' => []
];
}
}
}

View File

@@ -1,129 +1,94 @@
<?php <?php
namespace addon\aikefu\event; namespace addon\aikefu\event;
use addon\aikefu\api\controller\Kefu as KefuApi; use addon\aikefu\api\controller\Kefu as KefuApi;
/** /**
* 智能客服事件处理类 * 处理智能客服创建会话事件
*/ */
class Kefu class KefuCreateConversation
{ {
/**
* 处理智能客服聊天事件 /**
* @param array $data 事件数据 * 处理智能客服创建会话事件
* @return array * @param array $data 事件数据
*/ * @return array
public function handleKefuChat($data) */
{ public function handle($data)
try { {
// 创建addon的KefuApi实例 try {
$kefu_api = new KefuApi(); // 创建addon的KefuApi实例
$kefu_api = new KefuApi();
// 设置必要的属性
$kefu_api->site_id = $data['site_id'] ?? 0; // 设置必要的属性
$kefu_api->member_id = $data['member_id'] ?? 0; $kefu_api->site_id = $data['site_id'] ?? 0;
$kefu_api->token = $data['token'] ?? ''; $kefu_api->member_id = $data['member_id'] ?? 0;
$kefu_api->params = [ $kefu_api->token = $data['token'] ?? '';
'message' => $data['message'] ?? '', $kefu_api->params = [
'user_id' => $data['user_id'] ?? '', 'user_id' => $data['user_id'] ?? '',
'conversation_id' => $data['conversation_id'] ?? '', ];
'stream' => $data['stream'] ?? false,
]; // 调用addon的createConversation方法
$response = $kefu_api->createConversation();
// 调用addon的chat方法
$response = $kefu_api->chat(); // 返回响应数据
return json_decode($response->getContent(), true);
// 返回响应数据 } catch (\Exception $e) {
return json_decode($response->getContent(), true); return [
} catch (\Exception $e) { 'code' => -1,
return [ 'message' => '创建会话失败:' . $e->getMessage(),
'code' => -1, 'data' => []
'message' => '聊天失败:' . $e->getMessage(), ];
'data' => [] }
]; }
}
} /**
* 处理智能客服获取历史消息事件
/** * @param array $data 事件数据
* 处理智能客服创建会话事件 * @return array
* @param array $data 事件数据 */
* @return array public function handleKefuGetHistory($data)
*/ {
public function handleKefuCreateConversation($data) try {
{ // 创建addon的KefuApi实例
try { $kefu_api = new KefuApi();
// 创建addon的KefuApi实例
$kefu_api = new KefuApi(); // 设置必要的属性
$kefu_api->site_id = $data['site_id'] ?? 0;
// 设置必要的属性 $kefu_api->member_id = $data['member_id'] ?? 0;
$kefu_api->site_id = $data['site_id'] ?? 0; $kefu_api->token = $data['token'] ?? '';
$kefu_api->member_id = $data['member_id'] ?? 0; $kefu_api->params = [
$kefu_api->token = $data['token'] ?? ''; 'conversation_id' => $data['conversation_id'] ?? '',
$kefu_api->params = [ 'user_id' => $data['user_id'] ?? '',
'user_id' => $data['user_id'] ?? '', 'limit' => $data['limit'] ?? 20,
]; 'offset' => $data['offset'] ?? 0,
];
// 调用addon的createConversation方法
$response = $kefu_api->createConversation(); // 调用addon的getHistory方法
$response = $kefu_api->getHistory();
// 返回响应数据
return json_decode($response->getContent(), true); // 返回响应数据
} catch (\Exception $e) { return json_decode($response->getContent(), true);
return [ } catch (\Exception $e) {
'code' => -1, return [
'message' => '创建会话失败:' . $e->getMessage(), 'code' => -1,
'data' => [] 'message' => '获取历史消息失败:' . $e->getMessage(),
]; 'data' => []
} ];
} }
}
/**
* 处理智能客服获取历史消息事件 /**
* @param array $data 事件数据 * 事件监听映射
* @return array * @return array
*/ */
public function handleKefuGetHistory($data) public function subscribe()
{ {
try { return [
// 创建addon的KefuApi实例 'KefuChat' => 'handleKefuChat',
$kefu_api = new KefuApi(); 'KefuCreateConversation' => 'handleKefuCreateConversation',
'KefuGetHistory' => 'handleKefuGetHistory',
// 设置必要的属性 ];
$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',
];
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace addon\aikefu\event;
use addon\aikefu\api\controller\Kefu as KefuApi;
/**
* 处理智能客服获取历史消息事件
*/
class KefuGetHistory
{
/**
* 处理智能客服获取历史消息事件
* @param array $data 事件数据
* @return array
*/
public function handle($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' => []
];
}
}
}