You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.3 KiB
PHTML
157 lines
4.3 KiB
PHTML
2 years ago
|
<?php
|
||
|
use JPush\src\JPush;
|
||
|
use JPush\src\core\JPushException;
|
||
|
namespace Admin\Controller;
|
||
|
/**
|
||
|
* 后台首页控制器
|
||
|
* @author 麦当苗儿 <zuojiazi@vip.qq.com>
|
||
|
*/
|
||
|
class PushController extends ThinkController {
|
||
|
const model_name = 'push';
|
||
|
|
||
|
public function pushsetlsit()
|
||
|
{
|
||
|
parent::lists(self::model_name,$_GET['p'],$map);
|
||
|
|
||
|
}
|
||
|
|
||
|
public function add()
|
||
|
{
|
||
|
if(IS_POST){
|
||
|
$push = D("push");
|
||
|
$data=$push->create();
|
||
|
$map['app_key']=$data['app_key'];
|
||
|
$map['master_secret']=$data['master_secret'];
|
||
|
$find_push=$push->where($map)->find();
|
||
|
if(null!==$find_push){
|
||
|
$this->error('该应用已经添加过!', U("pushsetlsit"));
|
||
|
return false;
|
||
|
}
|
||
|
if($data){
|
||
|
$push->add($data);
|
||
|
$this->success('添加成功!', U("pushsetlsit"));
|
||
|
} else {
|
||
|
$this->error($push->getError());
|
||
|
}
|
||
|
}else{
|
||
|
$this->meta_title = '新增推送设置';
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
public function del($model = null, $ids=null)
|
||
|
{
|
||
|
$model = M('Model')->getByName(self::model_name); /*通过Model名称获取Model完整信息*/
|
||
|
parent::del($model["id"],$ids);
|
||
|
}
|
||
|
|
||
|
public function edit($id)
|
||
|
{
|
||
|
$push = D("push");
|
||
|
if(IS_POST){
|
||
|
$data=$push->create();
|
||
|
if($data){
|
||
|
$push->save($data);
|
||
|
$this->success('修改成功!', U("pushsetlsit"));
|
||
|
}else{
|
||
|
$this->error($push->getError());
|
||
|
}
|
||
|
}else{
|
||
|
$map['id']=$id;
|
||
|
$edit=$push->where($id)->find();
|
||
|
$this->assign("data",$edit);
|
||
|
$this->meta_title = '编辑推送设置';
|
||
|
|
||
|
$this->display();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
public function pushlist()
|
||
|
{
|
||
|
parent::lists("PushNotice",$_GET['p'],$map);
|
||
|
|
||
|
}
|
||
|
|
||
|
public function add_list()
|
||
|
{
|
||
|
if(IS_POST){
|
||
|
$push = M("PushNotice","tab_");
|
||
|
$data=$push->create();
|
||
|
if($data){
|
||
|
if(empty($data['push_id'])){
|
||
|
$this->error("应用名不能为空",U("pushlist"));
|
||
|
}
|
||
|
if(strlen($data['push_time'])>10){
|
||
|
$data['push_time']=strtotime($data['push_time']);
|
||
|
}
|
||
|
$data['push_name']=get_push_name($data['push_id']);
|
||
|
$map['id']=$data['push_id'];
|
||
|
$pus=D("push")->where($map)->find();
|
||
|
if($pus['status']==0){$this->error("该应用已关闭",U("pushlist"));return false;}
|
||
|
$data['app_key']=$pus['app_key'];
|
||
|
$data['master_secret']=$pus['master_secret'];
|
||
|
$this->jpush($data);
|
||
|
$push->add($data);
|
||
|
$this->success('添加成功!', U("pushlist"));
|
||
|
}else{
|
||
|
$this->error($push->getError());
|
||
|
}
|
||
|
}else{
|
||
|
$this->meta_title = '新增发送通知';
|
||
|
|
||
|
$this->display();
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
public function del_list($model = null, $ids=null)
|
||
|
{
|
||
|
$model = M('Model')->getByName("PushNotice"); /*通过Model名称获取Model完整信息*/
|
||
|
parent::del($model["id"],$ids);
|
||
|
}
|
||
|
|
||
|
//推送
|
||
|
public function jpush($data){
|
||
|
Vendor("Jpush.src.JPush");
|
||
|
$client = new \JPush($data['app_key'], $data['master_secret']);
|
||
|
$str="";
|
||
|
switch ($data['push_object']) {
|
||
|
case 0:
|
||
|
$str="all";
|
||
|
break;
|
||
|
case 1:
|
||
|
$str="ios";
|
||
|
break;
|
||
|
case 2:
|
||
|
$str="android";
|
||
|
break;
|
||
|
case 3:
|
||
|
$str="all";
|
||
|
break;
|
||
|
default:
|
||
|
$str="all";
|
||
|
break;
|
||
|
}
|
||
|
switch ($data['push_time_type']) {
|
||
|
case 0:
|
||
|
$result = $client->push()
|
||
|
->setPlatform($str)
|
||
|
->addAllAudience()
|
||
|
->setNotificationAlert($data['content'])
|
||
|
->send();
|
||
|
// echo json_encode($result) . $br;
|
||
|
break;
|
||
|
case 1:
|
||
|
$payload = $client->push()
|
||
|
->setPlatform($str)
|
||
|
->addAllAudience()
|
||
|
->setNotificationAlert($data['content'])
|
||
|
->build();
|
||
|
// 创建一个2016-12-22 13:45:00触发的定时任务
|
||
|
$response = $client->schedule()->createSingleSchedule("定时任务", $payload, array("time"=>date("Y-m-d H:i:s",$data['push_time'])));
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|