|
|
<?php
|
|
|
|
|
|
namespace Database\Seeders;
|
|
|
|
|
|
use App\Models\Paper;
|
|
|
use App\Models\Teacher;
|
|
|
use App\Models\University;
|
|
|
use Illuminate\Database\Seeder;
|
|
|
|
|
|
/**
|
|
|
* 演示论文库数据(对齐 prototype papers.html)。
|
|
|
*/
|
|
|
class PaperSampleSeeder extends Seeder
|
|
|
{
|
|
|
public function run(): void
|
|
|
{
|
|
|
$sjtu = University::query()->where('name', '上海交通大学')->first();
|
|
|
$zju = University::query()->where('name', '浙江大学')->first();
|
|
|
$fdu = University::query()->where('name', '复旦大学')->first();
|
|
|
|
|
|
$samples = [
|
|
|
[
|
|
|
'title' => 'Graph Neural Networks for Materials Discovery',
|
|
|
'authors' => 'Zhang, Li',
|
|
|
'school_name' => '上海交通大学',
|
|
|
'university_id' => $sjtu?->id,
|
|
|
'published_at' => '2025-11-01',
|
|
|
'url' => 'https://example.com/paper/gnn-materials',
|
|
|
'summary' => '图神经网络在材料发现中的高通量筛选方法。',
|
|
|
'source' => 'crawl',
|
|
|
],
|
|
|
[
|
|
|
'title' => 'Efficient LLM Inference on Edge Devices',
|
|
|
'authors' => 'Wang et al.',
|
|
|
'school_name' => '浙江大学',
|
|
|
'university_id' => $zju?->id,
|
|
|
'published_at' => '2026-01-01',
|
|
|
'url' => 'https://example.com/paper/llm-edge',
|
|
|
'summary' => '面向边缘端的低延迟大模型推理优化。',
|
|
|
'source' => 'crawl',
|
|
|
],
|
|
|
[
|
|
|
'title' => 'Multiscale simulation workflow for catalyst screening',
|
|
|
'authors' => 'Sun Wei',
|
|
|
'school_name' => '复旦大学',
|
|
|
'university_id' => $fdu?->id,
|
|
|
'published_at' => '2024-09-01',
|
|
|
'url' => 'https://example.com/paper/catalyst-screening',
|
|
|
'summary' => '结合多尺度模拟与机器学习排序的催化剂候选材料筛选流程。',
|
|
|
'source' => 'manual',
|
|
|
],
|
|
|
];
|
|
|
|
|
|
foreach ($samples as $row) {
|
|
|
$paper = Paper::query()->firstOrCreate(
|
|
|
['title' => $row['title']],
|
|
|
$row
|
|
|
);
|
|
|
|
|
|
if ($row['source'] === 'manual' && $sjtu) {
|
|
|
$teacher = Teacher::query()
|
|
|
->where('university_id', $sjtu->id)
|
|
|
->where('name', '张某某')
|
|
|
->first();
|
|
|
if ($teacher) {
|
|
|
$teacher->papers()->syncWithoutDetaching([$paper->id]);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|