Files
xinhu/webmain/model/reimplat/agentModel.php
2022-08-14 16:47:40 +08:00

114 lines
3.2 KiB
PHP

<?php
/**
* 应用管理方法
*/
class reimplat_agentClassModel extends reimplatModel
{
/**
* 获取所有应用
*/
public function listdata()
{
$url = $this->geturl('openagent','listdata');
$result = c('curl')->getcurl($url);
$barr = $this->recordchu($result);
if($barr['success']){
$list = $barr['data']['agentlist'];
$stra = array();
foreach($list as $k=>$rs)$stra[$rs['num']] = $rs['name'];
$this->option->setval('reimplat_agentlist@-7', json_encode($stra, JSON_UNESCAPED_UNICODE));
return returnsuccess($list);
}
return $barr;
}
/**
* 发应用消息
*/
public function sendtext($touid,$agentnum, $mess)
{
$touids = $this->gettouid($touid);
if(!$touids)return returnerror(''.$touid.'未关注');
$url = $this->geturl('openagent','sendmsg');
$data['agentnum'] = $agentnum;
$data['touser'] = $touids;
$data['msgtype'] = 'text';
$data['content'] = $mess;
$result = c('curl')->postcurl($url, json_encode($data));
$barr = $this->recordchu($result);
return $barr;
}
/**
* 发卡片消息
*/
public function sendtextcard($touid,$agentnum, $wxarr)
{
$touids = $this->gettouid($touid);
if(!$touids)return returnerror(''.$touid.'未关注');
$url = $this->geturl('openagent','sendmsg');
$data['agentnum'] = $agentnum;
$data['touser'] = $touids;
$data['msgtype'] = 'textcard';
$data['content'] = $wxarr;
$result = c('curl')->postcurl($url, json_encode($data));
$barr = $this->recordchu($result);
return $barr;
}
private function gettouid($touid)
{
if($touid=='@all' || $touid=='all')return '@all';
$uarrs = $this->db->getall("select a.`user`,a.`name` from `[Q]admin` a left join `[Q]zreim_user` b on a.`user`=b.`user` where a.`status`=1 and b.id is not null and b.`status`=1 and a.`id` in($touid)");
$uids = '';
foreach($uarrs as $k=>$rs)$uids.=','.$rs['user'].'';
if($uids)$uids = substr($uids, 1);
return $uids;
}
/**
* 发送消息
*/
public function sendxiao($touid, $agentname, $wxarr=array(),$iszs=false)
{
$liststr = $this->option->getval('reimplat_agentlist');
if(isempt($liststr))return returnerror('请先获取应用');
if(!$iszs && getconfig('asynsend')=='1'){
$cans['touid'] = $touid;
$cans['agentname'] = $agentname;
$cans['wxarr'] = $wxarr;
$barr = c('rockqueue')->push('cli,reimplatsend', array(
'body' => $this->rock->jm->base64encode(json_encode($cans))
));
if($barr['success'])return returnsuccess('anaysend');
}
$yarr = json_decode($liststr, true);
$num = $dnum = '';
foreach($yarr as $k=>$v){
if($dnum=='')$dnum = $k;
if($agentname==$v || $agentname==$k)$num = $k;
}
if($num==''){
$num = $this->reimplat_devnum;
if(isempt($num))$num = $dnum;
}
if(isempt($num))return returnerror('没有找到对应应用('.$agentname.')');
if(is_string($wxarr))$wxarr = array('title'=>$wxarr);
if(arrvalue($wxarr, 'url')){
$barr = $this->sendtextcard($touid, $num, $wxarr);
}else{
$des = arrvalue($wxarr,'description');
$cont = $wxarr['title'];
if($des)$cont.='<br>'.$des.'';
$barr = $this->sendtext($touid, $num, $cont);
}
return $barr;
}
}