'查看订单', 'slug' => 'order.view', 'group' => '订单管理'], ['name' => '编辑订单', 'slug' => 'order.edit', 'group' => '订单管理'], ['name' => '审核订单', 'slug' => 'order.audit', 'group' => '订单管理'], ['name' => '驳回订单', 'slug' => 'order.reject', 'group' => '订单管理'], ['name' => '导出订单', 'slug' => 'order.export', 'group' => '订单管理'], // 商品管理 ['name' => '查看商品', 'slug' => 'goods.view', 'group' => '商品管理'], ['name' => '编辑商品', 'slug' => 'goods.edit', 'group' => '商品管理'], ['name' => '推送商品', 'slug' => 'goods.push', 'group' => '商品管理'], // 仓库管理 ['name' => '查看仓库', 'slug' => 'warehouse.view', 'group' => '仓库管理'], ['name' => '编辑仓库', 'slug' => 'warehouse.edit', 'group' => '仓库管理'], ['name' => '采购管理', 'slug' => 'warehouse.purchase', 'group' => '仓库管理'], ['name' => '收货管理', 'slug' => 'warehouse.receiving', 'group' => '仓库管理'], ['name' => '库存管理', 'slug' => 'warehouse.stock', 'group' => '仓库管理'], // 打印管理 ['name' => '查看打印', 'slug' => 'print.view', 'group' => '打印管理'], ['name' => '批量打印', 'slug' => 'print.batch', 'group' => '打印管理'], ['name' => '模板设计', 'slug' => 'print.design', 'group' => '打印管理'], // 平台管理 ['name' => '店铺管理', 'slug' => 'platform.shop', 'group' => '平台管理'], ['name' => '运单账号', 'slug' => 'platform.waybill', 'group' => '平台管理'], // 系统设置 ['name' => '品牌管理', 'slug' => 'settings.brand', 'group' => '系统设置'], ['name' => '供应商管理', 'slug' => 'settings.supplier', 'group' => '系统设置'], ['name' => '用户管理', 'slug' => 'settings.user', 'group' => '系统设置'], ['name' => '角色权限', 'slug' => 'settings.role', 'group' => '系统设置'], ['name' => '操作日志', 'slug' => 'settings.log', 'group' => '系统设置'], ['name' => '第三方配置', 'slug' => 'settings.config', 'group' => '系统设置'], ]; foreach ($permissions as $index => $perm) { Permission::updateOrCreate( ['slug' => $perm['slug']], [ 'name' => $perm['name'], 'group_name' => $perm['group'], 'sort' => $index, ] ); } // 创建角色 $roles = [ [ 'name' => '超管', 'slug' => 'super_admin', 'level' => 100, 'description' => '系统超级管理员,拥有所有权限', 'permissions' => ['*'], // * 表示所有权限 ], [ 'name' => '管理员', 'slug' => 'admin', 'level' => 80, 'description' => '系统管理员,可管理大部分功能', 'permissions' => [ 'order.*', 'goods.*', 'warehouse.*', 'print.*', 'platform.*', 'settings.brand', 'settings.supplier', 'settings.user', 'settings.role', 'settings.log', ], ], [ 'name' => '运营', 'slug' => 'operation', 'level' => 60, 'description' => '运营人员,负责订单和商品管理', 'permissions' => [ 'order.*', 'goods.*', 'warehouse.view', 'print.*', ], ], [ 'name' => '仓库管理', 'slug' => 'warehouse_manager', 'level' => 50, 'description' => '仓库管理员,负责仓库和库存管理', 'permissions' => [ 'warehouse.*', 'print.*', ], ], [ 'name' => '财务', 'slug' => 'finance', 'level' => 50, 'description' => '财务人员,仅查看数据', 'permissions' => [ 'order.view', 'warehouse.view', 'goods.view', ], ], [ 'name' => '库管', 'slug' => 'stock_manager', 'level' => 40, 'description' => '库管人员,负责库存操作', 'permissions' => [ 'warehouse.view', 'warehouse.stock', 'print.view', ], ], [ 'name' => '订单员', 'slug' => 'order_operator', 'level' => 30, 'description' => '订单操作人员', 'permissions' => [ 'order.view', 'order.edit', 'print.view', 'print.batch', ], ], ]; foreach ($roles as $roleData) { $permissions = $roleData['permissions']; unset($roleData['permissions']); $role = Role::updateOrCreate( ['slug' => $roleData['slug']], $roleData ); // 分配权限 if ($permissions === ['*']) { // 超管拥有所有权限 $role->permissions()->sync(Permission::pluck('id')); } else { $permIds = Permission::whereIn('slug', $permissions)->pluck('id'); $role->permissions()->sync($permIds); } } } }