*/ 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); } }