Browse Source

系统消息

lizhen_gitee 8 months ago
parent
commit
d4079c24b1
1 changed files with 45 additions and 0 deletions
  1. 45 0
      application/api/controller/Message.php

+ 45 - 0
application/api/controller/Message.php

@@ -20,6 +20,12 @@ class Message extends Api
         $data['num'] = $num;
         $data['content'] = $content ? : '';
 
+        //系统消息未读数量
+        $sys_ids = Db::name('message_sys')->column('id');
+        $all_num = count($sys_ids);
+        $read_num = Db::name('user_messagesys')->where('user_id',$this->auth->id)->where('msg_id','IN',$sys_ids)->count();
+        $data['msgsys_unread_num'] = $all_num > $read_num ? $all_num - $read_num : 0; //因公告被删除,未读公告没来得及删除,相减可能会负数
+
         $this->success('success', $data);
     }
 
@@ -36,4 +42,43 @@ class Message extends Api
         $this->success('success',$list);
     }
 
+    /*
+     * 获取系统消息列表
+     */
+    public function getmessagesys() {
+
+        $list = Db::name('message_sys')->autopage()->order('id desc')->select();
+
+        Db::startTrans();
+        //系统消息
+        //全部未读
+        $rs = Db::name('user_messagesys')->where('user_id',$this->auth->id)->delete();
+        if($rs === false){
+            Db::rollback();
+            $this->error('操作失败');
+        }
+
+        //循环全部已读
+        $list2 = Db::name('message_sys')->column('id');
+        if(!empty($list2)){
+            $newall = [];
+            foreach($list2 as $key => $msg_id){
+                $newall[] = [
+                    'user_id' => $this->auth->id,
+                    'msg_id' => $msg_id,
+                ];
+            }
+            if(!empty($newall)){
+                $rs = Db::name('user_messagesys')->insertAll($newall);
+                if($rs === false){
+                    Db::rollback();
+                    $this->error('操作失败');
+                }
+            }
+        }
+
+        Db::commit();
+        $this->success("获取成功!",$list);
+    }
+
 }