110 lines
3.3 KiB
PHP
110 lines
3.3 KiB
PHP
<?php
|
|
//订阅的
|
|
class flow_subscribeinfoClassModel extends flowModel
|
|
{
|
|
|
|
|
|
|
|
public function flowrsreplace($rs, $lx=0)
|
|
{
|
|
$filepath = $rs['filepath'];
|
|
if(!file_exists(iconv('utf-8','gb2312',$filepath))){
|
|
$filepath = '文件不存在了';
|
|
$rs['ishui']= 1;
|
|
}else{
|
|
$filepath = '<a href="'.URL.''.$filepath.'"';
|
|
if(!$this->rock->ismobile())$filepath.=' target="_blank"';
|
|
$filepath .= '>打开</a>';
|
|
}
|
|
$rs['filepath'] = $filepath;
|
|
return $rs;
|
|
}
|
|
|
|
|
|
/**
|
|
* 订阅运行发送
|
|
*/
|
|
public function subscribe($id, $nowid=0, $receid='', $recename='')
|
|
{
|
|
$rs = $this->db->getone('[Q]subscribe','`id`='.$id.'');
|
|
if(!$rs)return returnerror('不存在');
|
|
|
|
if($rs['status']=='0')return returnerror('未启用不能运行');
|
|
$title = $rs['title']; //订阅标题
|
|
$cont = $rs['cont']; //提醒内容
|
|
$suburl = $this->rock->jm->base64decode($rs['suburl']);
|
|
$suburlpost = $this->rock->jm->base64decode($rs['suburlpost']);
|
|
if(isempt($suburl) || isempt($suburlpost))return;
|
|
$base = m('base');
|
|
|
|
$suburlpost = $base->strreplace($suburlpost,0,1);
|
|
$title = $base->strreplace($title,0,1);
|
|
$cont = $base->strreplace($cont,0,1);
|
|
|
|
$url = getconfig('localurl', URL).$suburl;
|
|
//请求参数处理
|
|
$params = array();
|
|
$canarr = explode('&', $suburlpost);
|
|
foreach($canarr as $csnstr){
|
|
$nets = explode('=', $csnstr);
|
|
$params[$nets[0]] = $nets[1];
|
|
}
|
|
|
|
if($nowid==0)$nowid = $rs['optid'];
|
|
|
|
$params['exceltitle'] = $title;
|
|
$params['exceltype'] = 'html';
|
|
$params['tablename_abc'] = $this->rock->jm->encrypt($params['tablename_abc']);
|
|
$params['exceltitle'] = $this->rock->jm->encrypt($params['exceltitle']);
|
|
$params['excelfields'] = $this->rock->jm->encrypt($params['excelfields']);
|
|
$params['excelheader'] = $this->rock->jm->encrypt($params['excelheader']);
|
|
|
|
//传个让不需要登录验证
|
|
$subscribe_post = 'subscribe_'.time().'';
|
|
$subscribe_key = md5($url.time().$subscribe_post);
|
|
$params['subscribe_key'] = $subscribe_key;
|
|
$params['subscribe_post'] = $subscribe_post;
|
|
$params['subscribe_adminid']= $nowid;
|
|
$this->option->setval('subscribe_key', $subscribe_key);
|
|
|
|
$bstr = c('curl')->postcurl($url, $params);
|
|
$this->db->update('[Q]subscribe',"`lastdt`='{$this->rock->now}'", '`id`='.$id.'');
|
|
|
|
if(!isempt($bstr) && substr($bstr, 0, 1)=='{'){
|
|
$publicurl = $this->rock->getouturl();//公网URL
|
|
$barr = json_decode($bstr, true);
|
|
$htmlpath = $barr['url'];
|
|
|
|
if($barr['downCount']==0)return returnerror('记录数为0,没有可订阅数据');
|
|
|
|
$url = $publicurl.$htmlpath;
|
|
//发送提醒
|
|
if(isempt($receid)){
|
|
$receid = $rs['optid'];
|
|
$recename = $rs['optname'];
|
|
}
|
|
|
|
$newid = $this->insert(array(
|
|
'mid' => $id,
|
|
'receid' => $receid,
|
|
'recename' => $this->rock->xssrepstr($recename),
|
|
'title' => $title,
|
|
'cont' => $cont,
|
|
'optdt' => $this->rock->now,
|
|
'filepath' => $htmlpath,
|
|
));
|
|
|
|
//推送提醒
|
|
$receid = $this->pushs($receid, $cont,$title,array(
|
|
'id' => $newid
|
|
));
|
|
|
|
$this->update(array('receid' => $receid), $newid);
|
|
|
|
return returnsuccess();
|
|
}else{
|
|
m('log')->addlogs('订阅运行', 'ID('.$id.')运行失败:'.$bstr.'', 2);
|
|
return returnerror('error:'.$bstr.'');
|
|
}
|
|
}
|
|
} |