/** * WedoApiModel::orderWedoExport() * 导出运德物流订单跟踪号信息 * @param string $condition 导出条件 * @param integer $pagesize 每页数量 * @return string */ public static function orderWedoExport($condition, $pagesize = 10000) { self::initDB(); $totalnum = 0; $data = ""; $sql = "SELECT count(*) AS totalnum FROM\t" . self::$prefix . self::$wedo_order . " WHERE {$condition}"; $query = self::$dbConn->query($sql); if ($query) { $res = self::$dbConn->fetch_array($query); $totalnum = intval($res['totalnum']); } else { self::$errCode = 10000; self::$errMsg = "获取数据失败"; return "fail"; } if ($totalnum == 0) { self::$errCode = 10001; self::$errMsg = "选择的时间范围类,没有数据需要导出!"; return "fail"; } $pages = ceil($totalnum / $pagesize); $filename = 'wedo_number_info_' . $_SESSION[C('USER_AUTH_SYS_ID')]; $statusList = C('TRACK_STATUS_DETAIL'); $fileurl = WEB_URL . "temp/" . $filename . ".xls"; $filepath = WEB_PATH . "html/temp/" . $filename . ".xls"; for ($i = 0; $i < $pages; $i++) { $offset = $i * $pagesize; $sql = "SELECT *\tFROM " . self::$prefix . self::$wedo_order . " WHERE {$condition} LIMIT {$offset},{$pagesize}"; $query = self::$dbConn->query($sql); $res = self::$dbConn->fetch_array_all($query); if ($i == 0) { $data = '<?xml version="1.0" encoding="UTF-8"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"><Styles><Style ss:ID="sDT"><NumberFormat ss:Format="Short Date"/></Style></Styles><Worksheet ss:Name="Sheet1"><Table><Row><Cell><Data ss:Type="String">订单号/交易号</Data></Cell><Cell><Data ss:Type="String">跟踪号</Data></Cell><Cell><Data ss:Type="String">发货时间</Data></Cell><Cell><Data ss:Type="String">发往国家</Data></Cell><Cell><Data ss:Type="String">店铺帐号</Data></Cell></Row>' . "\n"; } foreach ($res as $v) { $data .= '<Row><Cell><Data ss:Type="String">' . $v['orderSn'] . '</Data></Cell><Cell><Data ss:Type="String">' . $v['trackNumber'] . '</Data></Cell><Cell ss:StyleID="sDT"><Data ss:Type="DateTime">' . strftime("%Y-%m-%dT%H:%M:%S", $v['scanTime']) . '</Data></Cell><Cell><Data ss:Type="String">' . $v['toCountry'] . '</Data></Cell><Cell><Data ss:Type="String">' . $v['platAccount'] . '</Data></Cell></Row>' . "\n"; } if ($i == 0) { write_w_file($filepath, $data); } else { write_a_file($filepath, $data); } $data = ""; } $data = "</Table></Worksheet></Workbook>"; write_a_file($filepath, $data); if (file_exists($filepath)) { return $fileurl; } else { return "fail"; } }
/** * WedoApiAct::act_orderExport() * 导出运德物流订单跟踪号信息 * @param string $timeNode 时间节点 * @return json string */ public function act_orderExport() { $uid = intval($_SESSION[C('USER_AUTH_SYS_ID')]); if (empty($uid)) { self::$errCode = 10001; self::$errMsg = "对不起,您尚未登录!"; return false; } $timeNode = isset($_GET['timeNode']) ? post_check(trim($_GET['timeNode'])) : ''; $condition = "1"; $condition .= " AND add_user_id = '{$uid}'"; if (!empty($timeNode)) { if (!in_array($timeNode, array('scanTime', 'addTime'))) { redirect_to("index.php?mod=wedoApi&act=orderExport"); } $startTime = isset($_GET['startTime']) ? strtotime(trim($_GET['startTime']) . " 00:00:00") : strtotime(date("Y-m-d", time()) . " 00:00:00"); $endTime = isset($_GET['endTime']) ? strtotime(trim($_GET['endTime']) . " 23:59:59") : strtotime(date("Y-m-d", time()) . " 23:59:59"); if ($startTime && $endTime) { $condition .= ' AND ' . $timeNode . " BETWEEN '" . $startTime . "' AND " . "'" . $endTime . "'"; } } $act = isset($_REQUEST["act"]) ? post_check($_REQUEST["act"]) : ""; $mod = isset($_REQUEST["mod"]) ? post_check($_REQUEST["mod"]) : ""; if (!AuthUser::checkLogin($mod, $act)) { self::$errCode = 10000; self::$errMsg = "对不起,您无跟踪号数据导出权限!"; return false; } $res = WedoApiModel::orderWedoExport($condition); self::$errCode = WedoApiModel::$errCode; self::$errMsg = WedoApiModel::$errMsg; return $res; }