2021_06_18_150129_create_terminal_printers_table.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. use Illuminate\Database\Migrations\Migration;
  3. use Illuminate\Database\Schema\Blueprint;
  4. use Illuminate\Support\Facades\Schema;
  5. class CreateTerminalPrintersTable extends Migration
  6. {
  7. private $parent_name = '打印机';
  8. private $names = [
  9. '打印机-添加' => '基础设置-快递打印-打印机-添加',
  10. '打印机-编辑' => '基础设置-快递打印-打印机-编辑',
  11. '打印机-删除' => '基础设置-快递打印-打印机-删除',
  12. ];
  13. /**
  14. * Run the migrations.
  15. *
  16. * @return void
  17. */
  18. public function up()
  19. {
  20. Schema::create('terminal_printers', function (Blueprint $table) {
  21. $table->id();
  22. $table->string('terminal_id')->comment('终端id');
  23. $table->string('printer_name')->comment('打印机名称');
  24. $table->string('alias_name')->comment('打印机别名');
  25. $table->tinyInteger('print_type')->comment('打印类型');
  26. $table->timestamps();
  27. });
  28. $menu = \App\Menu::query()->where('route', 'maintenance/expressPrinting/part')->first();
  29. $maxMenu = \App\Menu::query()->orderByDesc('sequence')->first();
  30. $maxSequence = $maxMenu['sequence'];
  31. $menu = \App\Menu::query()->firstOrCreate(['route' => 'maintenance/expressPrinting/part/setting/printer/index'], [
  32. 'name' => '终端设置',
  33. 'level' => 3,
  34. 'parent_id' => $menu['id'],
  35. 'sequence' => $maxSequence++,
  36. ]);
  37. \App\Menu::query()->firstOrCreate(['route' => 'maintenance/expressPrinting/part/setting/printer/index'], [
  38. 'name' => '打印机',
  39. 'level' => 4,
  40. 'parent_id' => $menu['id'],
  41. 'sequence' => $maxSequence++,
  42. ]);
  43. $authority = \App\Authority::query()->firstOrCreate(['name' => '打印终端'], ['alias_name' => $this->parent_name]);
  44. foreach ($this->names as $name=>$alias_name ) {
  45. \App\Authority::query()->firstOrCreate(['name' => $name],['alias_name' => $alias_name,'parent_id' => $authority['id']]);
  46. }
  47. }
  48. /**
  49. * Reverse the migrations.
  50. *
  51. * @return void
  52. */
  53. public function down()
  54. {
  55. Schema::dropIfExists('terminal_printers');
  56. \App\Menu::query()->where('route','maintenance/expressPrinting/part/setting/printer/index')->delete();
  57. $authority = \App\Authority::query()->where( 'alias_name' , $this->parent_name)->first();
  58. if(!$authority) return ;
  59. foreach ($this->names as $name=>$alias_name ) {
  60. \App\Authority::query()->where(['name' => $name,'alias_name' => $alias_name,'parent_id' => $authority->id])->delete();
  61. }
  62. }
  63. }