380 lines
14 KiB
PHP
380 lines
14 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use Dcat\Admin\Models\Permission;
|
||
use Illuminate\Database\Seeder;
|
||
use Illuminate\Support\Facades\DB;
|
||
use Illuminate\Support\Facades\Log;
|
||
|
||
class AdminPermissionSeeder extends Seeder
|
||
{
|
||
/**
|
||
* Run the database seeds.
|
||
*
|
||
* @return void
|
||
*/
|
||
public function run()
|
||
{
|
||
//
|
||
$permissions = [
|
||
/** 示例 **/
|
||
// 'test'=> [
|
||
// 'name' => '测试权限',
|
||
// 'curd' => true, //true默认全部,false为不需要, ['index']为仅需要的
|
||
// 'children' => [
|
||
// 'show' => [
|
||
// 'name' => '详情',
|
||
// ],
|
||
// ],
|
||
// ],
|
||
'management'=> [
|
||
'name' => '系统管理',
|
||
'curd' => false,
|
||
'children' => [
|
||
'administrators' => [
|
||
'name' => '管理员',
|
||
'curd' => true,
|
||
],
|
||
'roles' => [
|
||
'name' => '角色',
|
||
'curd' => true,
|
||
],
|
||
'permissions' => [
|
||
'name' => '权限',
|
||
'curd' => true,
|
||
],
|
||
'menus' => [
|
||
'name' => '菜单',
|
||
'curd' => true,
|
||
],
|
||
],
|
||
],
|
||
'api'=>[
|
||
'name'=>'后台接口',
|
||
'curd' => false,
|
||
'children' => [
|
||
'api.product_categories'=>['name'=>'商品分类'],
|
||
'api.product_group_details' =>['name'=>'商品分组'],
|
||
'api.product_skus'=>['name'=>'子商品列表'],
|
||
'api.coupons'=>['name'=>'优惠券'],
|
||
'api.coupone_send_tasks'=>['name'=>'优惠券发送任务'],
|
||
'api.orders'=>['name'=>'订单'],
|
||
'api.order_products'=>['name'=>'订单商品'],
|
||
'api.users'=>['name'=>'用户'],
|
||
],
|
||
],
|
||
'home'=>[
|
||
'name'=>'主页',
|
||
'curd' => false,
|
||
'children' =>[
|
||
'home.statistics'=>['name' =>'统计预览'],
|
||
'home.new_users'=>['name' =>'新注册'],
|
||
'home.orders'=>['name' =>'订单'],
|
||
],
|
||
],
|
||
'users'=>[
|
||
'name'=>'会员管理',
|
||
'curd'=>['index', 'show', 'create', 'store', 'destroy'],
|
||
'children'=>[
|
||
'disable' =>['name'=>'禁用'],
|
||
'enable'=>['name' =>'启用'],
|
||
'frozen'=>['name' =>'冻结资产'],
|
||
'reset_password'=>['name' =>'修改密码'],
|
||
'reset_account_password'=>['name' =>'修改安全密码'],
|
||
'edit_phone'=>['name' =>'修改手机号'],
|
||
'edit_bank'=>['name'=>'修改银行卡'],
|
||
],
|
||
],
|
||
'article_categories' =>[
|
||
'name'=>'文章分类',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'articles'=>[
|
||
'name'=>'文章',
|
||
'curd' => true,
|
||
],
|
||
'ad_addresses'=>[
|
||
'name'=>'广告位',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'ads'=>[
|
||
'name'=>'广告内容',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'coupons'=>[
|
||
'name' =>'优惠券管理',
|
||
'curd' => true,
|
||
'children'=>[
|
||
'range_list' =>['name' =>'使用范围'],
|
||
],
|
||
],
|
||
'coupon_ranges'=>[
|
||
'name' =>'优惠使用范围管理',
|
||
'curd' => ['create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'shipping_templates'=>[
|
||
'name' =>'运费模板管理',
|
||
'curd' => true,
|
||
'children'=>[
|
||
'rule_list' =>['name' =>'运费规则'],
|
||
],
|
||
],
|
||
'shipping_rules'=>[
|
||
'name' =>'运费规则管理',
|
||
'curd' => ['create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
|
||
'product_categories'=>[
|
||
'name' =>'商品分类',
|
||
'curd'=>['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'product_spus'=>[
|
||
'name' =>'主商品',
|
||
'curd'=> true,
|
||
'children'=>[
|
||
'sku_list'=>['name'=>'子商品列表'],
|
||
'setting_specs'=>['name'=>'设置规格'],
|
||
'init_sku_by_specs'=>['name' =>'初始化SKU'],
|
||
'add_sku'=>['name' =>'添加子商品'],
|
||
],
|
||
],
|
||
'product_skus'=>[
|
||
'name' =>'子商品',
|
||
'curd' =>['index', 'edit', 'update', 'destroy'],
|
||
'children'=>[
|
||
'batch_release_up' => ['name'=>'批量上架申请'],
|
||
'batch_release_down'=>['name' =>'批量下架'],
|
||
'batch_release_cacel'=>['name' =>'批量取消申请'],
|
||
'batch_sku_sync_spu'=>['name' =>'批量同步主商品'],
|
||
'release_up'=> ['name'=>'上架申请'],
|
||
'release_down'=> ['name'=>'商品下架'],
|
||
'release_cacel'=> ['name'=>'取消申请'],
|
||
'sku_sync_spu'=>['name' =>'同步主商品'],
|
||
'sku_gift' =>['name' =>'赠品管理'],
|
||
],
|
||
],
|
||
'product_sku_verifies'=>[
|
||
'name' =>'商品审核',
|
||
'curd'=>['index', 'destroy'],
|
||
'children' => [
|
||
'verify'=>['name' =>'审核商品'],
|
||
'batch_verify'=>['name' =>'批量审核'],
|
||
],
|
||
],
|
||
'product_groups'=>[
|
||
'name' =>'属性分组',
|
||
'curd'=>['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'product_features'=>[
|
||
'name' =>'商品特点',
|
||
'curd' =>['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'product_buynotes'=>[
|
||
'name' =>'购买须知',
|
||
'curd'=>['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'product_parts'=>[
|
||
'name' =>'商品分区',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
'children'=>[
|
||
'coupons'=>['name'=>'赠券'],
|
||
],
|
||
],
|
||
'coupon_send_tasks'=>[
|
||
'name' =>'优惠券发放',
|
||
'curd' => true,
|
||
'children'=>[
|
||
'start' =>['name'=>'开始任务'],
|
||
],
|
||
],
|
||
'coupon_task_logs'=>[
|
||
'name' =>'优惠券发放日志',
|
||
'curd' => ['index'],
|
||
],
|
||
'messages'=>[
|
||
'name' =>'公告消息',
|
||
'curd' => true,
|
||
],
|
||
'share_bgs'=>[
|
||
'name'=>'分享背景',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'app_versions'=>[
|
||
'name' =>'App版本管理',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'orders'=>[
|
||
'name' =>'订单管理',
|
||
'curd' => ['index', 'show'],
|
||
'children'=>[
|
||
'export_shipping_orders'=>['name' =>'导出发货单'],
|
||
'export_order_products'=>['name' =>'导出商品'],
|
||
'tags'=>['name' =>'标签设置'],
|
||
'pay'=>['name' =>'支付订单'],
|
||
'reduce'=>['name' =>'订单改价'],
|
||
'remark'=>['name' =>'订单备注'],
|
||
'consignee'=>['name' =>'修改地址'],
|
||
'create_package'=>['name' =>'发货'],
|
||
'pendding_orders'=>['name' =>'待发货单'],
|
||
'finished_orders'=>['name' =>'已完成单'],
|
||
],
|
||
],
|
||
'order_reduce_ranges'=>[
|
||
'name' =>'订单调价权限管理',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'order_refunds'=>[
|
||
'name' => '退款记录',
|
||
'curd' => ['index'],
|
||
],
|
||
'order_packages'=>[
|
||
'name' =>'发货单',
|
||
'curd' =>['index', 'edit', 'update', 'destroy'],
|
||
'children' => [
|
||
'import'=>['name' =>'导入发货单'],
|
||
'failed' => ['name' =>'作废'],
|
||
'tags'=>['name' =>'标签设置'],
|
||
],
|
||
],
|
||
'import_job_logs'=>[
|
||
'name' =>'导入记录',
|
||
'curd'=>['index'],
|
||
],
|
||
'after_sales'=>[
|
||
'name' =>'售后管理',
|
||
'curd' => ['index', 'show'],
|
||
'children' => [
|
||
'verifies'=>['name' =>'售后处理'],
|
||
'verify'=>['name' =>'客服审核'],
|
||
'shippings'=>['name' =>'售后验收'],
|
||
'shipping'=>['name' =>'确认收货'],
|
||
'finances'=>['name' =>'售后打款'],
|
||
'finance'=>['name' =>'确认打款'],
|
||
'revoke'=>['name' =>'撤销'],
|
||
'tags'=>['name' =>'标签设置'],
|
||
],
|
||
],
|
||
'tags'=>[
|
||
'name' =>'标签管理',
|
||
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
|
||
],
|
||
'settings'=>[
|
||
'name' =>'配置管理',
|
||
'curd' => ['index'],
|
||
],
|
||
'wallet_logs'=>[
|
||
'name' =>'可提账户',
|
||
'curd' =>['index'],
|
||
'children' => [
|
||
'recharge'=>['name' =>'充值'],
|
||
'deduction'=>['name' =>'扣减'],
|
||
],
|
||
],
|
||
'balance_logs'=>[
|
||
'name' =>'余额账户',
|
||
'curd' =>['index'],
|
||
'children' => [
|
||
'recharge'=>['name' =>'充值'],
|
||
'deduction'=>['name' =>'扣减'],
|
||
],
|
||
],
|
||
'points_logs'=>[
|
||
'name' =>'积分账户',
|
||
'curd' => ['index'],
|
||
],
|
||
'wallet_to_bank_logs' => [
|
||
'name' => '提现审核',
|
||
'curd' => ['index'],
|
||
'children' => [
|
||
'verify'=>['name' =>'审核'],
|
||
],
|
||
],
|
||
'activities'=>[
|
||
'name' =>'活动管理',
|
||
'curd' => true,
|
||
],
|
||
'bargain_activities'=>[
|
||
'name' =>'砍价活动',
|
||
'curd'=> true,
|
||
],
|
||
'bargain_orders'=>[
|
||
'name' =>'砍价活动记录',
|
||
'curd' => ['index', 'show'],
|
||
'children'=>[
|
||
'remark'=>['name' =>'备注'],
|
||
],
|
||
],
|
||
];
|
||
// try {
|
||
// DB::begintransaction();
|
||
$this->createPermissionData($permissions);
|
||
// DB::commit();
|
||
// } catch (\Exception $e) {
|
||
// Log::error('权限录入:'.$e->getMessage());
|
||
// DB::rollBack();
|
||
// }
|
||
}
|
||
|
||
/**
|
||
* 插入权限
|
||
*
|
||
* @param array $permissions
|
||
* @param string $key
|
||
* @param integer $pId
|
||
*/
|
||
public function createPermissionData(array $permissions, string $key = '', int $pId = 0)
|
||
{
|
||
$curdArr = [
|
||
'index'=>[
|
||
'name' => '列表',
|
||
],
|
||
'create'=>[
|
||
'name' => '新增',
|
||
],
|
||
'store' =>[
|
||
'name' => '保存',
|
||
],
|
||
'edit' =>[
|
||
'name' => '修改',
|
||
],
|
||
'update'=>[
|
||
'name' => '更新',
|
||
],
|
||
'destroy'=>[
|
||
'name' => '删除',
|
||
],
|
||
'show'=>[
|
||
'name' => '详情',
|
||
],
|
||
];
|
||
foreach ($permissions as $slug => $permission) {
|
||
//是否已存在该权限
|
||
$slugKey = 'dcat.admin.'.($key ? $key.'.'.$slug : $slug);
|
||
$pper = Permission::updateOrCreate(['slug'=>$slugKey], ['name' => $permission['name'], 'parent_id' => $pId]);
|
||
|
||
if (!isset($permission['children'])) {
|
||
$permission['children'] = [];
|
||
}
|
||
//判断是否默认插入curd权限
|
||
if (isset($permission['curd']) && $permission['curd']) {
|
||
if (is_array($permission['curd'])) {
|
||
rsort($permission['curd']);
|
||
foreach ($permission['curd'] as $value) {
|
||
// $permission['children'][$value] = $curdArr[$value];
|
||
$permission['children'] = array_merge([
|
||
$value=>$curdArr[$value],
|
||
], $permission['children']);
|
||
}
|
||
} else {
|
||
$permission['children'] = array_merge($curdArr, $permission['children']);
|
||
}
|
||
}
|
||
if (count($permission['children']) > 0) {
|
||
$_key = $permission['curd'] ? ($key ? $key.'.'.$slug : $slug) : $key;
|
||
$this->createPermissionData($permission['children'], $_key ?? $slug, $pper->id);
|
||
}
|
||
}
|
||
}
|
||
}
|