diff --git a/admin/application/api/logic/MessageWechatLogic.php b/admin/application/api/logic/MessageWechatLogic.php index 9bd16e8..27c7f17 100644 --- a/admin/application/api/logic/MessageWechatLogic.php +++ b/admin/application/api/logic/MessageWechatLogic.php @@ -29,7 +29,7 @@ class MessageWechatLogic extends BaseWechatLogic 'toWxid'=>$data['toWxid'], 'content'=>$data['content'], //@的好友,多个英文逗号分隔。群主或管理员@全部的人,则填写'notify@all' - 'ats'=>$data['ats'], +// 'ats'=>$data['ats'], ]; $res = $this->curl_post_json($url, $post_data); return $res; diff --git a/admin/application/index/controller/Tasktimer.php b/admin/application/index/controller/Tasktimer.php index 59a27f9..a0c2aa3 100755 --- a/admin/application/index/controller/Tasktimer.php +++ b/admin/application/index/controller/Tasktimer.php @@ -32,6 +32,12 @@ class Tasktimer extends Controller Mmodel::catch(function (){ $this->returnPlan(); }); + //生日通知 + if (date("H:i:s") == "10:00:00"){ + Mmodel::catch(function (){ + $this->returnBirthdayPlan(); + }); + } } /** @@ -153,4 +159,78 @@ class Tasktimer extends Controller return Tools::set_ok('发送成功'); } + + /** + * @return string 生日祝福 + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\ModelNotFoundException + * @throws \think\exception\DbException + */ + function returnBirthdayPlan(){ + // 获取当前月和日 + $customer_record = Db::table('fa_firmcustomer') + ->where('birthday', date('m-d')) + ->select(); + + if(empty($customer_record)){ + Tools::log_to_write_txt(['无人生日,无需发送']); + return ''; + } + foreach ($customer_record as $value){ + //生日祝福模版 + $birthday_record = Db::table('fa_mattertemplatecategorization') + ->alias('m') + ->join('fa_mattertemplatecategorizedcontent','fa_mattertemplatecategorizedcontent.mattertemplatecategorization_id = m.id') + ->where('m.firm_id','in',[$value['firm_id'],0]) + ->where('m.mattertemplate_id',3) + ->order(['m.firm_id'=>'desc','m.id'=>'desc']) + ->field('fa_mattertemplatecategorizedcontent.content') + ->find(); + if(!empty($birthday_record)){ + Tools::log_to_write_txt(['客户生日祝福计划,开始:$item'=>$value]); + $ret = $this->postBirthdayText($value,$birthday_record); + Tools::log_to_write_txt(['客户生日祝福计划,结束:$res'=>$ret]); + } + Tools::log_to_write_txt(['无生日祝福,无需发送']); + return ''; + } + return ''; + } + private function postBirthdayText($customer_record,$birthday_record){ + + //查询客户所绑定的ai客服 + $ai_config = Db::table('fa_aicustomerservice') + ->where('id',$customer_record['aicustomerservice_ids']) + ->find(); + if(empty($ai_config)){ + return Tools::set_fail('有回访计划,无ai客服服务该客户'); + } + $base_url = $ai_config['server_url']; + if(empty($customer_record['rel_group'])){ + return Tools::set_fail('客户无绑定群'); + } + if(empty($customer_record['wx_nickname'])){ + return Tools::set_fail('客户无绑定微信昵称'); + } + if(empty($customer_record['rel_wx'])){ + return Tools::set_fail('客户无绑定微信'); + } + + $logic = new MessageWechatLogic(); + $logic->setBaseUrl($base_url); + + $tokenArr = (new TokenWechatLogic())->getToken(); + $data = [ + 'appId'=>$tokenArr['appId'], + 'toWxid'=>$customer_record['rel_group'],//是群则发送群消息,否则发个人私人消息 + 'content'=>"@".$customer_record['wx_nickname']." ".$birthday_record['content'], + //@的好友,多个英文逗号分隔。群主或管理员@全部的人,则填写'notify@all' + 'ats'=>$customer_record['rel_wx'], + ]; + Tools::log_to_write_txt(['回访微信群客户,开始:$post_data'=>$data]); + $res = $logic->postGroupText($data); + Tools::log_to_write_txt(['回访微信群客户,结束:$res'=>$res]); + + return Tools::set_ok('发送成功'); + } } \ No newline at end of file diff --git a/superadmin/application/admin/view/firmcustomer/add.html b/superadmin/application/admin/view/firmcustomer/add.html index b4f3ea7..5165008 100755 --- a/superadmin/application/admin/view/firmcustomer/add.html +++ b/superadmin/application/admin/view/firmcustomer/add.html @@ -16,7 +16,13 @@