select(); Tpl::output('template_list', $template_list); Tpl::showpage('oper_sms'); } public function sms_addOp() { $sms_title = trim($_POST['sms_title']); $yuntx_id = intval(trim($_POST['yuntx_id'])); $sms_content = trim($_POST['sms_content']); if (empty($sms_title) || $yuntx_id <= 0 || empty($sms_content)) { return showMessage("参数错误", 'index.php?act=oper_sms&op=index', '', 'error'); } $sms_template = Model('sms_template'); $data = array('yuntx_id' => $yuntx_id, 'title' => $sms_title, 'content' => $sms_content); $ret = $sms_template->insert($data); if ($ret != false) { showMessage(Language::get('nc_common_save_succ'), 'index.php?act=oper_sms&op=index'); } else { showMessage("存入数据库失败", 'index.php?act=oper_sms&op=index', '', 'error'); } } private function add_params($input, &$err) { $params = []; $params['member']['input_type'] = $input['input_type']; if (empty($input['members'])) { $err = "手机号码或者SQL语句为空"; return false; } else { $params['member']['data'] = $input['members']; } $params['member']['ex_brand'] = $input['ex_brand'] == 'on' ? true : false; $params['member']['ex_lrlz'] = $input['ex_lrlz'] == 'on' ? true : false; if($input['operatetype'] == 'sms') { $tmpid = $input['sms_template']; if ($tmpid <= 0) { $err = "错误的短信模版"; return false; } $params['send']['type'] = 'sms'; $params['send']['data'] = $tmpid; } else { if(empty($input['pushcontet'])) { $err = "push 内容不能为空"; return false; } else { $params['send']['type'] = 'push'; $params['send']['data'] = $input['pushcontet']; } } return $params; } public function send_sms_pushOp() { if (chksubmit()) { $params = $this->add_params($_POST,$error); if($params == false) { showMessage($error,'index.php?act=person_bonus&op=add','','error'); } else { QueueClient::push('sendPushOrSMS',$params); showMessage("成功放入推送队列", 'index.php?act=oper_sms&op=index'); } } else { $items = Model()->table('sms_template')->where(array('disable' => 0))->field('yuntx_id,title,content')->select(); Tpl::output('sms_tpls',$items); Tpl::showpage('oper_send.smspush'); } } public function awaken_userOp() { if(chksubmit()) { } else { Tpl::showpage('oper_send.awaken'); } } public function bonus_awakenOp() { $days = intval($_POST['days']); $paysn = $_POST['paysn']; $amount = floatval($_POST['amount']); if(empty($paysn)) { showMessage("参数错误,paysn 不能为空",'index.php?act=oper_sms&op=awaken_user','','error'); } else { QueueClient::push('onAsyncBroadcastOrder',['pay_sn' => $paysn,'amount' => $amount,'days' => $days]); showMessage("成功放入推送队列", 'ndex.php?act=oper_sms&op=awaken_user'); } } private function format_member_filter($input) { $filters = []; if(isset($input['offtime']) && intval($input['offtime']) > 0) { $filters[] = ['type' => 'offtime', 'days' => intval($input['offtime'])]; } if(isset($input['regtime']) && intval($input['regtime']) > 0) { $filters[] = ['type' => 'regtime', 'days' => intval($input['regtime'])]; } if(isset($input['order_numgt']) && intval($input['order_numgt']) > 0) { $filters[] = ['type' => 'order_numgt', 'count' => intval($input['order_numgt'])]; } if(isset($input['order_days']) && intval($input['order_days']) > 0) { $filters[] = ['type' => 'order_days', 'days' => intval($input['order_days'])]; } if(isset($input['bonus_rate']) && floatval($input['bonus_rate']) > 0) { $filters[] = ['type' => 'bonus_rate', 'rate' => floatval($input['bonus_rate'])]; } if(isset($input['bonus_amount']) && intval($input['bonus_amount']) > 0) { $filters[] = ['type' => 'bonus', 'amount' => intval($input['bonus_amount'])]; } if(isset($input['gift']) && !empty($input['gift'])) { $filters[] = ['type' => 'gift', 'value' => boolval($input['gift'])]; } if(isset($input['invitor']) && !empty($input['invitor'])) { $filters[] = ['type' => 'invitor', 'value' => boolval($input['invitor'])]; } return $filters; } private function format_sms_filter($input) { $filters = []; if(isset($input['sms_offtime']) && intval($input['sms_offtime']) > 0) { $filters[] = ['type' => 'offtime', 'days' => intval($input['sms_offtime'])]; } if(isset($input['sms_regtime']) && intval($input['sms_regtime']) > 0) { $filters[] = ['type' => 'regtime', 'days' => intval($input['sms_regtime'])]; } return $filters; } public function brand_awakenOp() { $amount = intval($_POST['bonus_num']); $brand = trim($_POST['brand']); $openurl = trim($_POST['openurl']); //if(empty($amount) ||empty($brand) || empty($openurl) || empty($et_amount)) { if(empty($amount) ||empty($brand) || empty($openurl)) { showMessage("参数错误,红包金额或宣传品牌或传送地址 不能为空",'index.php?act=oper_sms&op=awaken_user','','error'); } else { $filters = [ 'member_filters' => [], 'sms_filters' => [] ]; $send_params =['type' => Sms::tpl_new_goods, 'sms_params' => ['day' => '周一','amount' => $amount,'brand' => $brand,'url' => $openurl], 'push_params' => []]; $member_filters = $this->format_member_filter($_POST); if(count($member_filters)){ $filters['member_filters'] = $member_filters; } $sms_filters = $this->format_sms_filter($_POST); if(count($sms_filters)){ $filters['sms_filters'] = $sms_filters; } $oper_param = ['type' => 'bonus','rate' => 30,'amount' => 50]; if(isset($_POST['bonus_amount']) && intval($_POST['bonus_amount']) > 0) { $oper_param = ['type' => 'bonus','rate' => 30,'amount' => intval($_POST['bonus_amount'])]; } QueueClient::push('onAsyncBroadcastNormal',['filters' => $filters,'oper_param' => $oper_param,'send_params' => $send_params]); showMessage("成功放入推送队列", 'index.php?act=oper_sms&op=awaken_user'); } } public function view_usersOp() { $filter_params = $this->format_member_filter($_POST); if(!empty($filter_params)) { $filters = async\filter::create($filter_params); $broadcast = new async\broadcast($filters); $match_users = $broadcast->count(); if($match_users > 0){ showMessage("有 ". $match_users. " 个用户符合筛选条件", '','json','succ'); } else { showMessage("没有用户符合筛选条件", '','json','error'); } } else { showMessage("请设置筛选条件", '','json','error'); } } }