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');
 }
Example #2
0
 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;
     }
 }
Example #3
0
 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;
     }
 }
Example #4
0
<?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');
 }