From 4dc2978d614121cd18e67009c40b6a5499b3d967 Mon Sep 17 00:00:00 2001 From: JaguarJack Date: Thu, 25 Jun 2020 08:36:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A8=A1=E5=9D=97=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../command/Tools/ExportDataCommand.php | 28 ++++++++++++++++--- .../catcher/command/stubs/permissionSeed.stub | 24 ++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/extend/catcher/command/Tools/ExportDataCommand.php b/extend/catcher/command/Tools/ExportDataCommand.php index 7aa3888..d64301b 100644 --- a/extend/catcher/command/Tools/ExportDataCommand.php +++ b/extend/catcher/command/Tools/ExportDataCommand.php @@ -3,6 +3,7 @@ declare (strict_types = 1); namespace catcher\command\Tools; +use catcher\CatchAdmin; use catcher\facade\Http; use catcher\Tree; use catcher\Utils; @@ -23,24 +24,43 @@ class ExportDataCommand extends Command $this->setName('export') ->addArgument('table', Argument::REQUIRED, 'export tables') ->addOption('pid', '-p', Option::VALUE_REQUIRED, 'parent level name') + ->addOption('module', '-m', Option::VALUE_REQUIRED, 'module name') ->setDescription('Just for catchAdmin export data'); } protected function execute(Input $input, Output $output) { $table = Utils::tablePrefix() . $input->getArgument('table'); - $parent = $input->getOption('pid'); + $module = $input->getOption('module'); - $data = Db::name($table)->where('deleted_at', 0)->select()->toArray(); + 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(); + } if ($parent) { $data = Tree::done($data, 0, $parent); } - file_put_contents(root_path() . DIRECTORY_SEPARATOR . $table . '.php', "exportSeed($data, $module); + } else { + file_put_contents(root_path() . DIRECTORY_SEPARATOR . $table . '.php', "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)); + } } diff --git a/extend/catcher/command/stubs/permissionSeed.stub b/extend/catcher/command/stubs/permissionSeed.stub index e69de29..410b31c 100644 --- a/extend/catcher/command/stubs/permissionSeed.stub +++ b/extend/catcher/command/stubs/permissionSeed.stub @@ -0,0 +1,24 @@ +getPermissions(), 'permissions', 'parent_id'); + } + + protected function getPermissions() + { + {DATA} + } +}