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

385 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'=>'优惠券发送任务'],
],
],
'ad_addresses'=>[
'name'=>'广告位',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'ads'=>[
'name'=>'广告内容',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'article_categories' =>[
'name'=>'文章分类',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'articles'=>[
'name'=>'文章',
'curd' => true,
],
'product_categories'=>[
'name' =>'商品分类',
'curd'=>['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'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_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' =>'批量审核'],
],
],
'vips'=>[
'name' =>'会员等级',
'curd'=>['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'users'=>[
'name'=>'会员管理',
'curd'=>['index', 'create', 'store'],
'children'=>[
'disable' =>['name'=>'禁用'],
'enable'=>['name' =>'启用'],
],
],
'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'],
],
'coupon_send_tasks'=>[
'name' =>'优惠券发放',
'curd' => true,
'children'=>[
'start' =>['name'=>'开始任务'],
],
],
'coupon_task_logs'=>[
'name' =>'优惠券发放日志',
'curd' => ['index'],
],
'after_sales'=>[
'name' =>'售后管理',
'curd' => ['index', 'show'],
'children' => [
'verify'=>['name' =>'审核'],
'shipping'=>['name' =>'确认收货'],
'finance'=>['name' =>'确认打款'],
'tags'=>['name' =>'标签设置'],
],
],
'messages'=>[
'name' =>'公告消息',
'curd' => true,
],
'product_parts'=>[
'name' =>'商品分区',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'orders'=>[
'name' =>'订单管理',
'curd' => ['index', 'show'],
'children'=>[
'pay'=>['name' =>'支付订单'],
'reduce'=>['name' =>'订单改价'],
'remark'=>['name' =>'订单备注'],
'consignee'=>['name' =>'修改地址'],
'create_package'=>['name' =>'发货'],
'tags'=>['name' =>'标签设置'],
'export_shipping_orders'=>['name' =>'导出发货单'],
'pendding_orders'=>['name' =>'待发货单'],
'finished_orders'=>['name' =>'已完成单'],
],
],
'order_reduce_ranges'=>[
'name' =>'订单调价权限管理',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'order_packages'=>[
'name' =>'发货单',
'curd' =>['index', 'edit', 'update', 'destroy'],
'children' => [
'failed' => ['name' =>'作废'],
'tags'=>['name' =>'标签设置'],
],
],
'app_versions'=>[
'name' =>'App版本管理',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'share_bgs'=>[
'name'=>'分享背景',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'tags'=>[
'name' =>'标签管理',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'settings'=>[
'name' =>'配置管理',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
],
'wallet_to_bank_logs' => [
'name' => '提现审核',
'curd' => ['index'],
'children' => [
'verify'=>['name' =>'审核'],
],
],
'distribution_pre_incomes'=>[
'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'],
],
'quota_logs'=>[
'name' =>'新配额账户',
'curd' => ['index'],
],
'quota_v1_send_jobs'=>[
'name' => '老配额分红',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
'children' => [
'log_list'=>['name' =>'分红记录'],
],
],
'order_refunds'=>[
'name' => '售后记录',
'curd' => ['index'],
],
'import_job_logs'=>[
'name' =>'导入记录',
'curd'=>['index'],
],
'dealers' =>[
'name' =>'经销商管理',
'curd'=>['index, show, update'],
'children'=>[
'edit_lvl'=>['name' =>'修改经销商等级'],
'bonds'=>['name' =>'填写保证金'],
],
],
'dealer_products'=>[
'name'=>'批零商品',
'curd'=> true,
'children' => [
'lvl_rules'=>['name' =>'等级规则'],
'sale_rules'=>['name' =>'销售规则'],
'manage_rules' =>['name' =>'管理规则'],
],
],
'dealer_orders'=>[
'name' =>'批零订单',
'curd' => ['index', 'show'],
'children' =>[
'paid'=>['name' =>'确认收款'],
'shipping'=>['name' =>'确认发货'],
],
],
'dealer-earnings'=>[
'name' =>'资金管理',
'curd' => ['index', 'show'],
'children' => [
'pay'=>['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'])) {
foreach ($permission['curd'] as $value) {
$permission['children'][$value] = $curdArr[$value];
}
} 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);
}
}
}
}