| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- <?php
- class recordClassAction extends Action
- {
- public function storebeforeshow($table)
- {
- $dt1 = $this->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 = '<font color=red>未读</font>';
- }
- }else{
- if($sendid == $this->adminid){
- $tos = $ztfo->rows('mid='.$rs['id'].'');
- if($tos==0){
- $zttext = '全部已读';
- $rows[$k]['ishui']=1;
- }else{
- $zttext = '<font color=red>'.$tos.'人未读</font>';
- }
- }
- }
-
- $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('呼叫中','<font color=green>接通</font>','<font color=red>拒绝</font>','取消','等待接听','超时取消');
-
- 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()
- {
-
- }
- }
|