Example #1
0
 public function view_categoryListAmazon()
 {
     /* -----  获取全部的分类列表  -----*/
     $msgcat_obj = new amazonmessagecategoryModel();
     $lp_ojb = new LocalPowerAmazonModel();
     $powerlist = $lp_ojb->getAmazonPowerlist($_SESSION['userId']);
     //获得该用户能看到的邮件目录id
     //print_r($powerlist);
     if (empty($powerlist)) {
         $filsql = '0';
     } else {
         $filsql = $powerlist;
     }
     $arrlist = $msgcat_obj->getAllCategoryInfoList(' and id in (' . $filsql . ') order by id desc');
     $msg_obj = new amazonmessageModel();
     foreach ($arrlist as &$listval) {
         /* ---- 计算已经回复的数量  ---- */
         $replyed_num = $msg_obj->getAmazonNumber($listval['id'], array(2, 3));
         $listval['replyed'] = $replyed_num;
         /* ---- 计算未回复的数量  ---- */
         $noreply_num = $msg_obj->getAmazonNumber($listval['id'], array(0));
         $listval['noreply'] = $noreply_num;
     }
     $msg_obj->addAccountToGlobal();
     $msg_obj->addAccountToLocal();
     $msg_obj->turnState();
     $this->smarty->assign('sec_menue', 3);
     $this->smarty->assign('toplevel', 1);
     $this->smarty->assign('categorylist', $arrlist);
     $this->smarty->assign('toptitle', 'Amazon message类别列表');
     $this->smarty->display('msgcategorylistAmazon.htm');
 }
 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_getAmazonMessageListByConditions()
 {
     $sender = isset($_GET['sender']) ? trim($_GET['sender']) : '';
     //关键字
     $sender = mysql_real_escape_string($sender);
     $status = isset($_GET['status']) ? $_GET['status'] : FALSE;
     //回复状态
     $category = isset($_GET['catid']) ? intval($_GET['catid']) : FALSE;
     //分类
     $from = isset($_GET['from']) ? $_GET['from'] : FALSE;
     $overtime = isset($_GET['overtime']) ? intval($_GET['overtime']) : FALSE;
     //发送者
     $name = isset($_GET['name']) ? trim($_GET['name']) : FALSE;
     $pagesize = isset($_SESSION['pagesize']) ? intval($_SESSION['pagesize']) : 200;
     $pagesize = isset($_GET['pagesize']) ? intval($_GET['pagesize']) : $pagesize;
     //每页数量
     $cat_obj = new amazonmessagecategoryModel();
     /*----- 获得用户能够浏览的邮件目录 -----*/
     $Lp_obj = new LocalPowerAmazonModel();
     $fieldid = $Lp_obj->getAmazonPowerlist($_SESSION['userId']);
     //获得当前用户所属的邮件目录id
     $fieldid = empty($fieldid) ? array(-10) : explode(',', $fieldid);
     $category = in_array($category, $fieldid) ? $category : FALSE;
     if (empty($category)) {
         $catList = $fieldid;
         //在未输入搜索条件时列出该用户所有有权限的浏览的邮件目录id(数组形式)
     } else {
         $catList = array($category);
     }
     /*----- 获得用户所属文件夹 -----*/
     if (!empty($fieldid)) {
         $powerlist = $cat_obj->getFieldInfoByIds($fieldid, ' order by category_name');
         //通过目录id获得相关目录信息
     } else {
         $powerlist = array();
     }
     $wheresql = '';
     if (!empty($sender)) {
         //是否指定sender
         $wheresql .= " and sendid like '%{$sender}%' ";
     }
     if ($overtime == 24) {
         $status = FALSE;
     }
     if ($status !== FALSE) {
         //指定状态
         switch ($status) {
             case 1:
                 //回复完成
                 $wheresql .= " and status in (2,3)";
                 break;
             case 2:
                 //未回复
                 $wheresql .= " and status=0 ";
                 break;
             case 3:
                 //回复中
                 $wheresql .= " and status=1 ";
                 break;
             case 4:
                 //回复失败
                 $wheresql .= " and status=4 ";
                 break;
             default:
                 $wheresql .= "";
                 break;
         }
     }
     if ($from !== FALSE) {
         //url中包含from参数
         if ($from !== '') {
             //from参数不为空值
             $wheresql .= " and from_platform={$from} ";
         } else {
             $from = FALSE;
         }
     }
     //查询超过24小时还未回复的邮件
     if ($overtime == 24) {
         $time = time() - 86400;
         $wheresql .= " and recievetimestamp < {$time} and status =0 ";
     }
     //如果是选择From Member
     if ($from === FALSE && $overtime === FALSE) {
         $time = time() - 86400;
         $wheresql .= " and from_platform = '-1' and recievetimestamp > {$time}  ";
     }
     $class_sql = implode(', ', $catList);
     $wheresql .= " and classid in ({$class_sql}) and is_delete=0";
     //最终展示的是:登录的用户能够看到目录中的邮件
     $msg_obj = new amazonmessageModel();
     $mount = $msg_obj->getAmazonCountNumberByConditions($wheresql);
     //获得能够浏览的邮件数
     $page_obj = new Page($mount, $pagesize);
     $usercache = new UserCacheModel();
     if ($name !== FALSE) {
         if ($name == 'asc') {
             $orderby = ' order by sendid asc ';
         } else {
             $orderby = ' order by sendid desc ';
         }
     } else {
         $orderby = ' order by sendtime ';
     }
     $msglist = $msg_obj->getAmazonMessageListByConditions($wheresql . $orderby . $page_obj->limit);
     /* --- 格式化数据 ---*/
     foreach ($msglist as &$msgitem) {
         $msgitem['subject'] = urldecode($msgitem['subject']);
         if (strlen($msgitem['subject']) > 100) {
             $msgitem['subjectfm'] = mb_substr($msgitem['subject'], 0, 100) . '...';
         } else {
             $msgitem['subjectfm'] = $msgitem['subject'];
         }
         $msgitem['revtime'] = empty($msgitem['sendtime']) ? '' : date("Y 年 m 月 d 日 ", $msgitem['sendtime']) . '  ' . date("H时:i分:s秒", $msgitem['sendtime']);
         $catinfo = $cat_obj->getCategoryInfoById($msgitem['classid']);
         $msgitem['classname'] = $catinfo['category_name'];
         $userinfo = empty($msgitem['replyuser_id']) ? array('userName' => '') : $usercache->getUserInfoBySysId($msgitem['replyuser_id'], 0);
         $msgitem['username'] = $userinfo['userName'];
         $msgitem['retime'] = $msgitem['replytime'] ? date("Y-m-d \n H:i:s", $msgitem['replytime']) : '';
     }
     if ($mount > $pagesize) {
         //分页
         $pagestr = $page_obj->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9));
     } else {
         $pagestr = $page_obj->fpage(array(0, 2, 3));
     }
     /*----- 获得分类文件夹列表 -----*/
     $categorylist = $cat_obj->getAllCategoryInfoList();
     //         print_r($categorylist);
     $this->smarty->assign('catlist', $categorylist);
     /*----- 获得分类列表 -----*/
     if ($from === FALSE) {
         $this->smarty->assign('third_menue', 1);
     } elseif ($from === '0') {
         $this->smarty->assign('third_menue', 2);
     } elseif ($from == 1) {
         $this->smarty->assign('third_menue', 3);
     } elseif ($from == 2) {
         $this->smarty->assign('third_menue', 4);
     }
     if ($overtime == 24) {
         $this->smarty->assign('third_menue', 5);
     }
     $urlquery = convertUrlQuery($_SERVER['QUERY_STRING']);
     unset($urlquery['name']);
     if ($name == 'asc') {
         $urlquery['name'] = 'desc';
     } else {
         $urlquery['name'] = 'asc';
     }
     $url = getUrlQuery($urlquery);
     //         echo $url, "\n";
     //         var_dump($urlquery);
     //print_r($msglist);
     $this->smarty->assign('url', $url);
     $this->smarty->assign('powerlist', $powerlist);
     $this->smarty->assign('from', $from);
     $this->smarty->assign('overtime', $overtime);
     $this->smarty->assign('sec_menue', 5);
     $this->smarty->assign('toplevel', 0);
     $this->smarty->assign('sender', $sender);
     $this->smarty->assign('category', $category);
     $this->smarty->assign('status', $status);
     $this->smarty->assign('pagestr', $pagestr);
     $this->smarty->assign('msglist', $msglist);
     $this->smarty->assign('categorylist', $arrlist);
     $this->smarty->assign('toptitle', 'message列表');
     $this->smarty->display('msglistAmazon.htm');
 }
Example #4
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;
     }
 }
 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');
 }