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

461 lines
18 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'=>'用户'],
'api.store_product' => ['name' => '查询店铺商品'],
'api.store' => ['name' => '查询店铺'],
],
],
'home'=>[
'name'=>'主页',
'curd' => false,
'children' =>[
'statistics'=>['name' =>'统计预览'],
'new_users'=>['name' =>'新注册'],
'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'=>'修改银行卡'],
'agent'=>['name'=>'设置代理'],
'change_points' => ['name'=>'变更积分'],
],
],
'agent' => [
'name' => '代理等级设置',
'curd' => ['index', 'show', 'create', 'store', 'destroy'],
],
'sales_value_logs' => [
'name' => '成长值流水',
'curd' => ['index'],
],
'vip' => [
'name' => '会员卡管理',
'curd' => true,
],
'user_vip' => [
'name' => '会员卡购买记录',
'curd' => ['index', 'show'],
],
'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' =>'扣减'],
],
],
'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' =>'备注'],
],
],
'store' => [
'name' => '门店管理',
'children' => [
'info' => ['name' => '总览'],
'list' => ['name' => '信息管理', 'curd' => true],
'product' => ['name' => '商品管理', 'curd' => true],
'user' => ['name' => '员工业绩', 'curd' => ['index']],
'order' => ['name' => '订单管理', 'curd' => ['index', 'show']],
'stock' => ['name' => '库存管理', 'curd' => ['index', 'create', 'store', 'show']],
'batch' => ['name' => '批次管理', 'curd' => true],
'device' => ['name' => '设备管理', 'curd' => true],
'desk' => ['name' => '桌号管理', 'curd' => true],
],
],
'profit' => [
'name' => '提成管理',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
'children' => [
'pay' => ['name' => '修改支付状态']
],
],
'draw_activities' => [
'name' => '抽奖活动',
'curd' => true,
'children' =>[
'publish' => ['name' => '发布'],
'close' => ['name' => '关闭'],
'prize_create' => ['name' => '新增活动奖品'],
'prize_store' => ['name' => '保存活动奖品'],
'prize_edit' => ['name' => '编辑活动奖品'],
'prize_update' => ['name' => '更新活动奖品'],
'prize_delete' => ['name' => '删除活动奖品'],
'prize_stock' => ['name' => '变更库存'],
'ticket_list' => ['name' => '抽奖次数'],
'change_tickets' => ['name' => '增加/扣除抽奖次数'],
'log_list' => ['name' => '中奖记录'],
'log_complete' => ['name' => '发放奖品'],
'log_edit' => ['name' => '编辑中奖记录'],
'log_update' => ['name' => '更新中奖记录'],
],
],
'draw_prizes' => [
'name' => '奖品池',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
'children' =>[],
],
'sales_value_logs' => [
'name' => '成长值记录',
'curd' => ['index']
],
'point_logs' => [
'name' => '积分流水',
'curd' => ['index'],
'children' => [],
],
'offline_product_categories' => [
'name' => '线下订单 - 商品分类',
'curd' => ['index', 'create', 'store', 'edit', 'update', 'destroy'],
'children' => [],
],
'offline_orders' => [
'name' => '线下订单 - 线下订单',
'curd' => ['index', 'show'],
'children' => [],
],
];
// 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 = (isset($permission['curd']) && $permission['curd']) ? ($key ? $key.'.'.$slug : $slug) : $key;
$this->createPermissionData($permission['children'], $_key ?: $slug, $pper->id);
}
}
}
}