zoukankan      html  css  js  c++  java
  • 关于推送消息小红点问题(用户是否查看)

    需求:向用户推送一条消息,怎么判断哪个用户看了,哪个用户没有看?

    解决办法:数据库创建个表,用来存储用户是否查看,表字段,id,uid,pid,uid存储的是用户id,pid存储的是消息id

    当用户查看消息的时候,传入当前用户id和当前消息id,存储在查看表中。

    在前端请求数据的时候,根据前端传过来当前用户的uid,然后后台查询需要推送的消息,查询判断当前存储状态的表有没有这条数据。

    代码:

     #消息推送接口
        public function index($page=1){
         $uid=input('param.uid');
         
         $data=Db::name('push')
              ->page($page,5)    
              ->select();
          $arr=array(); 
            
            foreach ($data as $k => $v) {
                foreach ($v as $kk => $vv) {
                    if ($kk=="create_time") {
                      $onlion=Db::name('push_onlion')->where(['uid'=>$uid,'pid'=>$v['id']])->count(); //查看数据库中有么有这条数据
                      if (empty($onlion)) {
                        $v['onlion']=0;
                      }else{
                        $v['onlion']=1;
                      }
                     
                    }         
                }
               $arr[$k]=$v; //
            }
          
         $pg=db('push') 
            ->count('id');
         $pages=ceil($pg/5); //分页总页数,向上取整  
        
    
         if (empty($data)){
                return json(["code"=>"0","msg"=>"成功","data"=>$data]); 
            }else{
                
                return json(["code"=>"0","msg"=>"成功","data"=>$arr,"pages"=>$pages]);
            }
       }
    
    
       #改变状态
       public function onlion(){    
        $data=input('param.');
        $stmt=Db::name('push_onlion')->where('uid','=',$data['uid'])->where('pid','=',$data['pid'])->count(); //判断数据库是否已有这条数据
          if ($stmt) {
            return json(["code"=>"1","msg"=>"数据库已有数据"]);  
          }elseif($menu =PushModel::create($data)){
                 return json(["code"=>"0","msg"=>"成功",]);
          } else {
               return json(["code"=>"1","msg"=>"失败"]); 
          }     
       }
  • 相关阅读:
    OPENGL_三角形带GL_TRIANGLE_STRIP详解
    OPENGL_单位长度对应屏幕像素
    OPENGL2_基本框架
    WINDOWS编程基础-最简单的windows程序
    着色语言(Shader Language)
    Ogre 学习记录
    Ogre RT Shader System
    Perception Neuron系统,让动作捕捉技术不再高冷
    Ogre 中基于蒙皮骨骼的OBB碰撞检测
    Ogre 绘制基本图形
  • 原文地址:https://www.cnblogs.com/cyk2/p/11347231.html
Copyright © 2011-2022 走看看