123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <?php
- namespace App\Console\Commands;
- use App\Repositories\Enums\PermissionEnum;
- use App\Repositories\Models\Base\Admin;
- use App\Repositories\Models\Base\Resource;
- use App\Repositories\Models\Base\Role;
- use App\Repositories\Models\News\Message;
- use App\Repositories\Models\News\Notice;
- use App\Repositories\Models\News\UserMessage;
- use Illuminate\Console\Command;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- use Spatie\Permission\Models\Permission;
- /**
- * Class PresenterCommand
- * @package Prettus\Repository\Generators\Commands
- * @author Anderson Andrade <contato@andersonandra.de>
- */
- class InitDataCommand extends Command
- {
- /**
- * The name of command.
- *
- * @var string
- */
- protected $name = 'init:data';
- /**
- * The description of command.
- *
- * @var string
- */
- protected $description = 'init data.';
- /**
- * The type of class being generated.
- *
- * @var string
- */
- protected $type = '';
- /**
- * Execute the command.
- *
- * @return void
- * @see fire()
- */
- public function handle()
- {
- DB::statement('SET FOREIGN_KEY_CHECKS = 0'); // 禁用外键约束
- // $this->clearData();
- // $this->initRoles();
- $this->initAdmin();
- // $this->initPermissions();
- DB::statement('SET FOREIGN_KEY_CHECKS = 1'); // 启用外键约束
- $this->line('ok');
- }
- public function clearData()
- {
- Admin::query()->truncate();
- // Student::query()->truncate();
- // Teacher::query()->truncate();
- Resource::query()->truncate();
- // Lesson::query()->truncate();
- // Grade::query()->truncate();
- // LessonSchedule::query()->truncate();
- // LessonTeacher::query()->truncate();
- // Room::query()->truncate();
- // ScheduleApproveRecord::query()->truncate();
- // ScheduleApproveLog::query()->truncate();
- Message::query()->truncate();
- Notice::query()->truncate();
- UserMessage::query()->truncate();
- Role::query()->truncate();
- // AccountApply::query()->truncate();
- // ImportRecord::query()->truncate();
- // \App\Repositories\Models\Lab\LessonSchedule::query()->truncate();
- // \App\Repositories\Models\Lab\LessonTeacher::query()->truncate();
- // \App\Repositories\Models\Lab\Maintain::query()->truncate();
- // \App\Repositories\Models\Lab\OpenAppointment::query()->truncate();
- // \App\Repositories\Models\Lab\OpenAppointmentLog::query()->truncate();
- }
- public function initRoles()
- {
- Role::query()->firstOrCreate([
- 'name' => 'admin',
- ], [
- 'nickname' => '管理员',
- 'guard_name' => 'admins',
- 'is_init' => 1,
- 'status' => 1,
- ]);
- Role::query()->firstOrCreate([
- 'name' => 'monitor',
- ], [
- 'nickname' => '班长',
- 'guard_name' => 'admins',
- 'is_init' => 1,
- 'status' => 1,
- ]);
- Role::query()->firstOrCreate([
- 'name' => 'polling',
- ], [
- 'nickname' => '巡检员',
- 'guard_name' => 'admins',
- 'is_init' => 1,
- 'status' => 1,
- ]);
- }
- public function initAdmin()
- {
- $admin = Admin::query()->firstOrCreate([
- 'username' => 'superadmin',
- ], [
- 'password' => Hash::make('Q1w2e3r4!'),
- 'mobile' => '15225006562',
- 'name' => '超级管理员',
- 'type' => '0',
- 'type_id' => '0',
- 'email' => '751066209@qq.com',
- 'is_admin' => '1',
- 'status' => '1',
- ]);
- // $admin->syncRoles(['admin']);
- // $admin = Admin::query()->firstOrCreate([
- // 'username' => '2013181151',
- // ], [
- // 'password' => Hash::make('Q1w2e3r4!'),
- // 'mobile' => '15225006563',
- // 'name' => '班长',
- // 'type' => '0',
- // 'type_id' => '0',
- // 'email' => '751066208@qq.com',
- // 'is_admin' => '1',
- // 'status' => '1',
- // ]);
- // $admin->syncRoles(['monitor']);
- //
- // $admin = Admin::query()->firstOrCreate([
- // 'username' => '2013181150',
- // ], [
- // 'password' => Hash::make('Q1w2e3r4!'),
- // 'mobile' => '15225006564',
- // 'name' => '巡检员',
- // 'type' => '0',
- // 'type_id' => '0',
- // 'email' => '751066207@qq.com',
- // 'is_admin' => '1',
- // 'status' => '1',
- // ]);
- // $admin->syncRoles(['polling']);
- }
- public function initPermissions()
- {
- $admin_ps = [
- PermissionEnum::controller_task_list,
- PermissionEnum::controller_task_add,
- PermissionEnum::controller_task_del,
- PermissionEnum::controller_task_allot_all,
- PermissionEnum::controller_task_allot,
- PermissionEnum::model_task_all,
- PermissionEnum::controller_paper_list,
- PermissionEnum::controller_paper_add,
- PermissionEnum::controller_paper_del,
- PermissionEnum::model_paper_all,
- PermissionEnum::controller_paperResult_list,
- PermissionEnum::controller_paperResult_add,
- PermissionEnum::controller_paperResult_del,
- PermissionEnum::model_paperResult_all,
- PermissionEnum::controller_topic_list,
- PermissionEnum::controller_topic_add,
- PermissionEnum::controller_topic_del,
- PermissionEnum::controller_admin_list,
- PermissionEnum::controller_admin_add,
- PermissionEnum::controller_admin_del,
- PermissionEnum::model_admin_all,
- ];
- $monitor_ps = [
- PermissionEnum::controller_task_list,
- PermissionEnum::controller_task_allot,
- PermissionEnum::model_task_me,
- PermissionEnum::controller_paper_list,
- PermissionEnum::model_paper_monitor,
- PermissionEnum::controller_paperResult_list,
- PermissionEnum::model_paperResult_monitor,
- PermissionEnum::controller_admin_list,
- PermissionEnum::controller_admin_add,
- PermissionEnum::controller_admin_del,
- PermissionEnum::model_admin_monitor,
- ];
- $polling_ps = [
- PermissionEnum::controller_task_list,
- PermissionEnum::controller_paperResult_answer,
- PermissionEnum::controller_paperResult_list,
- PermissionEnum::model_paperResult_me,
- ];
- DB::statement('SET FOREIGN_KEY_CHECKS = 0'); // 禁用外键约束
- Permission::query()->truncate();
- DB::table('base_model_has_permissions')->truncate();
- DB::table('base_role_has_permissions')->truncate();
- DB::statement('SET FOREIGN_KEY_CHECKS = 1'); // 启用外键约束
- $permissions = PermissionEnum::makePermissions();
- foreach ($permissions as $item) {
- $item['guard_name'] = 'admins';
- Permission::query()->firstOrCreate($item, []);
- }
- //管理员
- $admin_permissions = Permission::query()->whereIn('name', $admin_ps)->get();
- $admin_role = Role::query()->where('name', 'admin')->first();
- $admin_role->givePermissionTo($admin_permissions);
- // //巡检员
- $teacher_permissions = Permission::query()->whereIn('name', $polling_ps)->get();
- $teacher_role = Role::query()->where('name', 'polling')->first();
- $teacher_role->givePermissionTo($teacher_permissions);
- //
- // //班长
- $student_permissions = Permission::query()->whereIn('name', $monitor_ps)->get();
- $student_role = Role::query()->where('name', 'monitor')->first();
- $student_role->givePermissionTo($student_permissions);
- }
- }
|