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;
- }
-
- }
|