_request = kernel::single('base_component_request'); $this->sampleMdl = $this->app->model('sms_sample'); } /** * 短信模板列表 * * @param void * @return html * @author **/ public function index() { $params = array( 'title'=>'短信模板', 'use_buildin_recycle'=>false, 'actions'=>array( array( 'label' => '添加模板', 'href' => 'index.php?app=taoexlib&ctl=admin_sms_sample&act=add_sample', 'target' => 'dialog::{width:900,height:600,title:\'添加模板\'}' ), array( 'label' => '删除', 'submit' => 'index.php?app=taoexlib&ctl=admin_sms_sample&act=del_sample', 'confirm' =>"确定删除选中模板?删除后不可恢复!" ), array( 'label' => '同步模板状态', 'href' => 'index.php?app=taoexlib&ctl=admin_sms_sample&act=sync_sample', 'target' => 'dialog::{width:600,height:400,title:\'同步模板状态\'}' ), ), 'base_filter' => array('disabled'=>'false'), ); $this->finder('taoexlib_mdl_sms_sample', $params); } /** * 显示菜单 * * @param void * @return html * @author **/ public function _views() { $sub_menu = $this->_allVeiw(); return $sub_menu; } /** * 显示所有未删除的模板 * * @param void * @return array * @author **/ public function _allVeiw() { $sms_sample = $this->app->model('sms_sample'); $base_filter = array('disabled'=>'false'); $sub_menu = array( 0 => array('label'=>app::get('taoexlib')->_('全部'),'filter'=>$base_filter,'optional'=>false), ); foreach($sub_menu as $k=>$v){ $sub_menu[$k]['filter'] = $v['filter']?$v['filter']:null; $sub_menu[$k]['addon'] = $sms_sample->count($v['filter']); $sub_menu[$k]['href'] = 'index.php?app=taoexlib&ctl='.$_GET['ctl'].'&act='.$_GET['act'].'&view='.$k++; } return $sub_menu; } /** * 显示添加模板页面 * * @param void * @return html * @author **/ public function add_sample() { $this->pagedata['type_list'] = taoexlib_sms::getEventTypes(); $this->pagedata['add_img'] = kernel::base_url(1).'/app/desktop/statics/bundle/btn_add.gif'; $this->page("admin/sms/sample.html"); } /** * 显示编辑模板页面 * * @param void * @return html * @author **/ public function edit_sample() { $ids = $this->_request->get_get('p'); $id = $ids[0]; $sampleInfo = $this->sampleMdl->select()->columns()->where('id=?',$id)->instance()->fetch_row(); if(count($sampleInfo)>0){ $this->pagedata['type_list'] = taoexlib_sms::getEventTypes(); $this->pagedata['add_img'] = kernel::base_url(1).'/app/desktop/statics/bundle/btn_add.gif'; $this->pagedata['info'] = $sampleInfo; $this->pagedata['current_send_type'] = $sampleInfo['send_type']; $this->pagedata['action_flag'] = "edit"; } else { $this->pagedata['nosample'] = 'true'; } $this->page("admin/sms/sample.html"); } /** * 保存模板信息(包括编辑和添加) * * @param void * @return html * @author **/ public function save_sample() { $this->begin(""); $param =$this->_request->get_post(); if(!$param['title']){ $this->end(false,app::get('taoexlib')->_('请填写模板标题')); } if(!$param['content']){ $this->end(false,app::get('taoexlib')->_('请填写模板内容')); } #判断内容是否有签名 preg_match('/\{(短信签名)\}/',$param['content'],$filtcontent); preg_match('/\【(.*?)\】$/',$param['content'],$filtcontent1); if (!$filtcontent && !$filtcontent1) { $this->end(false,app::get('taoexlib')->_('请确认模板内容是否有短信签名')); } if ($filtcontent && $filtcontent1) { $this->end(false,app::get('taoexlib')->_('短信签名和【】一个模板只能包含其一!')); } $send_types = array_keys(taoexlib_sms::getEventTypes()); if (!in_array($param['send_type'], $send_types) ){ $this->end(false,app::get('taoexlib')->_('发送类型非法')); } if(!$param['sample_no']){ $this->end(false,app::get('taoexlib')->_('请填写模板内容')); } $no = $this->sampleMdl->select()->columns()->where('sample_no=?',$param['sample_no'])->instance()->fetch_row(); if(is_array($no) && count($no)>0&&($param['id']!=$no['id'])){ $this->end(false,app::get('taoexlib')->_('模板编号不能重复')); } $param['status'] = $param['status']=='true'?1:0; if($param['id']&&($param['status'])==0){ $res = $this->isStop($param['id']); if(count($res)>0){ $this->end(false,app::get('taoexlib')->_('模板对应的绑定关系绑定为开启,无法暂停!')); } } $result = $this->sampleMdl->save_sample($param); if ($result) { if (!$filtcontent && $filtcontent1) { kernel::single('taoexlib_request_sms')->newoauth_request(array('sms_sign'=>$filtcontent1[0])); } $this->end(true,app::get('taoexlib')->_('保存成功')); } else { $this->end(false,app::get('taoexlib')->_('保存失败,请重新添加')); } } /** * 逻辑删除模板 * * @param string * @return json * @author **/ public function del_sample() { $this->begin("index.php?app=taoexlib&ctl=admin_sms_sample&act=index"); $ids = $this->_request->get_post('id'); $sampleInfo = $this->sampleMdl->getList('status,id',array('id|in'=>$ids)); foreach ($sampleInfo as $key => $info) { if (!$this->_is_del($info['id'],$msg)) { $this->end(false,app::get('taoexlib')->_($msg)); }else{ $this->sampleMdl->delete(array('id'=>$info['id'])); } } $this->end(true,app::get('taoexlib')->_('删除成功')); } /** * 模板是否可以删除 * * @param $sample_id * @return bool * @author **/ private function _is_del($sample_id,&$msg) { $bindInfos = app::get('taoexlib')->model('sms_bind')->getList('is_default,status', array('id'=>$sample_id)); foreach ($bindInfos as $bindInfo) { if($bindInfo['is_default']=='1'){ $msg = '此模板与默认绑定关系绑定,无法删除'; return false; } if(count($bindInfo)>0){ $msg = '请先删除绑定关系,再删除模板'; return false; } } return true; } /** * 设置模板启用状态 * * @param void * @return void * @author **/ public function setStatus($id,$status) { if($status =='1'){ //暂停检查有无对应规则使用此模板 if (!$this->isStop($id)) { $ruleList = '模板对应的绑定关系绑定为开启,无法暂停!'; echo ""; exit; }else{ $now_status = '0'; } }else{ $now_status = '1'; } $data = array('id'=>$id,"status"=>$now_status); app::get('taoexlib')->model('sms_sample')->save($data); echo ""; exit; } /** * 检查是否可以暂停模板 * * @param void * @return array * @author **/ public function isStop($sample_id) { $rs = $this->sampleMdl->getOpenBindBySampleId($sample_id); if (isset($rs['status'])&&($rs['status']=='1')) { return false; } return true; } public function getTmplConf(){ $eventType = $_POST['event_type']; $conf = kernel::single('taoexlib_sms')->getTmplConfByEventType($eventType); echo json_encode($conf);exit; } /** * 更新短信模板审核状态 * * @param void * @return * @author **/ public function sync_sample(){ $finder_id = $_GET['finder_id']; $this->pagedata['finder_id'] = $finder_id; unset($finder_id); $this->page("admin/sync_sample.html"); } public function do_sync_sample(){ $result = kernel::single('taoexlib_request_sms')->sms_request('list','get',$param); echo json_encode($result); } /** * Short description. * @param type $varname description * @return type description * @access public * @author cyyr24@sina.cn */ function send() { kernel::single('taoexlib_delivery_sms')->deliverySendMessage(4); } /** * 模板列表. * @param * @return type description * @access public * @author cyyr24@sina.cn */ public function list_sample($id) { $params = array( 'title'=>'商品列表', 'use_buildin_new_dialog' => false, 'use_buildin_set_tag'=>false, 'use_buildin_recycle'=>false, 'use_buildin_export'=>false, 'use_buildin_import'=>false, 'use_buildin_filter'=>true, 'base_filter' => '', ); $this->finder('taoexlib_mdl_sms_sample_items', $params); } }