mtReturn(300,'登录超时,请刷新页面,或重新登录!'); } $name=MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME; if(!authcheck($name,session('zt_uid'))){ $this->mtReturn(300,'很抱歉,此项操作您没有权限!请联系管理员!'); } $this->dbname = $this->dbname.CONTROLLER_NAME; $permdata=$this->permdata(); } protected function mtReturn($status,$info) { if($status===200){ $dat['username'] =session('zt_username'); $dat['content'] = $info; $dat['os']=$_SERVER['HTTP_USER_AGENT']; $dat['url'] = U(); $dat['addtime'] = date("Y-m-d H:i:s",time()); $dat['ip'] = get_client_ip(); M("log")->add($dat); } exit(json_encode(array('statusCode'=>$status,'message'=>$info))); ; } public function index(){ } public function outcsv($fname,$sql){ $User = M(); $query=$sql." into outfile '/var/www/html/thinkphp_crm/admin1/tilen.csv' CHARACTER SET gbk "; $User->execute($query); $filename = '/var/www/html/thinkphp_crm/admin1/tilen.csv'; //文件的类型 $date = date("Y_m_d",time()); $fname .= $date; //header('Content-type: application/xlsx'); header('Content-Type: application/vnd.ms-excel'); //下载显示的名字 header('Content-Disposition: attachment; filename="'.$fname.'.csv"'); $tr=readfile($filename); if($tr!==false) unlink("/var/www/html/thinkphp_crm/admin1/tilen.csv"); exit; } public function outtablexls($fname,$sql){ $User = M(); $query=$sql." into outfile '/var/www/html/thinkphp_crm/admin1/tilen.xls' CHARACTER SET gbk "; $User->execute($query); $filename = '/var/www/html/thinkphp_crm/admin1/tilen.xls'; //文件的类型 $date = date("Y_m_d",time()); $fname .= $date; //header('Content-type: application/xlsx'); header('Content-Type: application/vnd.ms-excel'); //下载显示的名字 header('Content-Disposition: attachment; filename="'.$fname.'.xls"'); $tr=readfile($filename); if($tr!==false) unlink("/var/www/html/thinkphp_crm/admin1/tilen.xls"); exit; } public function outtablexlsx($fname,$sql){ $User = M(); $query=$sql." into outfile '/var/www/html/thinkphp_crm/admin1/tilen.xlsx' CHARACTER SET gbk "; $User->execute($query); $filename = '/var/www/html/thinkphp_crm/admin1/tilen.xlsx'; //文件的类型 $date = date("Y_m_d",time()); $fname .= $date; header('Content-type: application/xlsx'); //header('Content-Type: application/vnd.ms-excel'); //下载显示的名字 header('Content-Disposition: attachment; filename="'.$fname.'.xlsx"'); $tr=readfile($filename); if($tr!==false) unlink("/var/www/html/thinkphp_crm/admin1/tilen.xlsx"); exit; } public function edit(){ $data=I('post.'); if(IS_POST){ $Model = D($this->dbname); if (!$Model->create()){ $this->mtReturn(300,$Model->getError()); } else{ if (method_exists($this, '_befor_save')) { $data=$this->_befor_save($data); } // $wx=M()->query("SELECT * FROM sp_user where id='".$data['id']."'"); $wx= $Model->where(array('id'=> $data['id']))->select(); $res = $Model->save($data); if($res!== false){ //日志代码开始 $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---修改sp_'.$this->dbname.'表---ID:'.$data['id']."数据\r\n"; $data_log1 ='修改前数据:'.json_encode($wx)."\r\n"; $data_log2 ='修改的数据:'.json_encode($data)."\r\n"; $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log"; file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log2, FILE_APPEND|LOCK_EX); //日志代码结束 $this->mtReturn(200,'编辑成功'. $data['id']); } else{ $this->mtReturn(300,'编辑失败'. $res); } } } if (method_exists($this, '_befor_edit')) { $this->_befor_edit(); } $this->display(); } public function add(){ $Data=I('post.'); if(IS_POST){ $Model = D($this->dbname); if (!$Model->create()){ $this->mtReturn(300,$Model->getError()); } else{ if (method_exists($this, '_befor_insert')) { $Data=$this->_befor_insert($Data); } $Res = $Model->add($Data); if (method_exists($this, '_after_add')) { $this->_after_add($Data); } $Id = $Model->getLastInsID(); if($Res){ //日志开始 $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log"; $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---新增sp_'.$this->dbname.'表\r\n'; $data_log1 ='新增数据:'.json_encode($Data)."\r\n"; file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX); //日志结束 $this->mtReturn(200,'新增成功'.$Id); } else{ $this->mtReturn(300,'新增失败'); } } } if (method_exists($this, '_befor_add')) { $this->_befor_add(); } $this->display(); } public function del(){ $Model=M($this->dbname); $Data=I(); if (session('power')==2){ $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1); }else { if (method_exists($this, '_befor_del')) { $this->_befor_del($Data); } $wx= $Model->where(array('id'=> $Data['id']))->select(); $res=$Model->where('id='.$Data['id'])->delete(); if($res){ //日志开始 $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log"; $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---删除sp_'.$this->dbname.'表---ID:'.$Data['id']."\r\n"; $data_log1 ='删除前数据:'.json_encode($wx)."\r\n"; file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX); //日志开始结束 $this->mtReturn(200,'删除成功'.$Data['id']); }else{ $this->mtReturn(300,'删除失败'); } } } public function deldata(){ $Model=M($this->dbname,$this->regx_db); $Data=I(); if (session('power')==2){ $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1); }else { $res=$Model->where('id='.$Data['id'])->delete(); if($res) $this->mtReturn(200,'删除成功'.$Data['id']); else $this->mtReturn(300,'删除失败'); } } public function exportExcel($expTitle,$expCellName,$expTableData){//表名,表头(一维数组),二维数组 数据 import("Org.Util_it.PHPExcel"); import("Org.Util_it.PHPExcel.Writer.Excel2007"); import("Org.Util_it.PHPExcel.IOFactory.php"); //对数据进行检验 if(!is_array($expTableData)){ $this->mtReturn(300,'数据不是数组'); } //检查文件名 if(empty($expTitle)){ $this->mtReturn(300,'文件名未设置'); } $date = date("Y_m_d",time()); $expTitle .= $date.".xlsx"; //创建PHPExcel对象,注意,不能少了\ $objPHPExcel = new \PHPExcel(); $objProps = $objPHPExcel->getProperties(); //设置表头 $key = ord("A"); foreach($expCellName as $v){ $colum = chr($key); $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1',$v); $key += 1; } $column = 2; $objActSheet = $objPHPExcel->getActiveSheet(); //设置为文本格式 foreach($expTableData as $key => $rows){ //行写入 $span = ord("A"); foreach($rows as $keyName=> $value){// 列写入 $j = chr($span); $objActSheet->setCellValueExplicit($j.$column, $value); $span++; } $column++; } //$fileName = iconv("utf-8", "gb2312", $fileName); //重命名表 // $objPHPExcel->getActiveSheet()->setTitle('test'); //设置活动单指数到第一个表,所以Excel打开这是第一个表 $objPHPExcel->setActiveSheetIndex(0); ob_end_clean();//清除缓冲区,避免乱码 header('Content-Type: application/vnd.ms-excel'); header("Content-Disposition: attachment;filename=\"$expTitle\""); header('Cache-Control: max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); //文件通过浏览器下载 exit; } public function downfile(){//下载文件 file $data=I(); $path_parts = pathinfo($data['file']); $DirName=$path_parts['dirname'];//有路径显示路径,无路径显示. $file_name = $path_parts['basename'];//文件名,有后缀 $Extension=$path_parts['extension'];//后缀名 $file_path=explode('-',$file_name)[3]; $Y=substr($file_path,0,4); $M=substr($file_path,4,2); $D=substr($file_path,-2); $filename='/var/spool/asterisk/monitor/'.$Y.'/'.$M.'/'.$D.'/'.$file_name; if (!file_exists($filename)) { $this->mtReturn(300,'无文件,下载失败'); } header('Content-type: application/x-'.$Extension); //下载显示的名字 header('Content-Disposition: attachment; filename='.$file_name); $tr=readfile($filename); if($tr===false) $this->mtReturn(300,'下载错误'); //echo json_encode($path_parts); } public function downother(){//下载文件 fileurl 路径 name 文件名 $data=I(); //$data['fileurl']='/var/www/html/spcrm/admin/knowfile/201705081713331721.html'; $path_parts = pathinfo($data['fileurl']); $file_name = $path_parts['basename']; if (!file_exists($data['fileurl'])) { $this->mtReturn(300,'无文件,下载失败'); } header('Content-type: application/x-'.$path_parts['extension']); //下载显示的名字 header('Content-Disposition: attachment; filename='.$data['name']); $tr=readfile($data['fileurl']); if($tr===false) $this->mtReturn(300,'下载错误'); //echo json_encode($path_parts); } public function play(){ header ( " Cache-Control: no-cache, must-revalidate " ); $Data=I(); $Path_Parts = pathinfo($Data['file']); $File_Name = $Path_Parts['basename']; if(isset($Data['action'])) { $File_Path=explode('-',$File_Name)[3]; $Y=substr($File_Path,0,4); $M=substr($File_Path,4,2); $D=substr($File_Path,-2); $Filename='/var/spool/asterisk/monitor/'.$Y.'/'.$M.'/'.$D.'/'.$File_Name; if (!file_exists($Filename)) { $this->mtReturn(300,'无文件,播放失败'); } $Fp = fopen($Filename, 'rb'); if (!$Fp) { $this->mtReturn(300,'文件无法打开'); } /* header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: wav file"); header("Content-Type: audio/wav"); header("Content-Disposition: attachment; filename= ".$File_Name); header("Content-Transfer-Encoding: binary"); header("Content-length: " . filesize($Filename)); fpassthru($Fp); fclose($Fp);*/ $path=$Filename; $filesize=filesize($Filename); header("Content-type:audio/mpeg"); header("Content-length:$filesize"); readfile($Filename); } else{ $this->assign('filename',$File_Name); $this->display('Public/play'); } } /** * [permdata description] 数据权限 * @param [type] $status [description] 数据格式类型 默认是0 * @return [type] [description] status=0 返回thinkphp数组形式array(in,'x,cc,c') status=1 返回字符串格1,2,1 */ protected function permdata($status=0) { $ModelUser=M('v_user'); $Uid=session('zt_uid'); $PermData=3; if($Uid!=1) { $ListData=$ModelUser->where(array('id' => $Uid))->Field("dataperm,agentid,depnameid")->select(); $PermData =$ListData[0]['dataperm']; } if($PermData==1) { $Data =$ListData[0]['agentid']; } else if($PermData==2) { $ListId=$this->groupdata($ListData[0]['depnameid']).$ListData[0]['depnameid']; $DepData=explode(',',$ListId); $Map['depnameid']=array('in',$DepData); $List = M('v_user')->where($Map)->field("agentid")->select(); $Ids=array(); foreach ($List as $g) { $Ids = array_merge($Ids, explode(',', trim($g['agentid'], ','))); $IDBuff.=$g['agentid'].','; } $Data =array('in',array_unique($Ids)); if($status==1) { $IDBuff = substr($IDBuff,0,strlen($var)-1); $Data=$IDBuff; } } else{ $Data=''; } return $Data; } protected function groupdata($DepPid){ $ModelGroup=M('auth_group'); $ListPid=$ModelGroup->where(array('pid' => $DepPid,'type'=> 0))->Field('id')->select(); if(!empty($ListPid)){//如果有子类 $i=0; foreach($ListPid as $g){ $Arrt.=$g['id'].','; $Arrt.=$this->groupdata($g['id']); } return $Arrt; } } public function logcs($msg) { $msg = $msg."\n"; $logFile = '/var/www/html/jdxf/log/cstest.log'; file_put_contents($logFile, "[".date('Y-m-d H:i:s') . "]---" . $msg, FILE_APPEND | LOCK_EX); } }