408 lines
14 KiB
PHP
408 lines
14 KiB
PHP
<?php
|
|
|
|
use think\admin\extend\PhinxExtend;
|
|
use think\admin\model\SystemConfig;
|
|
use think\admin\model\SystemMenu;
|
|
use think\admin\model\SystemUser;
|
|
use think\admin\service\ProcessService;
|
|
use think\helper\Str;
|
|
use think\migration\Migrator;
|
|
|
|
@set_time_limit(0);
|
|
@ini_set('memory_limit', -1);
|
|
|
|
/**
|
|
* 数据安装包
|
|
* @class InstallPackage
|
|
*/
|
|
class InstallPackage extends Migrator
|
|
{
|
|
/**
|
|
* 数据库初始化
|
|
* @return void
|
|
*/
|
|
public function change()
|
|
{
|
|
$this->inserData();
|
|
$this->insertConf();
|
|
$this->insertUser();
|
|
$this->insertMenu();
|
|
}
|
|
|
|
/**
|
|
* 安装扩展数据
|
|
* @return void
|
|
*/
|
|
private function inserData()
|
|
{
|
|
// 待解析处理数据
|
|
$json = '[]';
|
|
// 解析并写入扩展数据
|
|
if (is_array($tables = json_decode($json, true)) && count($tables) > 0) {
|
|
foreach ($tables as $table => $path) if (($model = m($table))->count() < 1) {
|
|
$name = Str::studly($table);
|
|
ProcessService::message(" -- Starting write {$table} table ..." . PHP_EOL);
|
|
[$ls, $rs, $fp] = [0, [], fopen(__DIR__ . DIRECTORY_SEPARATOR . $path, 'r+')];
|
|
while (!feof($fp)) {
|
|
if (empty($text = trim(fgets($fp)))) continue; else $ls++;
|
|
if (is_array($rw = json_decode($text, true))) $rs[] = $rw;
|
|
if (count($rs) > 100) [, $rs] = [$model->strict(false)->insertAll($rs), []];
|
|
ProcessService::message(" -- -- {$name}:{$ls}", 1);
|
|
}
|
|
count($rs) > 0 && $model->strict(false)->insertAll($rs);
|
|
ProcessService::message(" -- Finished write {$table} table, Total {$ls} rows.", 2);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 初始化配置参数
|
|
* @return void
|
|
*/
|
|
private function insertConf()
|
|
{
|
|
$modal = SystemConfig::mk()->whereRaw('1=1')->findOrEmpty();
|
|
$modal->isEmpty() && $modal->insertAll([
|
|
['type' => 'base', 'name' => 'app_name', 'value' => 'ThinkAdmin'],
|
|
['type' => 'base', 'name' => 'app_version', 'value' => 'v6'],
|
|
['type' => 'base', 'name' => 'editor', 'value' => 'ckeditor5'],
|
|
['type' => 'base', 'name' => 'login_name', 'value' => '系统管理'],
|
|
['type' => 'base', 'name' => 'site_copy', 'value' => '©版权所有 2014-' . date('Y') . ' ThinkAdmin'],
|
|
['type' => 'base', 'name' => 'site_icon', 'value' => 'https://thinkadmin.top/static/img/logo.png'],
|
|
['type' => 'base', 'name' => 'site_name', 'value' => 'ThinkAdmin'],
|
|
['type' => 'base', 'name' => 'site_theme', 'value' => 'default'],
|
|
['type' => 'wechat', 'name' => 'type', 'value' => 'api'],
|
|
['type' => 'storage', 'name' => 'type', 'value' => 'local'],
|
|
['type' => 'storage', 'name' => 'allow_exts', 'value' => 'doc,gif,ico,jpg,mp3,mp4,p12,pem,png,zip,rar,xls,xlsx'],
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 初始化用户数据
|
|
* @return void
|
|
*/
|
|
private function insertUser()
|
|
{
|
|
$modal = SystemUser::mk()->whereRaw('1=1')->findOrEmpty();
|
|
$modal->isEmpty() && $modal->insert([
|
|
'id' => '10000',
|
|
'username' => 'admin',
|
|
'nickname' => '超级管理员',
|
|
'password' => '21232f297a57a5a743894a0e4a801fc3',
|
|
'headimg' => 'https://thinkadmin.top/static/img/head.png',
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 初始化系统菜单
|
|
* @return void
|
|
*/
|
|
private function insertMenu()
|
|
{
|
|
if (SystemMenu::mk()->whereRaw('1=1')->findOrEmpty()->isEmpty()) {
|
|
// 解析并初始化菜单数据
|
|
$json = '[
|
|
{
|
|
"name": "系统",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "系统配置",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "系统参数",
|
|
"url": "admin/config/index",
|
|
"node": "",
|
|
"icon": "layui-icon layui-icon-set",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "系统任务",
|
|
"url": "admin/queue/index",
|
|
"node": "",
|
|
"icon": "layui-icon layui-icon-log",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "系统日志",
|
|
"url": "admin/oplog/index",
|
|
"node": "",
|
|
"icon": "layui-icon layui-icon-form",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "系统菜单",
|
|
"url": "admin/menu/index",
|
|
"node": "",
|
|
"icon": "layui-icon layui-icon-layouts",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "系统设置",
|
|
"url": "setting/config/index",
|
|
"node": "setting/config/index",
|
|
"icon": "layui-icon layui-icon-logout",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "商户分离中台设置",
|
|
"url": "setting/merchant_config/index",
|
|
"node": "setting/merchant_config/index",
|
|
"icon": "layui-icon layui-icon-vercode",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "文件管理",
|
|
"url": "admin/file/index",
|
|
"node": "admin/file/index",
|
|
"icon": "layui-icon layui-icon-layim-uploadfile",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "字典",
|
|
"url": "admin/base/index",
|
|
"node": "admin/base/index",
|
|
"icon": "layui-icon layui-icon-template-1",
|
|
"params": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "权限管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "访问权限",
|
|
"url": "admin/auth/index",
|
|
"node": "",
|
|
"icon": "layui-icon layui-icon-vercode",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "系统用户",
|
|
"url": "admin/user/index",
|
|
"node": "",
|
|
"icon": "layui-icon layui-icon-username",
|
|
"params": ""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "渠道",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "渠道管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "渠道列表",
|
|
"url": "channel/channel/index",
|
|
"node": "channel/channel/index",
|
|
"icon": "layui-icon layui-icon-transfer",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "系统列表",
|
|
"url": "channel/system/index",
|
|
"node": "channel/system/index",
|
|
"icon": "",
|
|
"params": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "业务管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "业务列表",
|
|
"url": "channel/service/index",
|
|
"node": "channel/service/index",
|
|
"icon": "layui-icon layui-icon-component",
|
|
"params": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "卡密管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "卡密管理",
|
|
"url": "channel/card/index",
|
|
"node": "channel/card/index",
|
|
"icon": "layui-icon layui-icon-android",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "充值卡管理",
|
|
"url": "channel/card/chongzhi",
|
|
"node": "channel/card/chongzhi",
|
|
"icon": "",
|
|
"params": ""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "商户",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "商户管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "商户列表",
|
|
"url": "merchant/merchant/index",
|
|
"node": "merchant/merchant/index",
|
|
"icon": "layui-icon layui-icon-service",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "渠道关联",
|
|
"url": "merchant/merchant_relation/index",
|
|
"node": "merchant/merchant_relation/index",
|
|
"icon": "layui-icon layui-icon-transfer",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "卡号黑名单",
|
|
"url": "setting/black_card/index",
|
|
"node": "setting/black_card/index",
|
|
"icon": "layui-icon layui-icon-logout",
|
|
"params": ""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "订单",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "订单列表",
|
|
"icon": "layui-icon layui-icon-print",
|
|
"url": "order/order/index",
|
|
"node": "order/order/index",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "卡库提卡列表",
|
|
"icon": "",
|
|
"url": "order/kami91_order/index",
|
|
"node": "order/kami91_order/index",
|
|
"params": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "财务",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "账单管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "渠道账单",
|
|
"url": "channel/account/index",
|
|
"node": "channel/account/index",
|
|
"icon": "layui-icon layui-icon-service",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "商户账单",
|
|
"url": "setting/merchant_account/index",
|
|
"node": "setting/merchant_account/index",
|
|
"icon": "layui-icon layui-icon-slider",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "公户账单",
|
|
"url": "setting/account_log/index",
|
|
"node": "setting/account_log/index",
|
|
"icon": "layui-icon layui-icon-service",
|
|
"params": ""
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "统计管理",
|
|
"icon": "",
|
|
"url": "#",
|
|
"node": "",
|
|
"params": "",
|
|
"subs": [
|
|
{
|
|
"name": "订单统计",
|
|
"url": "setting/stat/index",
|
|
"node": "setting/stat/index",
|
|
"icon": "layui-icon layui-icon-windows",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "渠道对账",
|
|
"url": "setting/channel_account/index",
|
|
"node": "setting/channel_account/index",
|
|
"icon": "layui-icon layui-icon-transfer",
|
|
"params": ""
|
|
},
|
|
{
|
|
"name": "账单统计",
|
|
"url": "setting/account/index",
|
|
"node": "setting/account/index",
|
|
"icon": "layui-icon layui-icon-gift",
|
|
"params": ""
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]';
|
|
PhinxExtend::write2menu(json_decode($json, true) ?: []);
|
|
}
|
|
}
|
|
} |