Esempio n. 1
0
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;
}