调整字典表

dev
vine_liutk 2022-10-09 13:50:21 +08:00
parent 62b78f812f
commit 02f37d22c1
2 changed files with 37 additions and 19 deletions

View File

@ -2,7 +2,6 @@
namespace App\Http\Controllers;
use App\Models\AdminUser;
use Illuminate\Http\Request;
use App\Exceptions\BizException;
use Illuminate\Support\Facades\Hash;

View File

@ -25,28 +25,47 @@ class KeywordsTableSeeder extends Seeder
Admin::extension()->enable($name);
Keywords::truncate();
$list = [
['key' => 'crops-category', 'name' => '农作物产业分类', 'value' => '', 'list' => [
['key' => 'crops-cate-nongye', 'name' => '农业', 'type_key'=>'crops-category', 'value' => '', 'list' =>[
['key' => 'crops-shuidao', 'name' => '水稻', 'type_key'=>'crops-cate-nongye', 'value' => ''],
['key' => 'crops-papagan', 'name' => '耙耙柑', 'type_key'=>'crops-cate-nongye', 'value' => ''],
['key' => 'crops-aiyuan', 'name' => '爱媛', 'type_key'=>'crops-cate-nongye', 'value' => ''],
['key' => 'crops-buzhihuo', 'name' => '不知火', 'type_key'=>'crops-cate-nongye', 'value' => '']
]],
['key' => 'crops-cate-yuye', 'name' => '渔业', 'type_key'=>'crops-category', 'value' => '', 'list' =>[
['key' => 'crops-shengzhu', 'name' => '生猪', 'type_key'=>'crops-cate-xumuye', 'value' => ''],
]],
['key' => 'crops-cate-xumuye', 'name' => '畜牧业', 'type_key'=>'crops-category', 'value' => '', 'list' => [
['key' => 'crops-huocaoyu', 'name' => '活草鱼', 'type_key'=>'crops-cate-yuye', 'value' => ''],
['key' => 'crops-daoxia', 'name' => '稻虾', 'type_key'=>'crops-cate-yuye', 'value' => ''],
['key' => 'crops-wuyu', 'name' => '乌鱼', 'type_key'=>'crops-cate-yuye', 'value' => ''],
['key' => 'crops-luyu', 'name' => '鲈鱼', 'type_key'=>'crops-cate-yuye', 'value' => ''],
]],
['key' => 'crops-cate-lingye', 'name' => '林业', 'type_key'=>'crops-category', 'value' => ''],
]],
];
foreach ($list as $item) {
$type = Keywords::create(Arr::except($item, 'list'));
if($list){
$this->createKeywords($list);
}
}
private function createKeywords($keywords, $parentType = null){
foreach ($keywords as $item) {
if($parentType){
$type = Keywords::create([
'name' => $item['name'],
'key' => $item['key'] ?? $parentType->key.($parentType + 1),
'type_key' => $parentType->key,
'level' => ($parentType->level ?? 1) + 1,
'parent_id' => $parentType->id,
]);
}else{
$type = Keywords::create(Arr::except($item, 'list'));
}
$list = data_get($item, 'list');
if ($list) {
$keywords = [];
foreach ($list as $index => $name) {
$template = [
'key' => $type->key.($index + 1),
'type_key' => $type->key,
'level' => $type->level + 1,
];
if (is_array($name)) {
$template = array_merge($template, $name);
} else {
$template['name'] = $name;
}
array_push($keywords, $template);
}
$type->children()->createMany($keywords);
if($list){
$this->createKeywords($list, $type);
}
}
}