bianjunhui преди 2 години
родител
ревизия
d90ae7b5f6
променени са 3 файла, в които са добавени 117 реда и са изтрити 5 реда
  1. 6 0
      application/admin/view/message/add.html
  2. 7 1
      application/admin/view/message/edit.html
  3. 104 4
      application/api/controller/Message.php

+ 6 - 0
application/admin/view/message/add.html

@@ -18,6 +18,12 @@
             <input id="c-type" data-rule="required" data-source="message/getType" class="form-control selectpage" name="row[type]" type="text" value="">
         </div>
     </div>
+    <div class="form-group">
+        <label for="c-para" class="control-label col-xs-12 col-sm-2">{:__('WEB跳转URL')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-para" class="form-control" name="row[para]" type="text" value="">
+        </div>
+    </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Sendtime')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 7 - 1
application/admin/view/message/edit.html

@@ -15,7 +15,13 @@
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Type')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-type" class="form-control" name="row[type]" type="number" value="{$row.type|htmlentities}">
+            <input id="c-type" data-rule="required" data-source="message/getType" class="form-control selectpage" name="row[type]" type="text" value="{$row.type|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label for="c-para" class="control-label col-xs-12 col-sm-2">{:__('WEB跳转URL')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-para" class="form-control" name="row[para]" type="text" value="">
         </div>
     </div>
     <div class="form-group">

+ 104 - 4
application/api/controller/Message.php

@@ -21,6 +21,7 @@ use onesignal\client\model\Segment;
 use onesignal\client\model\FilterExpressions;
 use GuzzleHttp;
 use app\common\model\User;
+use think\Db;
 class Message extends Api
 {
     protected $noNeedLogin = ['*'];
@@ -49,6 +50,7 @@ class Message extends Api
         $user = User::getByUserId($data['user_id']);
         if ($user) {
             $user->group_id = $data['group_id'];
+            $user->token = $data['token'];
             $user->save();
         }else{
              User::create($data, true);
@@ -57,19 +59,117 @@ class Message extends Api
     }
 
 
-    function createNotification($enContent){
+    function createNotification($enContent,$segment){
         $content = new StringMap();
         $content->setEn($enContent);
         $notification = new Notification();
         $notification->setAppId('6bbd561f-4d8e-4d04-a6c4-dbef1bf99694');
         $notification->setContents($content);
-        $notification->setIncludedSegments(['SegmentA']);
+        $notification->setIncludedSegments([$segment]);
         return $notification;
     }
 
-    public function send(){
-        $notification = $this->createNotification(' wk Test notification');
+    public function send($enContent,$segment){
+        $notification = $this->createNotification($enContent,$segment);
         $result = $this->apiInstance->createNotification($notification);
+        return $result;
+    }
+
+    public function sendMsg(){
+        $wheres['sendtime']=array('lt',time());
+        $wheres['status']=1;
+        $one_push = Db::name('message')->where($wheres)->order('id')->find();
+        if (empty($one_push)) {
+            echo '没有查到推送队列';
+            exit;
+        } else {
+            $where['id']=$one_push['id'];
+            $data['status']=2;
+            $data['uptime']=time();
+            Db::name('message')->where($where)->update($data);
+        }
+        $template_dsc =$one_push['template_dsc'];
+        $segment =$one_push['group_name'];
+        $result =$this->send($template_dsc,$segment);
         print_r($result);
     }
+
+    public function getMessage(){
+        $post=$this->request->post();
+        $user = User::getByUserId($post['user_id']);
+        $data=array();
+        if($user){
+            $wheres['group_id']=$user->group_id;
+            $wheres['status']=2;
+            $list = Db::name('message')->where($wheres)->order('id')->select();
+            if($list){
+                foreach ($list as $k=>$v){
+                    $data[$k]['imgUrl']='';
+                    $data[$k]['time']=$v['sendtime'];
+                    $data[$k]['title']=$v['template_name'];
+                    $data[$k]['des']=$v['template_dsc'];
+                    $data[$k]['push_type']=$v['type'];
+                    $data[$k]['push_para']=$v['para'];
+                    $data[$k]['isReaded']=0;
+                    $where['message_id']=$v['id'];
+                    $where['user_id']=$post['user_id'];
+                    $read = Db::name('message_read')->where($where)->find();
+                    if($read){
+                        $data[$k]['isReaded']=1;
+                    }
+                }
+            }
+        }else{
+            $data=null;
+        }
+        $this->success('',$data);
+    }
+
+    public function upRead(){
+        $post=$this->request->post();
+        if($post['type']==1){//单条阅读
+            unset($post['type']);
+            $wheres['message_id']=$post['message_id'];
+            $wheres['user_id']=$post['user_id'];
+            $list = Db::name('message_read')->where($wheres)->find();
+            if($list){
+                $this->success();
+            }else{
+                $post['addtime']=time();
+                $re = Db::name('message_read')->insertGetId($post);
+                if($re){
+                    $this->success();
+                }else{
+                    $this->error();
+                }
+            }
+        }else{
+            $user = User::getByUserId($post['user_id']);
+            $wheres['group_id']=$user->group_id;
+            $wheres['status']=2;
+            $list = Db::name('message')->where($wheres)->order('id')->select();
+            $res=array();
+            if($list){
+                foreach ($list as $k => $v){
+                    $arr['message_id'] = $v['id'];
+                    $arr['user_id'] = $post['user_id'];
+                    $arr['addtime']=time();
+                    $res[] = $arr;
+                };
+                $num = 100;//每次导入条数
+                $limit = ceil(count($res)/$num);
+                for($i=1;$i<=$limit;$i++){
+                    $offset=($i-1)*$num;
+                    $data=array_slice($res,$offset,$num);
+                    Db::name('message_read')->insertAll($data);
+                };
+            }
+            $this->success();
+        }
+
+
+    }
+
+
+
 }