generated from liutk/owl-admin-base
127 lines
4.2 KiB
PHP
127 lines
4.2 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Keyword;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class KeywordSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
$keywords = [
|
|
[
|
|
'key' => 'article_category',
|
|
'name' => '文章分类',
|
|
'children' => [],
|
|
],
|
|
[
|
|
'key' => 'article_tag',
|
|
'name' => '文章标签',
|
|
'children' => [],
|
|
],
|
|
[
|
|
'key' => 'banner_address',
|
|
'name' => '广告位置',
|
|
'children' => [],
|
|
],
|
|
[
|
|
'key' => 'job',
|
|
'name' => '职位',
|
|
'children' => ['普通员工', '小组长', '主管'],
|
|
],
|
|
[
|
|
'key' => 'store_category',
|
|
'name' => '门店分类',
|
|
'children' => [
|
|
['name' => '家用电器', 'children' => [
|
|
['name' => '电视'],
|
|
['name' => '冰箱'],
|
|
['name' => '洗衣机'],
|
|
]],
|
|
['name' => '手机数码', 'children' => [
|
|
['name' => '手机'],
|
|
['name' => '手机配件'],
|
|
['name' => '摄影摄像'],
|
|
]],
|
|
['name' => '电脑办公', 'children' => [
|
|
['name' => '电脑整机'],
|
|
['name' => '外设产品'],
|
|
['name' => '网络产品'],
|
|
]],
|
|
],
|
|
],
|
|
[
|
|
'key' => 'store_business',
|
|
'name' => '门店经营分类',
|
|
'children' => ['直营', '代理'],
|
|
],
|
|
[
|
|
'key' => 'store_level',
|
|
'name' => '门店等级',
|
|
'children' => ['AAA', 'AA', 'A', 'B', 'C', '无'],
|
|
],
|
|
[
|
|
'key' => 'lottery_type',
|
|
'name' => '彩种类型',
|
|
'children' => [
|
|
['name' => '大乐透', 'value' => 'ledger_item_type_1'],
|
|
['name' => '七星彩', 'value' => 'ledger_item_type_2'],
|
|
['name' => '排列三', 'value' => 'ledger_item_type_3'],
|
|
['name' => '排列五', 'value' => 'ledger_item_type_4'],
|
|
['name' => '合买', 'value' => 'ledger_item_type_5'],
|
|
['name' => '即开', 'value' => 'ledger_item_type_6'],
|
|
],
|
|
],
|
|
[
|
|
'key' => 'ledger_item_type',
|
|
'name' => '上报数据类型',
|
|
'children' => ['大乐透', '七星彩', '排列三', '排列五', '合买', '即开', ['key' => 'ledger_item_type_other', 'name' => '其他']],
|
|
],
|
|
[
|
|
'key' => 'holiday_type',
|
|
'name' => '请假类型',
|
|
'children' => ['病假', '事假'],
|
|
],
|
|
[
|
|
'key' => 'reimbursement_type',
|
|
'name' => '报销类型',
|
|
'children' => ['门店日常支出', '门店活动支出', '日常费用', '器材费', '差旅费', '车辆类报销', '会议费'],
|
|
],
|
|
];
|
|
|
|
$this->insertKeywors($keywords);
|
|
}
|
|
|
|
protected function insertKeywors(array $data = [], ?Keyword $parent = null): void
|
|
{
|
|
/** @var array */
|
|
foreach ($data as $i => $item) {
|
|
if (! is_array($item)) {
|
|
$item = ['name' => $item];
|
|
}
|
|
|
|
$item['parent_id'] = $parent?->id ?: 0;
|
|
|
|
if (! array_key_exists('sort', $item)) {
|
|
$item['sort'] = $i + 1;
|
|
}
|
|
|
|
$key = Arr::pull($item, 'key', $parent?->key.'_'.($i + 1));
|
|
|
|
/** @var \App\Models\Keyword */
|
|
$keyword = Keyword::updateOrCreate(
|
|
['key' => $key], Arr::except($item, ['children'])
|
|
);
|
|
|
|
$this->insertKeywors($item['children'] ?? [], $keyword->setRelation('parent', $parent));
|
|
}
|
|
}
|
|
}
|