80 lines
3.8 KiB
PHP
80 lines
3.8 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Keyword;
|
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class KeywordSeeder extends Seeder
|
|
{
|
|
use WithoutModelEvents;
|
|
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
Keyword::truncate();
|
|
$list = [
|
|
['key' => 'cost_nope', 'name' => '费用项', 'value' => '', 'list' => [
|
|
['key' => 'live_fee', 'name' => '入住费用项', 'type_key' => 'cost_nope', 'value' => '', 'list'=>[
|
|
['key' => 'live_base_fee', 'name' => '综合服务费', 'type_key' => 'live_fee', 'value' => ''],
|
|
['key' => 'physical', 'name' => '体检', 'type_key' => 'live_fee', 'value' => ''],
|
|
['key' => 'heating', 'name' => '暖气费', 'type_key' => 'live_fee', 'value' => ''],
|
|
['key' => 'bedding', 'name' => '床上用品', 'type_key' => 'live_fee', 'value' => ''],
|
|
]],
|
|
['key' => 'continue_fee', 'name' => '续住费用项', 'type_key' => 'cost_nope', 'value' => '', 'list'=>[
|
|
['key' => 'continue_base_fee', 'name' => '综合服务费', 'type_key' => 'continue_fee', 'value' => ''],
|
|
['key' => 'water_fee', 'name' => '水电费', 'type_key' => 'continue_fee', 'value' => ''],
|
|
['key' => 'nurse_items', 'name' => '护理用品', 'type_key' => 'continue_fee', 'value' => ''],
|
|
['key' => 'check_up', 'name' => '血糖检查', 'type_key' => 'continue_fee', 'value' => ''],
|
|
['key' => 'use_car', 'name' => '出车', 'type_key' => 'continue_fee', 'value' => ''],
|
|
['key' => 'litle_mall', 'name' => '小卖部', 'type_key' => 'continue_fee', 'value' => ''],
|
|
]],
|
|
['key' => 'bonds_fee', 'name' => '保证金', 'type_key' => 'cost_nope', 'value' => '', 'list'=>[
|
|
['key' => 'live_in', 'name' => '入住', 'type_key' => 'bonds_fee', 'value' => ''],
|
|
['key' => 'room_items', 'name' => '房间物品', 'type_key' => 'bonds_fee', 'value' => ''],
|
|
['key' => 'health', 'name' => '医疗', 'type_key' => 'bonds_fee', 'value' => ''],
|
|
]],
|
|
]],
|
|
['key' => 'nurse_lv', 'name' => '护理等级', 'value' => '', 'list' => [
|
|
['key' => 'nurse_lv_1', 'name' => '自理', 'type_key' => 'nurse_lv', 'value' => 1],
|
|
['key' => 'nurse_lv_2', 'name' => '介护一级', 'type_key' => 'nurse_lv', 'value' => 2],
|
|
['key' => 'nurse_lv_3', 'name' => '介护二级', 'type_key' => 'nurse_lv', 'value' => 3],
|
|
['key' => 'nurse_lv_4', 'name' => '介护三级', 'type_key' => 'nurse_lv', 'value' => 4],
|
|
['key' => 'nurse_lv_5', 'name' => '介护四级', 'type_key' => 'nurse_lv', 'value' => 5],
|
|
]],
|
|
];
|
|
|
|
if ($list) {
|
|
$this->createKeywords($list);
|
|
}
|
|
}
|
|
|
|
private function createKeywords($keywords, $parentType = null)
|
|
{
|
|
foreach ($keywords as $item) {
|
|
if ($parentType) {
|
|
$type = Keyword::create([
|
|
'name' => $item['name'],
|
|
'key' => $item['key'] ?? $parentType->key.($parentType + 1),
|
|
'type_key' => $parentType->key,
|
|
'level' => ($parentType->level ?? 1) + 1,
|
|
'parent_id' => $parentType->id,
|
|
'value' => $item['value'],
|
|
]);
|
|
} else {
|
|
$type = Keyword::create(Arr::except($item, 'list'));
|
|
}
|
|
$list = data_get($item, 'list');
|
|
if ($list) {
|
|
$this->createKeywords($list, $type);
|
|
}
|
|
}
|
|
}
|
|
}
|