$total = TrackNumberModel::modListCount("carrierId = '{$carrierId}'"); $used = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND orderId > 0"); $last = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND orderId = 0"); $title = "【跟踪号可用数量预警】" . date('Y-m-d', time()) . " 运输方式{$res['carrierNameCn']}"; $table = '<p style="' . $css_height . '"><b>大家好:</b><br/>以下为运输方式<b>' . $res['carrierNameCn'] . '</b>跟踪号可用数量预警简报,请查阅</p>'; $table .= '<table border="1" cellpadding="0" cellspacing="0" width="791"><tr><td height="25px"><b>运输方式</b></td><td><b>跟踪号总数</b></td><td><b>已用数量</b></td><td><b>剩余数量</b></td></tr>'; $table .= '<tr><td height="20px">' . $res['carrierNameCn'] . '</td><td>' . $total . '</td><td>' . $used . '</td><td>' . $last . '</td></tr>'; $flag = false; foreach ($chArr as $v) { $total_ch = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND channelId = '{$v['id']}'"); $used_ch = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND channelId = '{$v['id']}' AND orderId > 0"); $last_ch = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND channelId = '{$v['id']}' AND orderId = 0"); if ($carrierId == 88) { $total_cur = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND countrys = 'Switzerland'"); $used_cur = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND countrys = 'Switzerland' AND orderId > 0"); $last_cur = TrackNumberModel::modListCount("carrierId = '{$carrierId}' AND countrys = 'Switzerland' AND orderId = 0"); $table .= '<tr><td height="20px">' . $res['carrierNameCn'] . '->非瑞士国家</td><td>' . ($total - $total_cur) . '</td><td>' . ($used - $used_cur) . '</td><td>' . ($last - $last_cur) . '</td></tr>'; $table .= '<tr><td height="20px">' . $res['carrierNameCn'] . '->瑞士国家</td><td>' . $total_cur . '</td><td>' . $used_cur . '</td><td>' . $last_cur . '</td></tr>'; } if ($last_ch <= $warnNum) { $flag = true; } if ($carrierId == 2) { $table .= '<tr><td height="20px">' . $res['carrierNameCn'] . "->" . $v['channelName'] . '渠道</td><td>' . $total_ch . '</td><td>' . $used_ch . '</td><td>' . $last_ch . '</td></tr>'; } } $table .= '</table>'; $table .= '<p style="' . $css_height . '">详情请登录:<a href="' . $system_url . '" target="_blank">' . $system_name . '</a><br/></br>' . date('Y-m-d') . '<br/>' . $system_name . '</p>'; echo $table, "\n"; //跟踪号可用数低于多少发预警邮件 if ($flag || $last <= $warnNum) {
/** * TrackNumberAct::actBatchTrackNumberImport() * 批量导入跟踪号信息 * @return array */ public function actBatchTrackNumberImport() { $data = array(); $carrierId = isset($_POST['carrierId']) ? abs(intval($_POST['carrierId'])) : 0; $channelId = isset($_POST['nodeListItem']) ? abs(intval($_POST['nodeListItem'])) : 0; $country = isset($_POST['country']) ? post_check($_POST['country']) : ""; $data['countrys'] = TransOpenApiModel::getCountriesStandard(); $data['lists'] = TransOpenApiModel::getCarrier(2); self::$errCode = TransOpenApiModel::$errCode; self::$errMsg = TransOpenApiModel::$errMsg; if (self::$errCode != 0) { show_message($this->smarty, self::$errMsg, ""); return false; } if (empty($carrierId)) { show_message($this->smarty, "运输方式参数非法", ""); return false; } $uid = intval($_SESSION[C('USER_AUTH_SYS_ID')]); if (isset($_FILES['upfile']) && !empty($_FILES['upfile'])) { $fielName = $uid . "_track_number_" . date('YmdHis') . '_' . rand(1, 3009) . ".xls"; $fileName = WEB_PATH . 'html/temp/' . $fielName; if (move_uploaded_file($_FILES['upfile']['tmp_name'], $fileName)) { $filePath = $fileName; } } if (substr($filePath, -3) != 'xls') { show_message($this->smarty, "导入的文件名格式错误!", "index.php?mod=trackNumber&act=trackNumberImport"); return false; } //读取导入文件 require_once WEB_PATH . "lib/PHPExcel.php"; $PHPExcel = new PHPExcel(); $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { show_message($this->smarty, "文件内容无法读取!", "index.php?mod=trackNumber&act=trackNumberImport"); @unlink($filePath); return false; } } $PHPExcel = $PHPReader->load($filePath); $currentSheet = $PHPExcel->getSheet(0); $row = 1; while (1) { $flag = true; $aa = 'A' . $row; $tracknum = trim($currentSheet->getCell($aa)->getValue()); $tracknum = mysql_real_escape_string(substr($tracknum, 0, 30)); if (empty($tracknum)) { break; } if ($row == 1) { if ($tracknum != '跟踪号') { echo '<font color="red">文件导入失败,导入模版内容有误,请勿修改表头</font>'; @unlink($filePath); break; } } else { if (!preg_match("/^[A-Z0-9]{1,30}\$/", $tracknum)) { echo '<font color="red">跟踪号内容: ' . $tracknum . ' 格式错误,跟踪号内容只能由大写字母和数字组成且长度不超过30,请修正后再次导入!</font>'; break; } $res = 0; $where = "carrierId = '{$carrierId}' AND trackNumber = '{$tracknum}'"; $res = TrackNumberModel::modListCount($where); if ($res > 0) { self::$errMsg .= "添加失败:{$carrierId}---{$tracknum}---跟踪信息已存在!<br/>"; $flag = false; } $datas = array("carrierId" => $carrierId, "channelId" => $channelId, "trackNumber" => $tracknum, "countrys" => $country, "addTime" => time(), "add_user_id" => $uid); if ($flag) { $res = TrackNumberModel::addTrackNumber($datas); if (!$res) { self::$errMsg .= "添加失败:" . TrackNumberModel::$errMsg . "<br/>"; break; } } } $row++; } $data['res'] = self::$errMsg; return $data; }