From 3bc4b07eda1e2c1186b9bb27000bd05257cafdd7 Mon Sep 17 00:00:00 2001 From: meimei <102865034@qq.com> Date: Tue, 22 Apr 2025 11:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Eai=E8=81=8A=E5=A4=A9=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/application/api/logic/PyappLofic.php | 15 ++++-- .../api/logic/UpdateMessageWechatLogic.php | 49 +++++++++++++++++++ .../index/controller/Tasktimer.php | 13 ++++- .../api/logic/TokenWechatLogic.php | 10 +++- .../api/logic/UpdateMessageWechatLogic.php | 49 +++++++++++++++++++ 5 files changed, 130 insertions(+), 6 deletions(-) create mode 100644 admin/application/api/logic/UpdateMessageWechatLogic.php create mode 100644 superadmin/application/api/logic/UpdateMessageWechatLogic.php diff --git a/admin/application/api/logic/PyappLofic.php b/admin/application/api/logic/PyappLofic.php index 6e30d91..c94f587 100644 --- a/admin/application/api/logic/PyappLofic.php +++ b/admin/application/api/logic/PyappLofic.php @@ -26,10 +26,19 @@ class PyappLofic * author:wh * @throws \Exception */ - function setFollowupModel($chatroom_id,$return_record){ + function setFollowupModel($url,$chatroom_id,$return_record){ - $base_url = SundryConfig::val('py_app_base_url'); - $url = $base_url.'/vip_groups/follow-up'; + if (empty($url)){ + throw new \Exception('获取url失败'); + } + $base_url = parse_url($url); + if (!is_array($base_url) || !isset($base_url['scheme']) || !isset($base_url['host'])) { + throw new \Exception("URL解析失败: 输入的URL格式不正确 - {$url}"); + } + $url = $base_url['scheme'].'://'.$base_url['host'].'/vip_groups/follow-up'; + +// $base_url = SundryConfig::val('py_app_base_url'); +// $url = $base_url.'/vip_groups/follow-up'; $post_data = [ 'chatroom_id' => $chatroom_id, 'is_follow_up' => true, diff --git a/admin/application/api/logic/UpdateMessageWechatLogic.php b/admin/application/api/logic/UpdateMessageWechatLogic.php new file mode 100644 index 0000000..798b340 --- /dev/null +++ b/admin/application/api/logic/UpdateMessageWechatLogic.php @@ -0,0 +1,49 @@ +$content,//AI微信号消息 + 'session_id'=> $wxid//AI微信号私聊服务的客户微信号wxid或者群聊服务的微信群chatroom_i + ]; + + Tools::log_to_write_txt(['AI更新历史信息,开始:$url'=>$url,'$post_data'=>$data]); + $res = Curl::curl_post($url, $data); + Tools::log_to_write_txt(['AI更新历史信息,结束:$res'=>$res]); + if($res['code'] != 200){ + return Tools::set_fail('设置AI更新历史信息失败',$res); + } + $res_data = json_decode($res['data'], true); + return $res_data; + } + +} \ No newline at end of file diff --git a/admin/application/index/controller/Tasktimer.php b/admin/application/index/controller/Tasktimer.php index 28da8aa..e1bc7c4 100755 --- a/admin/application/index/controller/Tasktimer.php +++ b/admin/application/index/controller/Tasktimer.php @@ -12,6 +12,7 @@ namespace app\index\controller; use app\api\logic\MessageWechatLogic; use app\api\logic\PyappLofic; use app\api\logic\TokenWechatLogic; +use app\api\logic\UpdateMessageWechatLogic; use think\Controller; use think\Db; use wanghua\general_utility_tools_php\Mmodel; @@ -156,7 +157,11 @@ class Tasktimer extends Controller //设置AI客服回访模式 $py_logic = new PyappLofic(); - $py_logic->setFollowupModel($cust['rel_group'],$return_record); + $py_logic->setFollowupModel($base_url,$cust['rel_group'],$return_record); + + //设置AI客服更新信息 + $updateMessage_logic = new UpdateMessageWechatLogic(); + $updateMessage_logic->getUpdateWechatMessage($base_url,$return_record['visit_msg'],$cust['rel_group']); return Tools::set_ok('发送成功'); } @@ -222,6 +227,7 @@ class Tasktimer extends Controller //@的好友,多个英文逗号分隔。群主或管理员@全部的人,则填写'notify@all' 'ats'=>$customer_record['rel_wx'], ]; + $wxid = $customer_record['rel_group']; $type = 1; }else{ if(!empty($customer_record['rel_wx'])){ @@ -230,6 +236,7 @@ class Tasktimer extends Controller 'toWxid'=>$customer_record['rel_wx'],//是群则发送群消息,否则发个人私人消息 'content'=>$birthday_record['content'], ]; + $wxid = $customer_record['rel_wx']; $type = 2; }else{ return Tools::set_fail('客户未绑定微信和群'); @@ -247,6 +254,10 @@ class Tasktimer extends Controller } Tools::log_to_write_txt([$msg.'微信群客户,结束:$res'=>$res]); + //设置AI客服更新信息 + $updateMessage_logic = new UpdateMessageWechatLogic(); + $updateMessage_logic->getUpdateWechatMessage($base_url,$birthday_record['content'],$wxid); + return Tools::set_ok('发送成功'); } } \ No newline at end of file diff --git a/superadmin/application/api/logic/TokenWechatLogic.php b/superadmin/application/api/logic/TokenWechatLogic.php index 4ee3f61..addbcab 100644 --- a/superadmin/application/api/logic/TokenWechatLogic.php +++ b/superadmin/application/api/logic/TokenWechatLogic.php @@ -33,12 +33,18 @@ class TokenWechatLogic extends BaseWechatLogic // $url = 'https://wechat-api-test.excn.vip/vip_groups/auth_info'; $base_url = parse_url($url); + if (!is_array($base_url) || !isset($base_url['scheme']) || !isset($base_url['host'])) { + throw new \Exception("URL解析失败: 输入的URL格式不正确 - {$url}"); + } $url = $base_url['scheme'].'://'.$base_url['host'].'/vip_groups/auth_info'; $res = \wanghua\general_utility_tools_php\http\Curl::curl_post($url, []); - if(empty($res['data'])){ - throw new \Exception('获取token失败'); + if (empty($res['data'])) { + throw new \Exception("获取数据失败: 接口返回为空 - URL: {$url}"); } $res_data = json_decode($res['data'], true); + if (!is_array($res_data) || !isset($res_data['gewe-token']) || !isset($res_data['appId'])) { + throw new \Exception("JSON解析失败或缺少必要字段: 返回数据 - " . print_r($res_data, true)); + } return [ 'token' => $res_data['gewe-token'], 'appId' => $res_data['appId'], diff --git a/superadmin/application/api/logic/UpdateMessageWechatLogic.php b/superadmin/application/api/logic/UpdateMessageWechatLogic.php new file mode 100644 index 0000000..c9624f1 --- /dev/null +++ b/superadmin/application/api/logic/UpdateMessageWechatLogic.php @@ -0,0 +1,49 @@ +$content,//AI微信号消息 + 'session_id'=> $wxid//AI微信号私聊服务的客户微信号wxid或者群聊服务的微信群chatroom_i + ]; + + Tools::log_to_write_txt(['AI更新历史信息,开始:$url'=>$url,'$post_data'=>$data]); + $res = Curl::curl_post($url, $data); + Tools::log_to_write_txt(['AI更新历史信息,结束:$res'=>$res]); + if($res['code'] != 200){ + return Tools::set_fail('设置AI更新历史信息失败',$res); + } + $res_data = json_decode($res['data'], true); + return $res_data; + } + +} \ No newline at end of file