| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 | 
							- <?php
 
- defined('IN_PHPCMS') or exit('No permission resources.');
 
- pc_base::load_app_class('admin','admin',0);
 
- pc_base::load_sys_class('form','',0);
 
- pc_base::load_sys_class('format','',0);
 
- pc_base::load_app_func('global','sms');
 
- class sms extends admin {
 
- 	function __construct() {
 
- 		parent::__construct();
 
- 		$this->log_db = pc_base::load_model('sms_report_model');
 
- 		$this->module_db = pc_base::load_model('module_model');
 
- 		$this->member_db = pc_base::load_model('member_model');
 
- 		
 
- 		//获取短信平台配置信息
 
- 		$siteid = get_siteid();
 
- 		$this->sms_setting_arr = getcache('sms');
 
- 		if(!empty($this->sms_setting_arr[$siteid])) {
 
- 			$this->sms_setting = $this->sms_setting_arr[$siteid];
 
- 		} else {
 
- 			$this->sms_setting = array('userid'=>'', 'productid'=>'', 'sms_key'=>'');
 
- 		}
 
- 		
 
- 		//初始化smsapi
 
- 		pc_base::load_app_class('smsapi', '', 0);
 
- 		$this->smsapi = new smsapi($this->sms_setting['userid'], $this->sms_setting['productid'], $this->sms_setting['sms_key']);
 
- 	}
 
- 	
 
- 	public function init() {	
 
- 		$show_pc_hash = 1;
 
- 		//短信套餐列表
 
- 		$smsprice_arr = $this->smsapi->get_price();
 
- 		//字符转换
 
- 		if(CHARSET != 'utf-8') {
 
- 			if(is_array($smsprice_arr)) {
 
- 				foreach ($smsprice_arr as $k=>$v) {
 
- 					$smsprice_arr[$k]['name'] = iconv('utf-8', CHARSET, $smsprice_arr[$k]['name']);
 
- 					$smsprice_arr[$k]['description'] = iconv('utf-8', CHARSET, $smsprice_arr[$k]['description']);
 
- 				}
 
- 			}
 
- 		}
 
- 		
 
- 		//短信剩余条数
 
- 		$smsinfo_arr = $this->smsapi->get_smsinfo();
 
- 		include $this->admin_tpl('index');
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 
 
- 	 * 短信充值记录
 
- 	 */
 
- 	public function sms_buy_history() {
 
- 		$payinfo_arr = $this->smsapi->get_buyhistory();	
 
- 		//字符转换
 
- 		if(CHARSET != 'utf-8') {
 
- 			if(is_array($payinfo_arr)) foreach ($payinfo_arr as $k=>$v) {
 
- 				$payinfo_arr[$k]['name'] = iconv('utf-8', CHARSET, $payinfo_arr[$k]['name']);
 
- 				$payinfo_arr[$k]['description'] = iconv('utf-8', CHARSET, $payinfo_arr[$k]['description']);
 
- 			}
 
- 		}
 
- 		include $this->admin_tpl('sms_buy_history');
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 
 
- 	 * 短信消费记录
 
- 	 */
 
- 	public function sms_pay_history() {
 
- 		
 
- 		$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
 
- 		$paylist_apiarr = $this->smsapi->get_payhistory($page);
 
- 		
 
- 		$paylist_arr = !empty($paylist_apiarr['datas']) ? $paylist_apiarr['datas'] : array();
 
- 		$payhistoryinfo_total = !empty($paylist_apiarr['total']) ? $paylist_apiarr['total'] : 0;
 
- 		$pages = pages($payhistoryinfo_total, $page, 20);
 
- 		include $this->admin_tpl('sms_pay_history');
 
- 	}	
 
- 	
 
- 	public function sms_setting() {
 
- 		$siteid = get_siteid();
 
- 		if(isset($_POST['dosubmit'])) {
 
- 			$this->sms_setting_arr[$siteid] = $_POST['setting'];
 
- 			$setting = array2string($this->sms_setting);
 
- 			setcache('sms', $this->sms_setting_arr);
 
- 			$this->module_db->update(array('setting'=>$setting),array('module'=>'sms'));
 
- 			showmessage(L('operation_success'),HTTP_REFERER);			
 
- 		} else {
 
- 			$show_pc_hash = '';
 
- 			include $this->admin_tpl('sms_setting');
 
- 		}
 
- 	}
 
- 	
 
- 	public function sms_api() {
 
- 		
 
- 		include $this->admin_tpl('sms_api');
 
- 	}
 
- 	
 
- 	public function sms_sent() {
 
- 		if(!$this->sms_setting['sms_enable']) showmessage(L('please_open_sms_platform_status'));
 
- 		if(empty($this->smsapi->userid)) {
 
- 			showmessage(L('need_band'), 'index.php?m=sms&c=sms&a=sms_setting&menuid='.$_GET[menuid].'&pc_hash='.$_SESSION['pc_hash']);
 
- 		}
 
- 		//检查短信余额
 
- 		if($this->sms_setting['sms_key']) {
 
- 			$smsinfo = $this->smsapi->get_smsinfo();
 
- 		}
 
- 		if(isset($_POST['dosubmit'])) {
 
- 			//组合短信参数内容
 
- 			$content = '';
 
- 			if(is_array($_POST['msg']) && !empty($_POST['msg'])){
 
- 				foreach ($_POST['msg'] as $val) { 
 
- 					$val = stripcslashes($val);
 
- 					if($content==''){
 
- 						$content.="$val";
 
- 					}else{
 
- 						$content.="||$val";
 
- 					}
 
- 				}
 
- 			}
 
- 			$mobile = explode("\r\n", trim($_POST['mobile'],"\r\n"));
 
- 			$mobile = array_unique($mobile);
 
- 			$tplid = intval($_POST['tplid']);
 
- 			//过滤非手机号码
 
- 			foreach ($mobile as $k=>$v) {
 
- 				if(!preg_match('/^1([0-9]{9})/',$v)) {
 
- 					unset($mobile[$k]);
 
- 				}
 
- 			}
 
- 			
 
- 			//短信余额不足
 
- 			if($smsinfo['surplus'] < count($mobile)) {
 
- 				showmessage(L('need_more_surplus'));
 
- 			}
 
- 			
 
- 			//发送短信
 
- 			$return = $this->smsapi->send_sms($mobile, $content, $_POST['sendtime'], CHARSET,'',$tplid);
 
- 			
 
- 			showmessage($return, HTTP_REFERER,6000);
 
- 		} else {
 
- 			$smsinfo_arr = $this->smsapi->get_smsinfo();
 
- 			if(!empty($smsinfo_arr['allow_send_ip']) &&!in_array($_SERVER["SERVER_ADDR"],$smsinfo_arr['allow_send_ip'])) {
 
- 				showmessage(L('this_server_does_not_allow_send_sms'));
 
- 			}
 
- 			$start_time = date('Y-m-d', SYS_TIME-date('t', SYS_TIME)*86400);
 
- 			$end_time = date('Y-m-d', SYS_TIME);
 
- 			$grouplist = getcache('grouplist', 'member');
 
- 			foreach($grouplist as $k=>$v) {
 
- 				$grouplist[$k] = $v['name'];
 
- 			}
 
- 			
 
- 			//会员所属模型		
 
- 			$modellistarr = getcache('member_model', 'commons');
 
- 			foreach ($modellistarr as $k=>$v) {
 
- 				$modellist[$k] = $v['name'];
 
- 			}
 
- 			//显示群发
 
- 			$show_qf_url = $this->smsapi->show_qf_url();
 
- 			
 
- 			include $this->admin_tpl('sms_sent');
 
- 		}
 
- 	}
 
- 	
 
- 	/*
 
- 	* 获取短信模版,ajax处理
 
- 	*/
 
- 	public function public_get_tpl(){
 
- 		$sceneid = intval($_GET['sceneid']);
 
- 		if(!$sceneid){exit(0);}
 
- 		//获取服务器场景,组成表单单选项
 
- 		$tpl_arr = $this->smsapi->get_tpl($sceneid);
 
- 		if(!empty($tpl_arr)){
 
- 			exit($tpl_arr);
 
- 		}else{
 
- 			exit(0);
 
- 		}
 
-  	}
 
- 	/*
 
- 	* 显示短信内容,ajax处理
 
- 	*/
 
- 	public function public_show_tpl(){
 
- 		$tplid = intval($_GET['tplid']);
 
- 		if(!$tplid){exit(0);}
 
- 		//获取模版内容
 
- 		$tpl_arr = $this->smsapi->show_tpl($tplid);
 
- 		if(!empty($tpl_arr)){
 
- 			exit($tpl_arr);
 
- 		}else{
 
- 			exit(0);
 
- 		}
 
-  	}
 
- 	public function exportmobile() {
 
- 		$start_time = isset($_POST['start_time']) ? $_POST['start_time'] : '';
 
- 		$end_time = isset($_POST['end_time']) ? $_POST['end_time'] : date('Y-m-d', SYS_TIME);
 
- 		$where_start_time = strtotime($start_time) ? strtotime($start_time) : 0;
 
- 		$where_end_time = strtotime($end_time) + 86400;
 
- 		$groupid = isset($_POST['groupid']) && !empty($_POST['groupid']) ? $_POST['groupid'] : '';
 
- 		$modelid = isset($_POST['modelid']) && !empty($_POST['modelid']) ? $_POST['modelid'] : 10;
 
- 		//开始时间大于结束时间,置换变量
 
- 		if($where_start_time > $where_end_time) {
 
- 			$tmp = $where_start_time;
 
- 			$where_start_time = $where_end_time;
 
- 			$where_end_time = $tmp;
 
- 			$tmptime = $start_time;
 
- 			
 
- 			$start_time = $end_time;
 
- 			$end_time = $tmptime;
 
- 			unset($tmp, $tmptime);
 
- 		}
 
- 		
 
- 		$where = '';
 
- 		if($groupid) {
 
- 			$where .= "`groupid` = '$groupid' AND ";
 
- 		}
 
- 		
 
- 		if($modelid) {
 
- 			$where .= "`modelid` = '$modelid' AND ";
 
- 		}
 
- 		
 
- 		$where .= "`regdate` BETWEEN '$where_start_time' AND '$where_end_time'";
 
- 		//根据条件读取会员主表
 
- 		$total = $this->member_db->count($where);
 
- 		$str = '';
 
- 		$perpage = 10;
 
- 		for($i=0;$i<=floor($total/$perpage);$i++) {
 
- 			$start = $i*$perpage;
 
- 			$data = $this->member_db->select($where, 'userid', "$start, $perpage");
 
- 			$userid_arr = array();
 
- 			foreach ($data as $v) {
 
- 				$userid_arr[] = $v['userid']; 
 
- 			}
 
- 			$uids = to_sqls($userid_arr, '', 'userid');
 
- 			//读取模型表中手机号码字段
 
- 			$this->member_db->set_model($modelid);
 
- 			$data = $this->member_db->select($uids);
 
- 			foreach ($data as $v) {
 
- 				if(!empty($v['mobile'])) {
 
- 					$str .= $v['mobile']."\r\n";
 
- 				}
 
- 			}
 
- 			
 
- 			$this->member_db->set_model();
 
- 		}
 
- 		header("Content-type:application/octet-stream"); 
 
- 		header("Content-Disposition: attachment; filename=mobile.txt"); 
 
- 		echo $str;	
 
- 	}
 
- 	
 
- }
 
 
  |