function _create_database($config, $replace) { try { $pdo = new PDO("mysql:host={$config['database_host']};port={$config['database_port']}", "{$config['database_user']}", "{$config['database_password']}"); $pdo->exec("SET NAMES utf8"); //仅在第一次进来时初始化数据库表结构 if (empty($config['index'])) { $result = $pdo->exec("create database `{$config['database_name']}`;"); if (empty($result) && !$replace) { return "数据库{$config['database_name']}已存在,创建失败,请删除或者勾选覆盖数据库之后再安装!"; } $pdo->exec("USE `{$config['database_name']}`;"); $sql = file_get_contents('./edusoho.sql'); $result = $pdo->exec($sql); if ($result === false) { return "创建数据库表结构失败,请删除数据库后重试!"; } if (empty($config["database_init"])) { _create_config($config); return array('success' => true); } } //每次进来都执行一个演示数据初始化文件 if (!empty($config["database_init"]) && $config["database_init"] == 1) { $index = $config['index']; if ($index > 0) { $pdo->exec("USE `{$config['database_name']}`;"); } _init_data($pdo, $config, $index); $index++; $filesystem = new Filesystem(); if (!$filesystem->exists('edusoho_init_' . $index . '.sql')) { _init_auto_increment($pdo, $config); return array('success' => true); } return array('index' => $index); } return null; } catch (\PDOException $e) { return '数据库连接不上,请检查数据库服务器、用户名、密码是否正确!'; } }
function _get_data_ws(&$PDOdb, $id_ws, $tDeb, $tFin, $nb_ressource) { global $conf; $Tab = array('series' => array(), 'axis' => array()); if ($nb_ressource < 1) { $nb_ressource = 1; } $nb_hour_per_day = !empty($conf->global->TIMESHEET_WORKING_HOUR_PER_DAY) ? $conf->global->TIMESHEET_WORKING_HOUR_PER_DAY : 7; $nb_second_in_hour = 3600 * (24 / $nb_hour_per_day); $TAxis = $TSerie = array(); _init_data($TAxis, $TSerie, $tDeb, $tFin); $sql = "SELECT t.date_estimated_start,t.date_estimated_end \n FROM " . MAIN_DB_PREFIX . "projet_task t \n LEFT JOIN " . MAIN_DB_PREFIX . "projet_task_extrafields tex ON (t.rowid=tex.fk_object)\n \n WHERE tex.fk_workstation=" . $id_ws . " AND t.date_estimated_end > NOW() AND progress<100\n AND t.date_estimated_start<'" . date('Y-m-d 23:59:59', $tFin) . "' \n AND t.date_estimated_end>'" . date('Y-m-d 00:00:00', $tDeb) . "'\n ORDER BY t.date_estimated_start "; $TRes = $PDOdb->ExecuteAsArray($sql); _get_time($TRes, $TAxis, $TSerie, $tDeb, $tFin); $sql = "SELECT t.dateo as 'date_estimated_start',t.datee as 'date_estimated_end'\n FROM " . MAIN_DB_PREFIX . "projet_task t \n LEFT JOIN " . MAIN_DB_PREFIX . "projet_task_extrafields tex ON (t.rowid=tex.fk_object)\n \n WHERE tex.fk_workstation=" . $id_ws . " AND t.datee < NOW()\n AND t.dateo<'" . date('Y-m-d 23:59:59', $tFin) . "' \n AND t.datee>'" . date('Y-m-d 00:00:00', $tDeb) . "'\n ORDER BY t.dateo "; $TRes = $PDOdb->ExecuteAsArray($sql); _get_time($TRes, $TAxis, $TSerie, $tDeb, $tFin); ksort($TAxis); ksort($TSerie); foreach ($TAxis as &$val) { $val = round($val / $nb_second_in_hour / $nb_ressource / $nb_hour_per_day * 100); } $Tab['series'] = array(0 => array('data' => array_values($TAxis), 'name' => 'Usage')); $Tab['axis'] = array_values($TSerie); return $Tab; }