6
0
Fork 0
jiqu-library-server/database/seeders/AdminPermissionSeeder.php

380 lines
14 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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);
}
}
}
}