'设计', '2'=>'造价管理', '3'=>'业主', '4'=>'交通局', '5'=>'公路局', '6'=>'审计', '7'=>'财政', '8'=>'审核', '9'=>'施工', '10'=>'咨询', '11'=>'招标代理', '12'=>'监理', '13'=>'学校', '14'=>'个人', '15'=>'合作伙伴', ); public $tooltip=array('1'=>array('L','点击筛选标签'), '2'=>array('M','点击筛选标签'), '3'=>array('N','点击筛选标签'), '4'=>array('O','点击筛选标签'), '5'=>array('P','点击筛选标签'), '6'=>array('Q','点击筛选标签'), '7'=>array('R','点击筛选标签'), ); public $webPath="http://cld.smartcost.com.cn/upload/emailAnnex/"; function __construct() { //include './protected/config/common.conf.php'; //include $config['BASE_PATH'].'diagnostic/debug.php'; if(isset($_COOKIE["staff"])){ if(!empty($_COOKIE["staff"])){ Doo::loadModel ( 'staff' ); $staff = new staff (); $this->staff=$staff->getUserByIdList($_COOKIE["staff"]); return "/"; } } Doo::loadCore ( 'uri/DooUriRouter' ); $router = new DooUriRouter (); $routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER ); if($routeRs['1']!="login"){ header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: /login" ); } } function sms(){ Doo::loadModel('tag'); $tag=new tag(); Doo::loadModel('district'); $district= new district(); $tagList=$tag->getAllBySid($this->staff[0]['sid']); $districtList=$district->get_lv(1); $data['tagList']=$tagList; $data['districtList']=$districtList; $data['memu']="eMailTask"; $data['staff']=$this->staff; $data['mailMemu']='sms'; $this->render ( "/sms_create", $data ); } function createSms(){ $title=$this->get_args('title')?$this->get_args('title'):""; $content=isset($_POST['content'])?$_POST['content']:""; $tagId=$this->get_args('tagId')?$this->get_args('tagId'):array(); $did=$this->get_args('did')?$this->get_args('did'):""; $stype=$this->get_args('stype')?$this->get_args('stype'):""; $kind=$this->get_args('kind')?$this->get_args('kind'):1; if (!empty($content)&&(!empty($tagId)||!empty($did))){ Doo::loadModel('sms'); $sms=new sms(); Doo::loadModel('tag_client'); $tagClient=new tag_client(); Doo::loadModel('client'); $client=new client(); $tagCondition="";$tagArray=array(); foreach ($tagId as $value){ array_push($tagArray, " tag like '%".$value."%' "); } if(!empty($tagArray)) $tagCondition=' and ('.implode(" or ", $tagArray).')'; $clientList=$tagClient->find(array('select'=>'client','where'=>'sid='.$this->staff[0]['sid'].$tagCondition,'asArray'=>true)); $clientArray=array(); foreach ($clientList as $value){ array_push($clientArray, $value['client']); } $clientEmailList=array(); if (!empty($clientArray)) $clientEmailList=$client->find(array('select'=>'nicename as clientname,companyname,telephone','where'=>'cid in ('.implode(",", $clientArray).')','asArray'=>true)); if ($stype==2) $clientEmailList=$client->find(array('select'=>'nicename as clientname,companyname,telephone','where'=>'district like "'.$did.',%" ','asArray'=>true)); $list=array();$illegal=array(); foreach ($clientEmailList as $value){ if (preg_match("/^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}$/",$value['telephone'])) array_push($list, $value); else array_push($illegal, $value); } if ($stype==1){ $sms->tag=implode(",", $tagId); $sms->districtId=0; } if ($stype==2){ $sms->tag=""; $sms->districtId=$did; } $sms->date=date("Y-m-d"); $sms->content=$content;//base64_encode(gzcompress(json_encode($emailArray))); $sms->title=$title; $sms->client=base64_encode(gzcompress(json_encode($list))); $sms->illegal=json_encode(array_slice($illegal,0,100)); $sms->signature=1; $sms->status=1; $sms->kind=$kind; $sms->date=date("Y-m-d"); //$sms->tag=implode(",", $tagId); //$sms->districtId=$did; $sms->category=$this->staff[0]['category']; $sms->staffId=$this->staff[0]['sid']; $sms->staffName=$this->staff[0]['username']; $sms->insert(); return '/smsList'; } return '/createSms'; } function editSmsView(){ $sid=isset($this->params['sid'])?$this->params['sid']:0; //$sid=$this->get_args('sid')?$this->get_args('sid'):0; Doo::loadModel('tag'); $tag=new tag(); Doo::loadModel('district'); $district= new district(); $smsInfo=array(); if(!empty($sid)){ Doo::loadModel('sms'); $sms=new sms(); $smsInfo=$sms->getOne(array('where'=>'sid = '.$sid,'asArray'=>true)); $smsInfo['tagList']=explode(",", $smsInfo['tag']); }else return "/smsList"; $tagList=$tag->getAllBySid($this->staff[0]['sid']); $districtList=$district->get_lv(1); $tagHtml=''; foreach ($tagList as $key=>$value){ $tagHtml.=''; } $districtHtml=''; foreach ($districtList as $key=>$value){ $districtHtml.=''; } } $monthHtml=''; for ($i=1;$i<=12;$i++){ $monthHtml.=''; } $data['monthHtml']=$monthHtml; $data['dateHtml']=$dateHtml; $data['mailList']=$mailList; $data['memu']="eMailTask"; $data['staff']=$this->staff; $data['mailMemu']='smsCenter'; $this->render ( "/sms_center", $data ); } function authOrize(){ $kind=isset($this->params['kind'])?$this->params['kind']:0; $sid=isset($this->params['sid'])?$this->params['sid']:0; if (!empty($kind)&&!empty($sid)){ Doo::loadModel('sms'); $sms=new sms(); if ($kind==1) $sms->status=3; else $sms->status=2; $sms->mark=$this->staff[0]['username']."已同意"; $sms->update(array('where'=>'sid='.$sid,'asArray'=>true)); } return '/smsCenter'; } function delete(){ $sid=isset($this->params['sid'])?$this->params['sid']:0; if (!empty($sid)){ Doo::loadModel('sms'); $sms=new sms(); $sms->delete(array('where'=>'sid='.$sid)); } return '/smsList'; } function sendSms(){ $sid=isset($this->params['sid'])?$this->params['sid']:0; Doo::loadModel('sms'); $sms=new sms(); if(!empty($sid)){ $smsInfo=$sms->getOne(array('where'=>'sid='.$sid,'asArray'=>true)); if(!empty($smsInfo)&&$smsInfo['kind']==2&&$smsInfo['status']==2){ $smsPhone=json_decode(gzuncompress(base64_decode($smsInfo['client'])),true); $telephoneMun=array();$clientName=array(); foreach ($smsPhone as $key=>$value){ array_push($telephoneMun, $value['telephone']); array_push($clientName, $value['clientname']); } $telephoneMun=implode(",", $telephoneMun); $clientName=implode("{|}", $clientName); $url='http://smsapi.c123.cn/OpenPlatform/OpenApi?'; $ac='1001@501046820001'; $authkey = 'DD59699A324759EACB0ECECE564D1256'; $csid='4496'; //签名编号 $cgid='2733'; //通道组编号 $t=date('YmdGis',strtotime(" +10 seconds ")); //发送时间 $c = '{p1}您好!'.$smsInfo['content']; $m= $telephoneMun; //号码 $p1=$clientName; $data = array('action'=>'sendParam', //发送类型 ,可以有sendOnce短信发送,sendBatch一对一发送,sendParam 动态参数短信接口 'ac'=>$ac,'authkey'=>$authkey,'cgid'=>$cgid, 'm'=>$m, //号码 'c'=>$c, //如果页面是gbk编码,则转成utf-8编码,如果是页面是utf-8编码,则不需要转码,内容用{|},如测试一{|}测试二 'csid'=>$csid, //签名编号 ,可以为空,为空时使用系统默认的签名编号 't'=>$t, //定时发送,为空时表示立即发送,yyyyMMddHHmmss 如:20130721182038 'p1'=>$p1 ); $re= $this->postSMS($url,$data); preg_match_all('/result="(.*?)"/',$re,$res); if(trim($res[1][0]) == '1' ){ $sms->status=3; $sms->errorInfo=""; $sms->update(array('where'=>'sid='.$sid)); }else{ switch(trim($res[1][0])){ case 0: $sms->errorInfo="帐户格式不正确(正确的格式为:员工编号@企业编号)";break; case -1: $sms->errorInfo="服务器拒绝(速度过快、限时或绑定IP不对等)如遇速度过快可延时再发";break; case -2: $sms->errorInfo=" 密钥不正确";break; case -3: $sms->errorInfo="密钥已锁定";break; case -4: $sms->errorInfo="参数不正确(内容和号码不能为空,手机号码数过多,发送时间错误等)";break; case -5: $sms->errorInfo="无此帐户";break; case -6: $sms->errorInfo="帐户已锁定或已过期";break; case -7: $sms->errorInfo="帐户未开启接口发送";break; case -8: $sms->errorInfo="不可使用该通道组";break; case -9: $sms->errorInfo="帐户余额不足";break; case -10: $sms->errorInfo="内部错误";break; case -11: $sms->errorInfo="扣费失败";break; default:break; } $sms->update(array('where'=>'sid='.$sid)); } } } return "/smsList"; } function downLoadSms(){ //include Doo::conf()->BASE_PATH.'diagnostic/debug.php'; $sid=isset($this->params['sid'])?$this->params['sid']:0; Doo::loadModel('sms'); $sms=new sms(); if(!empty($sid)){ $smsInfo=$sms->getOne(array('where'=>'sid='.$sid,'asArray'=>true)); $smsPhone=json_decode(gzuncompress(base64_decode($smsInfo['client'])),true); $fileContent=""; $filepath=DOO::conf()->SITE_PATH."upload/sms/telephone.txt"; foreach ($smsPhone as $key=>$value){ $fileContent.=$value['telephone'].','.$value['clientname'].'您好!'.$smsInfo['content'].PHP_EOL; } file_put_contents($filepath, $fileContent); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($filepath)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($filepath)); readfile($filepath); } } private function postSMS($url,$data=''){ $row = parse_url($url); $host = $row['host']; $port = $row['port'] ? $row['port']:80; $file = $row['path']; while (list($k,$v) = each($data)) { //$post .= rawurlencode($k)."=".rawurlencode($v)."&"; //转URL标准码 $post .= $k."=".$v."&"; } $post = substr( $post , 0 , -1 ); $len = strlen($post); $fp = @fsockopen( $host ,$port, $errno, $errstr, 10); if (!$fp) { return "$errstr ($errno)\n"; } else { $receive = ''; $out = "POST $file HTTP/1.0\r\n"; $out .= "Host: $host\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n"; $out .= "Content-Length: $len\r\n\r\n"; $out .= $post; fwrite($fp, $out); while (!feof($fp)) { $receive .= fgets($fp, 128); } fclose($fp); $receive = explode("\r\n\r\n",$receive); unset($receive[0]); return implode("",$receive); } } private function getReceiptCount(){ $status=2; $year=date('Y'); Doo::loadModel('receipt'); $receipt=new receipt(); Doo::loadModel('verify'); $verify=new verify(); //user verify ID $vidList=array(); $verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'\"%"','asArray'=>true)); foreach ($verifyDetail as $key=>$value){ array_push($vidList, $value['vid']); } $vid=implode(",", $vidList); if(empty($verifyDetail)) $vid=0; $dateCondition=" and Year(date) =".$year; $approvalCondition=' and verifyStaff not like "%\"'.$this->staff[0]['sid'].'\":{%" '; $receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$approvalCondition,'desc'=>'rid','asArray'=>true)); return count($receiptList); } private function _GetFileEXT($filename) { $pics = explode ( '.', $filename ); $num = count ( $pics ); return $pics [$num - 1]; } /** * 获取get或者POST值 * @param string $name 属性名称 * @return fixed 值 */ private function get_args($name) { if (isset ( $_GET [$name] )) { if (is_array ( $_GET [$name] )) return $_GET [$name]; else { return addslashes ( $_GET [$name] ); //return $_GET [$name] ; } } elseif (isset ( $_POST [$name] )) { if (is_array ( $_POST [$name] )) return $_POST [$name]; else { return addslashes ( $_POST [$name] ); //return $_POST [$name]; } } else return false; } } ?>