| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- use Illuminate\Database\Migrations\Migration;
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Support\Facades\Schema;
- class CreateTerminalPrintersTable extends Migration
- {
- private $parent_name = '打印机';
- private $names = [
- '打印机-添加' => '基础设置-快递打印-打印机-添加',
- '打印机-编辑' => '基础设置-快递打印-打印机-编辑',
- '打印机-删除' => '基础设置-快递打印-打印机-删除',
- ];
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- Schema::create('terminal_printers', function (Blueprint $table) {
- $table->id();
- $table->string('terminal_id')->comment('终端id');
- $table->string('printer_name')->comment('打印机名称');
- $table->string('alias_name')->comment('打印机别名');
- $table->tinyInteger('print_type')->comment('打印类型');
- $table->timestamps();
- });
- $menu = \App\Menu::query()->where('route', 'maintenance/expressPrinting/part')->first();
- $maxMenu = \App\Menu::query()->orderByDesc('sequence')->first();
- $maxSequence = $maxMenu['sequence'];
- $menu = \App\Menu::query()->firstOrCreate(['route' => 'maintenance/expressPrinting/part/setting/printer/index'], [
- 'name' => '终端设置',
- 'level' => 3,
- 'parent_id' => $menu['id'],
- 'sequence' => $maxSequence++,
- ]);
- \App\Menu::query()->firstOrCreate(['route' => 'maintenance/expressPrinting/part/setting/printer/index'], [
- 'name' => '打印机',
- 'level' => 4,
- 'parent_id' => $menu['id'],
- 'sequence' => $maxSequence++,
- ]);
- $authority = \App\Authority::query()->firstOrCreate(['name' => '打印终端'], ['alias_name' => $this->parent_name]);
- foreach ($this->names as $name=>$alias_name ) {
- \App\Authority::query()->firstOrCreate(['name' => $name],['alias_name' => $alias_name,'parent_id' => $authority['id']]);
- }
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('terminal_printers');
- \App\Menu::query()->where('route','maintenance/expressPrinting/part/setting/printer/index')->delete();
- $authority = \App\Authority::query()->where( 'alias_name' , $this->parent_name)->first();
- if(!$authority) return ;
- foreach ($this->names as $name=>$alias_name ) {
- \App\Authority::query()->where(['name' => $name,'alias_name' => $alias_name,'parent_id' => $authority->id])->delete();
- }
- }
- }
|