post('dt1'); $dt2 = $this->post('dt2'); $key = $this->post('key'); $atype = $this->post('atype'); $receid = $this->post('receid'); $whe = $this->rock->dbinstr('`receuid`', $this->adminid); $where = 'and '.$whe.''; if($atype=='all'){ $where = ''; } if(!isempt($dt1))$where.=" and `optdt`>='$dt1 00:00:00'"; if(!isempt($dt2))$where.=" and `optdt`<='$dt2 23:59:59'"; if(!isempt($receid)){ $where.=" and ((`sendid` in($receid)) or (`type`='user' and `receid` in($receid)))"; } if(!isempt($key)){ $key = $this->rock->jm->base64encode($key); $where.=" and `cont` like '%$key%'"; } return $where; } //数据显示后处理 public function storeaftershow($table,$rows) { $suids = '0'; $guids = '0'; $fuids = '0'; $typearr = array('user'=>'单人','group'=>'群会话'); foreach($rows as $k=>$rs){ $suids.=','.$rs['sendid'].''; $rows[$k]['typetxt']= arrvalue($typearr, $rs['type']); if($rs['type']=='user'){ $suids.=','.$rs['receid'].''; }else{ $guids.=','.$rs['receid'].''; } if($rs['fileid']!='0')$fuids.=','.$rs['fileid'].''; } $warr = $farr = $garr = array(); if($suids!='0')$farr = $this->db->getarr('[Q]admin', "`id` in($suids)",'`face`,`name`'); if($guids!='0')$garr = $this->db->getarr('[Q]im_group', "`id` in($guids)",'`face`,`name`'); if($fuids!='0')$warr = $this->db->getarr('[Q]file', "`id` in($fuids)",'filename,filesizecn,fileext,filepath,thumbpath,filenum'); //相关文件 $fobj = m('file'); $ztfo = m('im_messzt'); foreach($rows as $k=>$rs){ $sendid = $rs['sendid']; $receid = $rs['receid']; $type = $rs['type']; if(isset($farr[$sendid])){ $rows[$k]['sendname'] = $farr[$sendid]['name']; } if($type=='user'){ if(isset($farr[$receid])){ $rows[$k]['recename'] = $farr[$receid]['name']; } }else{ if(isset($garr[$receid])){ $rows[$k]['recename'] = $garr[$receid]['name']; //群名称 } } //发送人是我判断是否已读未读 $zttext = ''; if($type=='user'){ if($rs['zt']=='1'){ $zttext = '已读'; $rows[$k]['ishui']=1; }else{ $zttext = '未读'; } }else{ if($sendid == $this->adminid){ $tos = $ztfo->rows('mid='.$rs['id'].''); if($tos==0){ $zttext = '全部已读'; $rows[$k]['ishui']=1; }else{ $zttext = ''.$tos.'人未读'; } } } $rows[$k]['zttext'] = $zttext; $fileid = $rs['fileid']; if(isset($warr[$fileid])){ $fileid = $fobj->getfilestr($warr[$fileid],1); } if($fileid=='0')$fileid = ''; $rows[$k]['fileid'] = $fileid; } return array( 'rows' => $rows ); } //删除聊天记录 public function delrecordAjax() { $id = c('check')->onlynumber($this->post('id')); $atype = $this->post('atype'); if($atype!='all'){ if(!isempt($id)){ m('reim')->clearrecord('',0,$this->adminid, $id); } }else{ //管理员删除 if($this->getsession('isadmin')!='1')backmsg('非管理员不能操作'); if(!isempt($id)){ m('im_mess')->delete('id in('.$id.')'); m('im_messzt')->delete('mid in('.$id.')'); } } backmsg(); } public function delqingchuAjax() { $tas = (int)m('option')->getval('chatrecorddt','0'); if($tas<=0)$tas = 180; $dt = date('Y-m-d H:i:s', time()-$tas*24*3600); m('im_mess')->delete("`optdt`<='$dt'"); m('im_history')->delete("`optdt`<='$dt'"); m('im_messzt')->delete("`mid` not in(select `id` from `[Q]im_mess`)"); echo $tas; } public function storebefore_tonghuashow($table) { $dt1 = $this->post('dt1'); $dt2 = $this->post('dt2'); $key = $this->post('key'); $atype = $this->post('atype'); $receid = $this->post('receid'); $where = 'and (`faid`='.$this->adminid.' or `joinids`='.$this->adminid.')'; if($atype=='all'){ $where = ''; } if(!isempt($dt1))$where.=" and `adddt`>='$dt1 00:00:00'"; if(!isempt($dt2))$where.=" and `adddt`<='$dt2 23:59:59'"; if(!isempt($receid)){ $where.=" and (`faid` in($receid) or `joinids` in($receid))"; } if(!isempt($key)){ //$key = $this->rock->jm->base64encode($key); //$where.=" and `cont` like '%$key%'"; } return $where; } //数据显示后处理 public function storeafter_tonghuashow($table,$rows) { $suids = '0'; $typearr = array('语音','视频'); foreach($rows as $k=>$rs){ $suids.=','.$rs['faid'].''; if(!isempt($rs['joinids']))$suids.=','.$rs['joinids'].''; } $farr= array(); if($suids!='0')$farr = $this->db->getarr('[Q]admin', "`id` in($suids)",'`face`,`name`'); $statea = array('呼叫中','接通','拒绝','取消','等待接听','超时取消'); foreach($rows as $k=>$rs){ $faid = $rs['faid']; $joinids = $rs['joinids']; if(isset($farr[$faid])){ $rows[$k]['faid'] = $farr[$faid]['name']; } if(isset($farr[$joinids])){ $rows[$k]['joinids'] = $farr[$joinids]['name']; } if($rs['state']==1 && !isempt($rs['jiedt']) && !isempt($rs['enddt'])){ $sj = strtotime($rs['enddt']) - strtotime($rs['jiedt']); $rows[$k]['remark'] = '接听'.$sj.'秒'; } $rows[$k]['type'] = $typearr[$rs['type']]; $rows[$k]['state'] = $statea[$rs['state']]; } return array( 'rows' => $rows ); } //删除聊天记录 public function delrecord_tonghuaAjax() { $id = $this->post('id'); $atype = $this->post('atype'); //管理员删除 if($this->getsession('isadmin')!='1')backmsg('非管理员不能操作'); m('im_tonghua')->delete('id in('.$id.')'); backmsg(); } public function downloadAction() { } public function historyAction() { } }