307 行
9.9 KiB
PHP
可执行文件
307 行
9.9 KiB
PHP
可执行文件
<?php
|
||
|
||
namespace Home\Controller;
|
||
|
||
use Think\Controller;
|
||
use Think\Db;
|
||
use Think\Storage;
|
||
|
||
class IndexController extends Controller
|
||
{
|
||
static private $Version = "1.9.23";
|
||
|
||
Public function _initialize()
|
||
{
|
||
if (is_file(APPS_PATH . 'Common/Conf/config.php')) {
|
||
header('Location: ./index.php');
|
||
exit;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 安装系统首页
|
||
*/
|
||
public function index()
|
||
{
|
||
$this->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',
|
||
],
|
||
],
|
||
]);
|
||
}
|
||
}
|
||
|
||
} |