118 lines
4.5 KiB
PHP
118 lines
4.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Dcat\Admin\Admin;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Arr;
|
|
use Peidikeji\Keywords\Models\Keywords;
|
|
|
|
class KeywordsTableSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
$name = 'peidikeji.dcat-admin-extension-keywords';
|
|
$extension = Admin::extension();
|
|
if (! $extension->has($name)) {
|
|
return;
|
|
}
|
|
Admin::extension()->updateManager()->update($name);
|
|
Admin::extension()->enable($name);
|
|
Keywords::truncate();
|
|
$list = [
|
|
['key' => 'crops-category', 'name' => '农作物产业分类', 'value' => '', 'list' => [
|
|
['key' => 'crops-cate-nongye', 'name' => '农业', 'type_key' => 'crops-category', 'value' => ''],
|
|
['key' => 'crops-cate-yuye', 'name' => '渔业', 'type_key' => 'crops-category', 'value' => ''],
|
|
['key' => 'crops-cate-xumuye', 'name' => '畜牧业', 'type_key' => 'crops-category', 'value' => ''],
|
|
['key' => 'crops-cate-lingye', 'name' => '林业', 'type_key' => 'crops-category', 'value' => ''],
|
|
['key' => 'crops-cate-activity', 'name' => '其他', 'type_key' => 'crops-category', 'value' => ''],
|
|
]],
|
|
[
|
|
'key' => 'device-supplier',
|
|
'name' => '设备供应商',
|
|
'value' => '',
|
|
'list' => [
|
|
['key' => 'device-supplier-linkos', 'name' => '慧联无限', 'value' => ''],
|
|
['key' => 'device-supplier-biang', 'name' => '比昂', 'value' => ''],
|
|
['key' => 'device-supplier-other', 'name' => '其它', 'value' => ''],
|
|
],
|
|
],
|
|
[
|
|
'key' => 'device-project',
|
|
'name' => '设备项目',
|
|
'value' => '',
|
|
'list' => [
|
|
[
|
|
'key' => 'device-project-cyxdnyyq',
|
|
'name' => '成渝现代高效特色农业带合作园区',
|
|
'value' => json_encode([
|
|
'username' => '成渝现代高效特色农业带合作园区',
|
|
'password' => '888888',
|
|
]),
|
|
],
|
|
[
|
|
'key' => 'device-project-nyncj',
|
|
'name' => '隆昌市农业农村局',
|
|
'value' => json_encode([
|
|
'username' => '隆昌市农业农村局',
|
|
'password' => '888888',
|
|
]),
|
|
],
|
|
[
|
|
'key' => 'device-project-syqshc',
|
|
'name' => '隆昌市石燕桥镇三合村股份经济联合社',
|
|
'value' => json_encode([
|
|
'username' => '隆昌市石燕桥镇三合村股份经济联合社',
|
|
'password' => '888888',
|
|
]),
|
|
],
|
|
['key' => 'device-project-other', 'name' => '其它', 'value' => ''],
|
|
],
|
|
]
|
|
];
|
|
|
|
$list[] = value(function () {
|
|
$list = [];
|
|
|
|
for ($i=1; $i <= 12; $i++) {
|
|
for ($j=1; $j <= 4; $j++) {
|
|
$list[] = ['key' => ($i-1)*4+$j, 'name' => "{$i}月第{$j}周", 'value' => null];
|
|
}
|
|
}
|
|
|
|
return ['key' => 'weeks-per-year', 'name' => '每年周数', 'value' => '', 'list' => $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,
|
|
'value' => $item['value'],
|
|
]);
|
|
} else {
|
|
$type = Keywords::create(Arr::except($item, 'list'));
|
|
}
|
|
$list = data_get($item, 'list');
|
|
if ($list) {
|
|
$this->createKeywords($list, $type);
|
|
}
|
|
}
|
|
}
|
|
}
|