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'); }
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'); }