public function view_replyMessageForm() { $msgids = isset($_GET['msgids']) ? trim($_GET['msgids']) : ''; if ($msgids === '') { //没指定id $msgdata = array('data' => array('请指定要回复的message'), 'link' => 'index.php?mod=amazonMessagefilter&act=getMessageListByConditions'); goErrMsgPage($msgdata); exit; } /*----- 获得message信息 -----*/ $idar = explode(',', $msgids); $idar = array_map('intval', $idar); //一次打开的所有邮件的id集 $emails = array(); $ordernums = array(); $order_obj = new AmazonOrderModel(); $msg_obj = new amazonmessageModel(); $msg_list = $msg_obj->getMessageInfo($idar); foreach ($msg_list as &$entity) { $entity['sendtime'] = date('Y-m-d H:i:s', $entity['sendtime']); //$emails[$entity['id']] = $entity['sendid']; //$ordernums[$entity['id']] = $entity['ordernum']; //$BuyerandSeller = $order_obj->getAmazonBuyerandSeller($entity['ordernum'], $entity['sendid']); //$BuyerandSeller = isset($BuyerandSeller[0]) ? $BuyerandSeller[0] : $BuyerandSeller; if (file_exists($entity['messagepath'])) { //检测message文件是否存在 $entity['msgcontent'] = file_get_contents($entity['messagepath']); } else { $entity['msgcontent'] = "残念,暂时木有找到邮件本体!<br />邮件id: " . $entity['message_id'] . "<br />邮件发送时间: " . $entity['sendtime']; } } /*----- 获得message信息 -----*/ /*----- 获得模板信息 -----*/ $tpl_obj = new AmazonMessageTemplateModel(); $tpl_list = $tpl_obj->getTplList($_SESSION['globaluserid'], array('id', 'name', 'type', 'content')); // print_r($tpl_list);exit; $this->smarty->assign('tpllist', $tpl_list); /*----- 获得模板信息 -----*/ /*----- 获得文件夹分类列表 -----*/ $categorylist = new amazonmessagecategoryModel(); $cat_list = $categorylist->getAllCategoryInfoList(); $this->smarty->assign('catlist', $cat_list); /*----- 获得文件夹分类列表 -----*/ $this->smarty->assign('msglist', $msg_list); $this->smarty->assign('sec_menue', 5); $this->smarty->assign('toplevel', 0); $this->smarty->assign('toptitle', 'message回复'); $this->smarty->display('msgreplyAmazon.htm'); }
public function view_ajaxDelCategory() { $cid = isset($_GET['cid']) ? $_GET['cid'] : 0; if (!is_numeric($cid)) { //传入数据非数字 $msgar = array('code' => 6001, 'msg' => 'id不合法'); echo json_encode($msgar); exit; } if ($cid === 0) { //没有传入分类id $msgar = array('code' => 6004, 'msg' => '未指定分类id'); echo json_encode($msgar); exit; } $msg_obj = new amazonmessageModel(); $num = $msg_obj->getNumber($cid); if ($num) { $msgar = array('code' => 6005, 'msg' => '该分类下邮件不为空,不能删除!'); echo json_encode($msgar); exit; } $msgcat_obj = new amazonmessagecategoryModel(); $result = $msgcat_obj->delCategoryById($cid); if ($result) { //删除成功 $msgar = array('code' => 6002, 'msg' => '删除成功!'); echo json_encode($msgar); exit; } else { $msgar = array('code' => 6003, 'msg' => '删除失败!'); echo json_encode($msgar); exit; } }
public function handleSubmitData() { extract($this->generateInfo()); $cids = isset($_POST['catids']) ? $_POST['catids'] : array(); $userid = isset($_POST['userid']) ? $_POST['userid'] : FALSE; if ($userid === FALSE) { $msgdata = array('data' => array('没指定用户!'), 'link' => $gobackurl); goErrMsgPage($msgdata); exit; } $msgcat_obj = new amazonmessagecategoryModel(); $catidlist = $msgcat_obj->getAllCategoryInfoList('', 'id'); $original = array(); foreach ($catidlist as $value) { $original[] = $value['id']; } $finalids = array_intersect($original, $cids); //保证提交的分类id都是该用户有拥有权限的分类id $powerlist = implode(',', $finalids); $lp_obj = new LocalPowerAmazonModel(); $upresult = $lp_obj->{$updatefunc}($userid, $powerlist); print_r($upresult); if ($upresult) { $msgdata = array('data' => array('成功!'), 'link' => $gobackurl); goOkMsgPage($msgdata); exit; } else { $msgdata = array('data' => array('失败!'), 'link' => $gobackurl); goErrMsgPage($msgdata); exit; } }
<?php /* * Amazon邮件抓取脚本 */ error_reporting(E_ALL); include_once __DIR__ . '/../framework.php'; // 加载框架 Core::getInstance(); // 初始化框架对象 include_once WEB_PATH . 'lib/Get_Email.class.php'; include_once WEB_PATH . 'lib/opensys_functions.php'; $mail = new Get_Email(); $account_obj = new AmazonAccountModel(); $msg_obj = new amazonmessageModel(); $msgcat_obj = new amazonmessagecategoryModel(); $fam_obj = new FetchAmazonMessageModel(); $accounts = $account_obj->getAmazonAccountsGmail(); $path = ''; $connect = array(); $n = 0; foreach ($accounts as $ac) { if ($ac['amazon_account'] != "{$argv['1']}") { continue; } $path = WEB_PATH . 'crontab/gmaillib/' . $ac['amazon_account'] . '/' . preg_split('/@/', $ac['gmail'])[0] . '/' . date('Y-m-d') . '/'; $connect = $mail->mailConnect('imap.gmail.com', '993', $ac['gmail'], base64_decode($ac['password']), 'INBOX', 'ssl'); if (!$connect) { die('连接失败'); } else { echo "连接成功\r\n";
public function view_ajaxChangeAmazonMessagesCategory() { $ids = isset($_GET['msgids']) ? trim($_GET['msgids']) : ''; if (empty($ids)) { //没指定邮件在表中的id $msgdata = array('errCode' => 10001, 'errMsg' => '请指定id'); echo json_encode($msgdata); exit; } $idar = clearData($ids); //要移动分类的邮件id数组 if (empty($idar)) { $msgdata = array('errCode' => 10002, 'errMsg' => '请指定id'); echo json_encode($msgdata); exit; } $catid = isset($_GET['cid']) ? intval(trim($_GET['cid'])) : 0; if ($catid == 0) { $msgdata = array('errCode' => 10004, 'errMsg' => '请指定分类id'); echo json_encode($msgdata); exit; } if (!is_numeric($catid)) { $msgdata = array('errCode' => 10003, 'errMsg' => '分类id不正确'); echo json_encode($msgdata); exit; } $msgcat_obj = new amazonmessagecategoryModel(); $catinfo = $msgcat_obj->getCategoryInfoById($catid); //查看移动的目的分类是否存在 if (empty($catinfo)) { $msgdata = array('errCode' => 10007, 'errMsg' => '分类id不正确'); echo json_encode($msgdata); exit; } $msg_obj = new amazonmessageModel(); $result = $msg_obj->moveMessagesToSpecifiedCategory($idar, $catid); if ($result) { $msgdata = array('errCode' => 10006, 'errMsg' => '执行成功!'); echo json_encode($msgdata); exit; } else { $msgdata = array('errCode' => 10005, 'errMsg' => '执行失败!'); echo json_encode($msgdata); exit; } }
public function view_messageStatistics() { $starttime = isset($_GET['starttime']) ? trim($_GET['starttime']) : ''; $endtime = isset($_GET['endtime']) ? trim($_GET['endtime']) : ''; $this->smarty->assign('starttime', $starttime); $this->smarty->assign('endtime', $endtime); $wheresql = ''; if (!empty($starttime)) { $start_stamp = strtotime($starttime); } else { $start_stamp = strtotime(date('Y-m-d')); //没有开始时间就默认为当前日期 } if (!empty($endtime)) { $end_stamp = strtotime($endtime); } else { $end_stamp = $start_stamp + 86399; //没有结束时间就默认为开始时间加到这天的最后一秒 } if ($starttime == $endtime) { $end_stamp = $start_stamp + 86399; } $wheresql .= '(replytime between ' . $start_stamp . ' and ' . $end_stamp . ')'; /*获得文件夹列表*/ $cat_obj = new amazonmessagecategoryModel(); $list = $cat_obj->getAllCategoryInfoList(''); $catgroup = array(); $finalcatgroup = array(); //print_r($list);exit; /*----- 生成数组形式的客服及其所属分类id -----*/ foreach ($list as $v) { $catname = $v['category_name']; $breakar = explode('-', $catname); if (isset($breakar[1])) { if (array_key_exists($breakar[1], $catgroup)) { $catgroup[$breakar[1]][] = $v['id']; } else { $catgroup[$breakar[1]] = array($v['id']); } } } // print_r($catgroup); $localUser_obj = new GetLoacalUserModel(); $userlist = array(); $userlist = $localUser_obj->getUserInfo(74); //获得所有的74部门的成员 $name2id = $localUser_obj->getUserId($userlist); $userlist_tmp = array_flip($name2id); //print_r($userlist_tmp); //这是防止创建人不是74部的 foreach ($catgroup as $name => $cid) { if (in_array($name, $userlist_tmp)) { $finalcatgroup[$name] = $cid; } } // print_r($finalcatgroup); $idsql = implode(',', $name2id); //根据上边的全局id查询某个id回复了的邮件数 $sql_user = "******"; //echo $sql_user; $query_re = mysql_query($sql_user); $userReply = array(); //为对应的全局id和回复的邮件数 while ($urow = mysql_fetch_assoc($query_re)) { $userReply[$urow['replyuser_id']] = $urow['num']; } //print_r($userReply); /*----- 生成统计信息 -----*/ /*----- 以下是先获取所有的邮件回复状况 -----*/ $sql = "select classid, status, count(status) as num from msg_amazonmessage where ( {$wheresql} ) or replytime is null group by classid , status"; // echo $sql; $result = array(); // result结构:array(分类id=>array(邮件状态值=>邮件数量)) $finalresult = array(); $final = array(); //echo $sql; $qre = mysql_query($sql); while ($row = mysql_fetch_assoc($qre)) { if (array_key_exists($row['classid'], $result)) { if (!array_key_exists($row['status'], $result[$row['classid']])) { $result[$row['classid']][$row['status']] = $row['num']; } } else { $result[$row['classid']] = array($row['status'] => $row['num']); } } // print_r($result); foreach ($finalcatgroup as $name => $cids) { foreach ($result as $classid => $status) { if (in_array($classid, $cids)) { $finalresult[$name][] = $status; } else { $finalresult[$name][] = array(0, 0, 0, 0); } } } //print_r($finalresult); //这里统计的是某个客服邮件的未回复,回复中,标记回复数 foreach ($finalresult as $name => $status) { $final[$name] = array(0, 0, 0, 0); foreach ($status as $state) { $final[$name][0] += isset($state[0]) ? $state[0] : 0; $final[$name][1] += isset($state[1]) ? $state[1] : 0; $final[$name][2] += isset($state[2]) ? $state[2] : 0; $final[$name][3] += isset($state[3]) ? $state[3] : 0; } //名字必须在该部门,其回复的数量才会被记录,不然会被置为0 $final[$name][2] = array_key_exists($name, $userlist) ? $final[$name][2] : 0; $final[$name][4] = $final[$name][0] + $final[$name][2]; $final[$name]['name'] = $name; } //print_r($final); /*----- 处理排序 -----*/ $noreply = array(); //未回复 $replyed = array(); //已回复 $replying = array(); //回复中 $markreply = array(); //标记回复 $total = array(); //总数 foreach ($final as $name => $item) { $noreply[$name] = $item[0]; $replyed[$name] = $item[2]; $replying[$name] = $item[1]; $markreply[$name] = $item[3]; $total[$name] = $item[4]; } //print_r($total);exit; $total_noreply = array_sum($noreply); $total_replyed = array_sum($replyed); $total_replying = array_sum($replying); $total_markreply = array_sum($markreply); $total_total = array_sum($total); $this->smarty->assign('total_noreply', $total_noreply); $this->smarty->assign('total_replyed', $total_replyed); $this->smarty->assign('total_markreply', $total_markreply); $this->smarty->assign('total_replying', $total_replying); $this->smarty->assign('total_total', $total_total); $sort_no = isset($_GET['srtn']) ? $_GET['srtn'] == 'asc' ? $sortype = 'asc' : ($sortype = 'desc') : FALSE; //未回复 $sort_h = isset($_GET['srth']) ? $_GET['srth'] == 'asc' ? $sortype = 'asc' : ($sortype = 'desc') : FALSE; //已回复 $sort_i = isset($_GET['srti']) ? $_GET['srti'] == 'asc' ? $sortype = 'asc' : ($sortype = 'desc') : FALSE; //回复中 $sort_m = isset($_GET['srtm']) ? $_GET['srtm'] == 'asc' ? $sortype = 'asc' : ($sortype = 'desc') : FALSE; //标记回复 $sort_t = isset($_GET['srtt']) ? $_GET['srtt'] == 'asc' ? $sortype = 'asc' : ($sortype = 'desc') : FALSE; //总数 if ($sort_no !== FALSE) { //未回复排序 if ($sort_no == 'asc') { //升序 asort($noreply); } else { //降序 arsort($noreply); } $this->smarty->assign('condition', 'sort_no'); $this->smarty->assign('sortindex', $noreply); } elseif ($sort_h !== FALSE) { //已回复 if ($sort_h == 'asc') { asort($replyed); } else { arsort($replyed); } $this->smarty->assign('condition', 'sort_h'); $this->smarty->assign('sortindex', $replyed); } elseif ($sort_i !== FALSE) { //回复中 if ($sort_i == 'asc') { asort($replying); } else { arsort($replying); } $this->smarty->assign('condition', 'sort_i'); $this->smarty->assign('sortindex', $replying); } elseif ($sort_m !== FALSE) { //标记回复 if ($sort_m == 'asc') { asort($markreply); } else { arsort($markreply); } $this->smarty->assign('condition', 'sort_m'); $this->smarty->assign('sortindex', $markreply); } elseif ($sort_t !== FALSE) { //总数量 if ($sort_t == 'asc') { asort($total); } else { arsort($total); } $this->smarty->assign('condition', 'sort_t'); $this->smarty->assign('sortindex', $total); } else { //默认按未回复数量降序排列 if ($sort_no == 'asc') { //升序 asort($noreply); } else { //降序 arsort($noreply); } $this->smarty->assign('condition', 'sort_no'); $this->smarty->assign('sortindex', $noreply); } //print_r($noreply);exit; $this->smarty->assign('sorttype', $sortype); /*----- 处理排序 -----*/ $this->smarty->assign('sec_menue', 7); $navlist = array(array('url' => 'index.php?mod=msgCategoryAmazon&act=categoryList', 'title' => 'Amazon message系统'), array('url' => '', 'title' => 'Amazon message统计')); $isExport = isset($_GET['export']) ? TRUE : FALSE; if ($isExport) { $final[] = array($total_noreply, 0, $total_replyed, 0, $total_total, 'name' => '统计'); $this->exportExcell($starttime, $endtime, $final); exit; } $this->smarty->assign('starttime', date('Y-m-d', $start_stamp)); $this->smarty->assign('endtime', date('Y-m-d', $end_stamp)); $this->smarty->assign('toplevel', 3); $this->smarty->assign('navlist', $navlist); $this->smarty->assign('statistics', $final); $this->smarty->assign('sec_menue', 3); $this->smarty->display('msgstatisticsAmazon.htm'); }