display(); } /** * 环境检测页面 */ public function pull() { // 取PHP版本前三位 $subPhpversion = substr(PHP_VERSION, 0, 3); $gdInfo = gd_info(); $zend = zend_version(); //环境配置 $sceneConf = [ ['name' => '操作系统', 'value' => php_uname('s'), 'need' => '不限制', 'state' => true], ['name' => 'PHP版本', 'value' => PHP_VERSION, 'need' => '5.4', 'state' => $subPhpversion == '5.4' ? true : false], ['name' => '附件上传', 'value' => ini_get('upload_max_filesize'), 'need' => '不限制', 'state' => true], ['name' => 'GD库', 'value' => $gdInfo['GD Version'], 'need' => '2.1', 'state' => $gdInfo['GD Version'] ? true : false], ['name' => 'Zend Guard Loader', 'value' => $zend, 'need' => '启用', 'state' => $zend ? true : false], ]; //文件目录权限 $fileAuth = [ // ['name' => './Addons',], ['name' => './Application',], ['name' => './Public',], ['name' => './appPath',], ['name' => './tempApp',], ['name' => './Uploads',], ]; foreach ($fileAuth as &$value) { // 转换成四进制权限格式 $value['need'] = '0777'; $value['value'] = substr(sprintf("%o", fileperms($value['name'])), -4); $value['state'] = $value['value'] == $value['need'] ? true : false; } //系统环境配置赋值 $this->assign('sceneConf', json_encode($sceneConf)); // 目录/文件权限赋值 $this->assign('fileAuth', json_encode($fileAuth)); $this->display(); } /** * 数据库信息填写页面 */ public function home() { //检测服务器参数是否正确 if (IS_POST) { //参数获取,安装数据信息 $DB['DB_TYPE'] = "mysql"; $DB["DB_NAME"] = I('post.sql_name'); $DB["DB_USER"] = I('post.sql_user_name'); $DB["DB_PWD"] = I('post.sql_password'); $DB["DB_HOST"] = I('post.sql_path'); $DB["DB_PREFIX"] = "ls_"; $DB["DB_PORT"] = "3306"; //缓存数据库数据 if (empty($DB["DB_NAME"]) || empty($DB["DB_USER"]) || empty($DB["DB_USER"]) || empty($DB["DB_HOST"]) || empty($DB["DB_PREFIX"]) || empty($DB["DB_PWD"])) { $data["status"] = 0; $data["message"] = "数据库参数不全"; $this->ajaxReturn($data); } session('db_config', $DB); //验证数据库是否可以使用 $dbName = $DB['DB_NAME']; unset($DB['DB_NAME']); $db = Db::getInstance($DB); //创建数据库 $sql = "CREATE DATABASE IF NOT EXISTS `{$dbName}` DEFAULT CHARACTER SET utf8"; //创建数据库 if (!$db->execute($sql)) { $error = $db->getError(); $data["status"] = 0; $data["message"] = $error; } else { //这是数据库创建成功了 $data["status"] = 1; $data["message"] = $db . "数据库已经创建成功"; session("stop", 1); } $this->ajaxReturn($data); } else { $this->display(); } } /** * 填写合伙人信息页面 */ public function push() { if (IS_POST) { $data = I('post.'); if (!empty($data)) { $res['status'] = 1; $res['msg'] = '成功'; session('userInfo', $data); } $this->ajaxReturn($res); } else { $this->display(); } } /** * 安装页面 */ public function install() { $this->display(); } /** * 初始化数据库 */ public function unitSQL() { //链接数据库 $dbConfig = session('db_config'); $db = Db::getInstance($dbConfig); //创建数据表 $sql = file_get_contents('./Data/install.sql'); $sql = str_replace("\r", "\n", $sql); $sql = explode(";\n", $sql); //创建数据 $message = []; $status = true; foreach ($sql as $value) { $value = trim($value); if (empty($value)) { continue; } if (substr($value, 0, 12) == 'CREATE TABLE') { $name = preg_replace("/^CREATE TABLE `(\w+)` .*/s", "\\1", $value); $msg = "创建数据表{$name}"; $class = 'tips success'; if (false !== $db->execute($value)) { $msg .= '...成功'; } else { $class = 'tips error'; $msg .= '...失败!'; $status = false; session('error', true); } $message[] = [ 'name' => $msg, 'class' => $class, ]; } else { $db->execute($value); } } if ($status) { $this->ajaxReturn([ 'status' => 1, 'message' => '成功', 'data' => $message, ]); } else { $this->ajaxReturn([ 'status' => 0, 'message' => '失败', 'data' => $message, ]); } } /** * 初始化用户 */ public function unitTable() { if (IS_POST) { //链接数据库 $dbConfig = session('db_config'); $db = Db::getInstance($dbConfig); $userData = session("userInfo"); $username = $userData["name"]; $add_time = time(); $pwd = strtolower($userData['password']); $NowTime = $add_time; $CryptrModel = new \Addons\Api\Crypto(); $password = $CryptrModel->encrypt($pwd, date('YmdHis', $NowTime)); $phone = $userData["phone"]; $start_time = time(); $end_time = time() + 86400 * 365; $sql = "INSERT INTO `ls_retail_admin` (`id`, `name`, `addtime`, `status`, `last_time`, `password`, `type`, `partnerid`, `phone`, `address`, `image`, `begin_time`, `end_time`, `province`, `city`, `area`, `templateid`, `juris`, `qq`, `entry`) VALUES ('1', '{$username}', '{$add_time}', '1', NULL, '{$password}', '0', '43', '{$phone}', '', NULL, '{$start_time}', '{$end_time}', '', '', '', '1', '1', '', '1');"; $db->execute($sql); $server = $_SERVER["HTTP_HOST"]; $sql = "INSERT INTO `ls_retail_domain` VALUES ('1', '{$server}', '1', '2', null, null);"; $db->execute($sql); $sql = "INSERT INTO `ls_jurisdiction_user` VALUES ('1','{$phone}','{$password}','{$username}','{$add_time}','1','1','1','1','1', '0', null, null, '0', '0');"; $db->execute($sql); $message = [ [ 'name' => '成功添加合作伙伴信息', 'class' => 'tips success', ] ]; $this->ajaxReturn([ 'status' => 1, 'message' => '成功', 'data' => $message, ]); } } /** * 设置版本信息 */ public function setVersion() { $dbConfig = session('db_config'); $db = Db::getInstance($dbConfig); $Version = self::$Version; $sql = "INSERT INTO `ls_webset` VALUES ('1', '{$Version}'); "; $db->execute($sql); $message = [ [ 'name' => '版本已设置完毕,版本号:V' . $Version, 'class' => 'tips success', ] ]; $this->ajaxReturn([ 'status' => 1, 'message' => '成功', 'data' => $message, ]); } /** * 设置配置文件 */ public function setConfig() { $dbConfig = session('db_config'); $conf = file_get_contents('./Data/conf.tpl'); foreach ($dbConfig as $name => $value) { $conf = str_replace("[{$name}]", $value, $conf); } $conf = str_replace('[HTTP]', $_SERVER["HTTP_HOST"], $conf); if (file_put_contents('./Application/Common/Conf/config.php', $conf)) { $this->ajaxReturn([ 'status' => 1, 'message' => '成功', 'data' => [ [ 'name' => '配置文件写入成功', 'class' => 'tips success', ], [ 'name' => '安装成功之后,请删除根目录文件夹install,避免重复安装', 'class' => 'tips', ], [ 'name' => '安装成功', 'class' => 'tips big-title success', ] ], ]); } else { session('error', true); $this->ajaxReturn([ 'status' => 0, 'message' => '失败', 'data' => [ [ 'name' => '配置文件写入失败!', 'class' => 'tips error', ], ], ]); } } }