新增模块权限导出
This commit is contained in:
parent
cfaec3fbc3
commit
4dc2978d61
@ -3,6 +3,7 @@ declare (strict_types = 1);
|
|||||||
|
|
||||||
namespace catcher\command\Tools;
|
namespace catcher\command\Tools;
|
||||||
|
|
||||||
|
use catcher\CatchAdmin;
|
||||||
use catcher\facade\Http;
|
use catcher\facade\Http;
|
||||||
use catcher\Tree;
|
use catcher\Tree;
|
||||||
use catcher\Utils;
|
use catcher\Utils;
|
||||||
@ -23,24 +24,43 @@ class ExportDataCommand extends Command
|
|||||||
$this->setName('export')
|
$this->setName('export')
|
||||||
->addArgument('table', Argument::REQUIRED, 'export tables')
|
->addArgument('table', Argument::REQUIRED, 'export tables')
|
||||||
->addOption('pid', '-p', Option::VALUE_REQUIRED, 'parent level name')
|
->addOption('pid', '-p', Option::VALUE_REQUIRED, 'parent level name')
|
||||||
|
->addOption('module', '-m', Option::VALUE_REQUIRED, 'module name')
|
||||||
->setDescription('Just for catchAdmin export data');
|
->setDescription('Just for catchAdmin export data');
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function execute(Input $input, Output $output)
|
protected function execute(Input $input, Output $output)
|
||||||
{
|
{
|
||||||
$table = Utils::tablePrefix() . $input->getArgument('table');
|
$table = Utils::tablePrefix() . $input->getArgument('table');
|
||||||
|
|
||||||
$parent = $input->getOption('pid');
|
$parent = $input->getOption('pid');
|
||||||
|
$module = $input->getOption('module');
|
||||||
|
|
||||||
|
if ($module) {
|
||||||
|
$data = Db::name($table)->where('deleted_at', 0)
|
||||||
|
->where('module', $module)
|
||||||
|
->select()
|
||||||
|
->toArray();
|
||||||
|
} else {
|
||||||
$data = Db::name($table)->where('deleted_at', 0)->select()->toArray();
|
$data = Db::name($table)->where('deleted_at', 0)->select()->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
if ($parent) {
|
if ($parent) {
|
||||||
$data = Tree::done($data, 0, $parent);
|
$data = Tree::done($data, 0, $parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($module) {
|
||||||
|
$data = 'return ' . var_export($data, true) . ';';
|
||||||
|
$this->exportSeed($data, $module);
|
||||||
|
} else {
|
||||||
file_put_contents(root_path() . DIRECTORY_SEPARATOR . $table . '.php', "<?php\r\n return " . var_export($data, true) . ';');
|
file_put_contents(root_path() . DIRECTORY_SEPARATOR . $table . '.php', "<?php\r\n return " . var_export($data, true) . ';');
|
||||||
|
}
|
||||||
$output->info('succeed!');
|
$output->info('succeed!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function exportSeed($data, $module)
|
||||||
|
{
|
||||||
|
$stub = file_get_contents(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'permissionSeed.stub');
|
||||||
|
|
||||||
|
file_put_contents(CatchAdmin::moduleSeedsDirectory($module) . 'permissionSeed.php', str_replace('{DATA}', $data, $stub));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use think\migration\Seeder;
|
||||||
|
|
||||||
|
class PermissionSeed extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run Method.
|
||||||
|
*
|
||||||
|
* Write your database seeder using this method.
|
||||||
|
*
|
||||||
|
* More information on writing seeders is available here:
|
||||||
|
* http://docs.phinx.org/en/latest/seeding.html
|
||||||
|
*/
|
||||||
|
public function run()
|
||||||
|
{
|
||||||
|
\catcher\Utils::importTreeData($this->getPermissions(), 'permissions', 'parent_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function getPermissions()
|
||||||
|
{
|
||||||
|
{DATA}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user