load->library('session'); $this->load->_model('Model_user','user'); $this->load->_model('Model_notice','notice'); $this->load->_model('Model_noticeemail','noticeemail'); $this->load->_model('Model_shop','shop'); $this->load->_model('Model_typeclass','typeclass'); $this->load->_model('Model_fullorder','fullorder'); $this->load->_model('Model_fullordertt','fullordertt'); $this->load->_model('Model_fullordersmt','fullordersmt'); $this->load->_model('Model_express','express'); $this->load->_model('Model_emaildata','emaildata'); $this->load->_model('Model_als','als'); $this->load->_model('Model_apitt','apitt'); } //定义方法的调用规则 获取URI第二段值 public function _remap($arg,$arg_array) { if($arg == 'add')//添加 { $this->_add($arg_array); } else if($arg == 'edit')//修改 { $this->_edit($arg_array); } else if($arg == 'del')//修改 { $this->_del(); } else if($arg == 'rows')//数据 { $this->_rows(); } else if($arg == 'email') { $this->_email(); } else if($arg == 'addemail') { $this->_addemail(); } else if($arg == 'emailfs') { $this->_emailfs(); } else if($arg == 'testfs') { $this->_testfs(); } else { $this->_index($arg_array); } } //管理 public function _index($arg_array) { if(isset($_SESSION['api'])) { $user = $this->user->get_api($_SESSION['api']); $fgshop = "";$sid = ""; $user = explode('|',trim($user['shop'],'|')); foreach ($user as $value) { $fgshop .= " shop = ".$value." or"; $sid .= " id = ".$value." or"; } } $post = $this->input->post(NULL, TRUE); if(isset($post['page'])) { $page = $this->input->post('page',true); $perpage = $this->input->post('perpage',true); $shop = $this->input->post('shop',true); $type = $this->input->post('type',true); $ordertatus = $this->input->post('ordertatus',true); $arg = $this->input->post('arg',true); $logisticstatus = $this->input->post('logisticstatus',true); $where = "1=1 and (".rtrim($fgshop,'or').")"; if($shop) { $where .= " and shop = '$shop'"; } if($type) { $where .= " and type = '$type'"; } if($ordertatus) { $where .= " and ordertatus = '$ordertatus'"; } if($logisticstatus) { $where .= " and logisticstatus = '$logisticstatus'"; } //数据排序 $order_str = "id asc"; if(empty($page)) { $start = 0; $perpage = 1; } else { $start = ($page - 1)*$perpage; } //取得信息列表 $info_list = $this->notice->find_all($where,'id,shop,title,type,message,email,ordertatus,logisticstatus,ktime,jtime,state',$order_str,$start,$perpage); //格式化数据 foreach ($info_list as $key=>$value) { $shop = $this->shop->read($value['shop']); $info_list[$key]['shop'] = $shop['shopname']; $email = $this->emaildata->read($value['email']); $info_list[$key]['email'] = $email['smtp_user']; $info_list[$key]['ktime'] = date('Y-m-d',$value['ktime']); $info_list[$key]['jtime'] = date('Y-m-d',$value['jtime']); if($value['type'] == 1) { $info_list[$key]['type'] = '自动发送'; } else if($value['type'] == 2) { $info_list[$key]['type'] = '物流追踪'; } else if($value['type'] == 3) { $info_list[$key]['type'] = '营销'; } else if($value['type'] == 4) { $info_list[$key]['type'] = '运单号通知'; } if($value['message'] == 1) { $info_list[$key]['message'] = '发送邮件'; } //订单状态开始 $typeclass = $this->typeclass->read($value['ordertatus']); $info_list[$key]['ordertatus'] = $typeclass?(($arg==1)?$typeclass['title']:$typeclass['spare']):''; //订单状态结束 if($value['logisticstatus'] == 0) { $info_list[$key]['logisticstatus'] = "无信息"; } else if($value['logisticstatus'] == 2) { $info_list[$key]['logisticstatus'] = "已取件"; } else if($value['logisticstatus'] == 3) { $info_list[$key]['logisticstatus'] = "在途中"; } /** else if($value['logisticstatus'] == 4) { $info_list[$key]['logisticstatus'] = "到达目的地国"; } **/ else if($value['logisticstatus'] == 4 || $value['logisticstatus'] == 5) { $info_list[$key]['logisticstatus'] = "即将派送"; } else if($value['logisticstatus'] == 6) { $info_list[$key]['logisticstatus'] = "已签收"; } else if($value['logisticstatus'] == 1) { $info_list[$key]['logisticstatus'] = "派送异常"; } if($value['message'] == 1) { $info_list[$key]['message'] = '发送邮件'; } else if($value['message'] == 2) { $info_list[$key]['message'] = 'AE站内信'; } else if($value['message'] == 3) { $info_list[$key]['message'] = 'TT会话'; } if($value['state'] == 1) { $info_list[$key]['state'] = '启用中'; } else if($value['state'] == 2) { $info_list[$key]['state'] = '未启用'; } } $total = $this->notice->find_count($where); $pagenum = ceil($total/$perpage); $over = $total-($start+$perpage); $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list)); echo json_encode($rows);exit; } $wlshop = $this->shop->find_all('1=1 and '.rtrim($sid,'or')); $this->data['wlshop'] = $wlshop; $mb = 2; if(isset($arg_array[0])) { if($arg_array[0]=='smt') { $mb = 1; } else if($arg_array[0]=='dlz') { $mb = 2; } else if($arg_array[0]=='tt') { $mb = 3; } } $this->data['arg'] = $mb; $this->_Template('notice',$this->data); } //添加 public function _add($arg_array) { if(isset($_SESSION['api'])) { $user = $this->user->get_api($_SESSION['api']); $fgshop = "";$sid = ""; $user = explode('|',trim($user['shop'],'|')); foreach ($user as $value) { $fgshop .= " shop = ".$value." or"; $sid .= " id = ".$value." or"; } } $post = $this->input->post(NULL, TRUE); if(isset($post['title'])) { $post['title'] = $this->input->post('title',true); $post['shop'] = $this->input->post('shop',true); $post['message'] = $this->input->post('message',true); $post['type'] = $this->input->post('type',true); $post['repeat'] = $this->input->post('repeat',true); $ktime = $this->input->post('ktime',true); $post['ktime'] = strtotime($ktime); $jtime = $this->input->post('jtime',true); $post['jtime'] = strtotime($jtime); $post['content'] = $this->input->post('content'); $emailtitle = $this->input->post('emailtitle'); $post['js'] = ''; if($emailtitle) { $post['emailtitle'] = $emailtitle; } if($post['type'] == 1) { $post['ordertatus'] = $this->input->post('ordertatus',true); if($post['ordertatus'] == 2 || $post['ordertatus'] == 3) { $post['sending'] = $this->input->post('sending',true); $post['timeinterval'] = $this->input->post('timeinterval',true); } } else if($post['type'] == 2) { $post['logisticstatus'] = $this->input->post('logisticstatus',true); } else if($post['type'] == 3) { $marketing = $this->input->post('marketing',true); $post['marketing'] = strtotime($marketing); } else if($post['type'] == 4) { $post['js'] = $this->input->post('js',true); if($post['js'] != '') { $post['js'] = ','.$post['js']; } $post['express'] = $this->input->post('express',true); if($post['express'] != '') { $post['express'] = ','.$post['express']; } } $post['state'] = $this->input->post('state',true); if($post['state'] == 1) { $post['statetime'] = time(); } if($this->notice->insert($post)) { echo json_encode(array('msg'=>'添加成功','success'=>true));exit; } else { echo json_encode(array('msg'=>'添加失败,请重试','success'=>false));exit; } } $wlshop = $this->shop->find_all('1=1 and '.rtrim($sid,'or')); $this->data['wlshop'] = $wlshop; $email = $this->emaildata->find_all('1=1 and '.rtrim($fgshop,'or')); $this->data['email'] = $email; $mb = 2; if(isset($arg_array[0])) { if($arg_array[0]=='smt') { $mb = 1; } else if($arg_array[0]=='dlz') { $mb = 2; } else if($arg_array[0]=='tt') { $mb = 3; } } $this->data['arg'] = $mb; $this->_Template('notice_add',$this->data); } //修改 public function _edit($arg_array) { if(isset($_SESSION['api'])) { $user = $this->user->get_api($_SESSION['api']); $fgshop = "";$sid = ""; $user = explode('|',trim($user['shop'],'|')); foreach ($user as $value) { $fgshop .= " shop = ".$value." or"; $sid .= " id = ".$value." or"; } } $post = $this->input->post(NULL, TRUE); if(isset($post['id'])) { $id = $this->input->post('id',true); $post['title'] = $this->input->post('title',true); $post['shop'] = $this->input->post('shop',true); $post['message'] = $this->input->post('message',true); $post['type'] = $this->input->post('type',true); $post['repeat'] = $this->input->post('repeat',true); $ktime = $this->input->post('ktime',true); $post['ktime'] = strtotime($ktime); $jtime = $this->input->post('jtime',true); $post['jtime'] = strtotime($jtime); $post['content'] = $this->input->post('content'); $post['emailtitle'] = $this->input->post('emailtitle'); $post['js'] = ''; if($post['type'] == 1) { $post['ordertatus'] = $this->input->post('ordertatus',true); if($post['ordertatus'] == 2 || $post['ordertatus'] == 3) { $post['sending'] = $this->input->post('sending',true); $post['timeinterval'] = $this->input->post('timeinterval',true); } $post['logisticstatus'] = 0; } else if($post['type'] == 2) { $post['ordertatus'] = 0;//非订单状态写入:未获取 $post['logisticstatus'] = $this->input->post('logisticstatus',true); } else if($post['type'] == 3) { $post['ordertatus'] = 0;//非订单状态写入:未获取 $marketing = $this->input->post('marketing',true); $post['marketing'] = strtotime($marketing); } else if($post['type'] == 4) { $post['js'] = $this->input->post('js',true); if($post['js'] != '') { $post['js'] = ','.$post['js']; } $post['express'] = $this->input->post('express',true); if($post['express'] != '') { $post['express'] = ','.$post['express']; } } $post['state'] = $this->input->post('state',true); if($post['state'] == 1) { $post['statetime'] = time(); } if($this->notice->save($post,$id)) { echo json_encode(array('msg'=>'修改成功','success'=>true));exit; } else { echo json_encode(array('msg'=>'修改失败,请重试','success'=>false));exit; } } $notice = $this->notice->read($arg_array[0]); $this->data['notice'] = $notice; $wlshop = $this->shop->find_all('1=1 and '.rtrim($sid,'or')); $this->data['wlshop'] = $wlshop; $email = $this->emaildata->find_all('1=1 and '.rtrim($fgshop,'or')); $this->data['email'] = $email; $mb = 2; if(isset($arg_array[0])) { if($arg_array[0]=='smt') { $mb = 1; } else if($arg_array[0]=='dlz') { $mb = 2; } else if($arg_array[0]=='tt') { $mb = 3; } } $this->data['arg'] = $mb; $this->_Template('notice_edit',$this->data); } //删除 public function _del() { $post = $this->input->post(NULL, TRUE); if(isset($post['s'])) { $id_arr = $this->input->post('s'); $id_arr = explode(',',$id_arr); if(!$id_arr) { echo json_encode(array('msg'=>'参数错误!','success'=>false));exit; } //循环删除记录 foreach ($id_arr as $v) { $this->notice->remove($v); } echo json_encode(array('del'=>$id_arr,'msg'=>'删除记录成功!','success'=>true)); } } public function _email() { if(isset($_SESSION['api'])) { $user = $this->user->get_api($_SESSION['api']); $fgshop = "";$sid = ""; $user = explode('|',trim($user['shop'],'|')); foreach ($user as $value) { $fgshop .= " shop = ".$value." or"; $sid .= " id = ".$value." or"; } } $post = $this->input->post(NULL, TRUE); if(isset($post['page'])) { $page = $this->input->post('page',true); $perpage = $this->input->post('perpage',true); $shop = $this->input->post('shop',true); $email = $this->input->post('email',true); $notice = $this->input->post('notice',true); $xztime = $this->input->post('xztime',true); $timetk = $this->input->post('timetk',true); $timetj = $this->input->post('timetj',true); $timetk = strtotime($timetk); $timetj = strtotime($timetj); $where = "1=1 and (".rtrim($fgshop,'or').")"; if($shop) { $where .= " and shop = '$shop'"; } if($email) { $where .= " and email like '%$email%'"; } if($notice) { $where .= " and notice = '$notice'"; } if($timetk && $timetj) { $where .= " and ".$xztime." > '$timetk' and ".$xztime." < '$timetj'"; } //数据排序 $order_str = "id desc"; if(empty($page)) { $start = 0; $perpage = 1; } else { $start = ($page - 1)*$perpage; } //取得信息列表 $info_list = $this->noticeemail->find_all($where,'id,shop,email,notice,addtime,time',$order_str,$start,$perpage); //格式化数据 foreach ($info_list as $key=>$value) { $data = $this->noticeemail->read($value['id']); $shop = $this->shop->read($value['shop']); $info_list[$key]['shop'] = $shop['shopname']; $info_list[$key]['addtime'] = date('Y-m-d H:i:s',$value['addtime']); if(is_numeric($value['time']) && $value['time'] > 0) { $info_list[$key]['time'] = date('Y-m-d H:i:s',$value['time']); } else { $info_list[$key]['time'] = ''; if($data['error'] != '') { $info_list[$key]['time'] = $data['error']; } } $notice = $this->notice->read($value['notice']); $info_list[$key]['notice'] = $notice['title']; } $total = $this->noticeemail->find_count($where); $pagenum = ceil($total/$perpage); $over = $total-($start+$perpage); $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list)); echo json_encode($rows);exit; } $wlshop = $this->shop->find_all('1=1 and '.rtrim($sid,'or')); $this->data['wlshop'] = $wlshop; $notice = $this->notice->find_all("message = 1 and type = '3' and (".rtrim($fgshop,'or').")"); $this->data['notice'] = $notice; $this->_Template('notice_email',$this->data); } public function _addemail() { if(isset($_SESSION['api'])) { $user = $this->user->get_api($_SESSION['api']); $fgshop = "";$sid = ""; $user = explode('|',trim($user['shop'],'|')); foreach ($user as $value) { $fgshop .= " shop = ".$value." or"; $sid .= " id = ".$value." or"; } } $post = $this->input->post(NULL, TRUE); if(isset($post['email'])) { $time = time();$cw = '';$i = 0;$fs = ''; $notice = $this->input->post('notice',true); $n = $this->notice->read($notice); $email = $this->input->post('email',true); $email = str_replace(PHP_EOL, ',', $email); $email = explode(',',trim($email,',')); $this->db->trans_begin(); foreach ($email as $v) { $f = $this->fullorder->find_all("email = '$v' and shop = '".$n['shop']."'",'*','id desc'); if(isset($f[0]['email'])) { $tid = $this->noticeemail->insert(array('shop'=>$f[0]['shop'],'email'=>$v,'notice'=>$notice,'addtime'=>$time)); $fs .= $f[0]['id'].'-'.$tid.','; } else { $i++; $cw .= $v.','; } } if(count($email) == $i) { echo json_encode(array('msg'=>'Email地址全部错误,请排查!','success'=>false));exit; } if($this->db->trans_status() === TRUE) { $this->db->trans_commit(); $ch = curl_init(); $url = 'http://a'.rand(10,50).'.wepolicy.cn/notice/emailfs'; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_TIMEOUT,1); //设置post数据 $post = array(); $post['notice'] = $notice; $post['fs'] = trim($fs,','); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($post)); $res = curl_exec($ch); curl_close($ch); if($i > 0) { echo json_encode(array('msg'=>'有错误Email地址,请排查!其它正常发送中。
错误Email:
'.trim($cw,',').'
','success'=>true));exit; } else { echo json_encode(array('n'=>0,'msg'=>'添加成功,邮件逐条发送中','success'=>true));exit; } } else { $this->db->trans_rollback(); echo json_encode(array('msg'=>'系统错误,请重试!!','success'=>false));exit; } } $notice = $this->notice->find_all("message = 1 and type = '3' and (".rtrim($fgshop,'or').")"); $this->data['notice'] = $notice; $this->_Template('notice_addemail',$this->data); } public function _emailfs() { $time = time(); $post = $this->input->post(NULL, TRUE); if(isset($post['notice'])) { $notice = $this->input->post('notice'); $notice = $this->notice->read($notice); $notice['email'] = $this->emaildata->read($notice['email']); $fs = $this->input->post('fs'); $fs = explode(',',$fs); foreach ($fs as $v) { $v = explode('-',$v); $data = $this->fullorder->read($v[0]); $shop = $this->shop->read($data['shop']); $express = $this->express->read($data['express']); $this->als->save(array('cs'=>json_encode(array($data,$shop,$express,$notice))),1); $go = $this->notice->get_god($data,$shop,$express,$notice); if($go == 1) { $this->noticeemail->save(array('time'=>time()),$v[1]); } else { $this->noticeemail->save(array('error'=>$go),$v[1]); } sleep(50); } } } public function _testfs() { $time = time(); $post = $this->input->post(NULL, TRUE); if(isset($post['id'])) { $id = $this->input->post('id'); $email = $this->input->post('email'); $number = $this->input->post('number'); $data = $this->fullorder->get_number($number); if(!$data) { $data = $this->fullordersmt->get_number($number); if(!$data) { $data = $this->fullordertt->get_number($number); if(!$data) { echo json_encode(array('msg'=>'编号无效!','success'=>false));exit; } } } else { if(!$email) { echo json_encode(array('msg'=>'请输入邮箱!','success'=>false));exit; } } $data['email'] = $email; $shop = $this->shop->read($data['shop']); $express = $this->express->read($data['express']); $id_arr = explode(',',trim($id,','));$i = 0; foreach ($id_arr as $v) { $notice = $this->notice->read($v); if($notice) { $notice['email'] = $this->emaildata->read($notice['email']); $go = $this->notice->get_god($data,$shop,$express,$notice); if($go == 1) { $i++; } } } if($i == count($id_arr)) { echo json_encode(array('msg'=>'发送成功','success'=>false));exit; } else { echo json_encode(array('msg'=>'有部分发送失败'.$go,'success'=>false));exit; } } } }