This commit is contained in:
sjk
2025-11-17 13:39:05 +08:00
commit d4cfe2b9de
479 changed files with 109324 additions and 0 deletions

View File

@@ -0,0 +1,368 @@
import '../models/vocabulary_book_model.dart';
import '../models/vocabulary_book_category.dart';
/// 词汇书数据服务
class VocabularyDataService {
/// 获取模拟的词汇书数据(根据分类)
static List<VocabularyBook> getVocabularyBooksByCategory(VocabularyBookMainCategory category) {
final baseTime = DateTime.now();
switch (category) {
case VocabularyBookMainCategory.academicStage:
return [
_createVocabularyBook(
id: 'primary_core_1000',
name: '小学英语核心词汇',
description: '小学阶段必备的1000个核心词汇涵盖日常生活场景',
totalWords: 1000,
tags: ['小学', '基础', '日常用语'],
difficulty: VocabularyBookDifficulty.beginner,
category: category,
),
_createVocabularyBook(
id: 'junior_high_1500',
name: '初中英语词汇',
description: '初中阶段1500-2500词汇结合教材要求',
totalWords: 1500,
tags: ['初中', '教材', '基础'],
difficulty: VocabularyBookDifficulty.beginner,
category: category,
),
_createVocabularyBook(
id: 'senior_high_3500',
name: '高中英语词汇',
description: '高中阶段2500-3500词汇涵盖课标与高考高频词',
totalWords: 3500,
tags: ['高中', '高考', '课标'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'college_textbook',
name: '大学英语教材词汇',
description: '大学英语精读/泛读配套词汇',
totalWords: 2000,
tags: ['大学', '教材', '精读'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
];
case VocabularyBookMainCategory.domesticTest:
return [
_createVocabularyBook(
id: 'cet4_vocabulary',
name: '大学四级词汇(CET-4)',
description: '大学英语四级考试核心词汇',
totalWords: 4500,
tags: ['四级', 'CET-4', '考试'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'cet6_vocabulary',
name: '大学六级词汇(CET-6)',
description: '大学英语六级考试核心词汇',
totalWords: 5500,
tags: ['六级', 'CET-6', '考试'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'postgraduate_vocabulary',
name: '考研英语核心词汇',
description: '考研英语必备核心词汇',
totalWords: 5500,
tags: ['考研', '研究生', '核心词汇'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'tem4_vocabulary',
name: '专四词汇(TEM-4)',
description: '英语专业四级考试词汇',
totalWords: 8000,
tags: ['专四', 'TEM-4', '英语专业'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'tem8_vocabulary',
name: '专八词汇(TEM-8)',
description: '英语专业八级考试词汇',
totalWords: 12000,
tags: ['专八', 'TEM-8', '英语专业'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
];
case VocabularyBookMainCategory.internationalTest:
return [
_createVocabularyBook(
id: 'ielts_academic',
name: '雅思学术词汇(IELTS Academic)',
description: '雅思学术类考试核心词汇',
totalWords: 8000,
tags: ['雅思', 'IELTS', '学术类'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'ielts_general',
name: '雅思通用词汇(IELTS General)',
description: '雅思通用类考试核心词汇',
totalWords: 6000,
tags: ['雅思', 'IELTS', '通用类'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'toefl_ibt',
name: '托福词汇(TOEFL iBT)',
description: '托福网考核心词汇',
totalWords: 10000,
tags: ['托福', 'TOEFL', 'iBT'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'toeic_vocabulary',
name: '托业词汇(TOEIC)',
description: '托业考试职场应用词汇',
totalWords: 6000,
tags: ['托业', 'TOEIC', '职场'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'gre_vocabulary',
name: 'GRE词汇',
description: 'GRE学术/研究生申请词汇',
totalWords: 15000,
tags: ['GRE', '研究生', '学术'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'gmat_vocabulary',
name: 'GMAT词汇',
description: 'GMAT商科/管理类研究生词汇',
totalWords: 8000,
tags: ['GMAT', '商科', '管理'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'sat_vocabulary',
name: 'SAT词汇',
description: 'SAT美本申请词汇',
totalWords: 5000,
tags: ['SAT', '美本', '申请'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
];
case VocabularyBookMainCategory.professional:
return [
_createVocabularyBook(
id: 'bec_preliminary',
name: '商务英语初级(BEC Preliminary)',
description: 'BEC初级商务英语词汇',
totalWords: 3000,
tags: ['BEC', '商务', '初级'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'bec_vantage',
name: '商务英语中级(BEC Vantage)',
description: 'BEC中级商务英语词汇',
totalWords: 4000,
tags: ['BEC', '商务', '中级'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'bec_higher',
name: '商务英语高级(BEC Higher)',
description: 'BEC高级商务英语词汇',
totalWords: 5000,
tags: ['BEC', '商务', '高级'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'mba_finance',
name: 'MBA/金融词汇',
description: 'MBA、金融、会计、经济学专业词汇',
totalWords: 6000,
tags: ['MBA', '金融', '会计'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'medical_english',
name: '医学英语词汇',
description: '医学专业英语词汇',
totalWords: 8000,
tags: ['医学', '专业', '医疗'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'legal_english',
name: '法律英语词汇',
description: '法律专业英语词汇',
totalWords: 5000,
tags: ['法律', '专业', '司法'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'it_engineering',
name: '工程与IT英语',
description: '计算机科学、人工智能、软件工程词汇',
totalWords: 4000,
tags: ['IT', '工程', '计算机'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'academic_english',
name: '学术英语(EAP)',
description: '学术英语写作/阅读/科研常用词汇',
totalWords: 6000,
tags: ['学术', 'EAP', '科研'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
];
case VocabularyBookMainCategory.functional:
return [
_createVocabularyBook(
id: 'word_roots_affixes',
name: '词根词缀词汇',
description: '帮助记忆与扩展的词根词缀词汇',
totalWords: 3000,
tags: ['词根', '词缀', '记忆'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'synonyms_antonyms',
name: '同义词/反义词库',
description: '同义词、反义词、近义搭配库',
totalWords: 2500,
tags: ['同义词', '反义词', '搭配'],
difficulty: VocabularyBookDifficulty.intermediate,
category: category,
),
_createVocabularyBook(
id: 'daily_spoken_collocations',
name: '日常口语搭配库',
description: '日常口语常用搭配库',
totalWords: 1500,
tags: ['口语', '搭配', '日常'],
difficulty: VocabularyBookDifficulty.beginner,
category: category,
),
_createVocabularyBook(
id: 'academic_spoken_collocations',
name: '学术口语搭配库',
description: '学术口语常用搭配库',
totalWords: 2000,
tags: ['学术', '口语', '搭配'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'academic_writing_collocations',
name: '学术写作搭配库',
description: '学术写作常用搭配库(Collocations)',
totalWords: 2500,
tags: ['学术', '写作', '搭配'],
difficulty: VocabularyBookDifficulty.advanced,
category: category,
),
_createVocabularyBook(
id: 'daily_life_english',
name: '日常生活英语',
description: '旅游、点餐、购物、出行、租房等日常生活英语',
totalWords: 2000,
tags: ['日常', '生活', '实用'],
difficulty: VocabularyBookDifficulty.beginner,
category: category,
),
];
}
}
/// 创建词汇书的辅助方法
static VocabularyBook _createVocabularyBook({
required String id,
required String name,
required String description,
required int totalWords,
required List<String> tags,
required VocabularyBookDifficulty difficulty,
required VocabularyBookMainCategory category,
}) {
final coverImages = [
'https://images.unsplash.com/photo-1503676260728-1c00da094a0b?w=300',
'https://images.unsplash.com/photo-1481627834876-b7833e8f5570?w=300',
'https://images.unsplash.com/photo-1434030216411-0b793f4b4173?w=300',
'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=300',
'https://images.unsplash.com/photo-1456513080510-7bf3a84b82f8?w=300',
];
return VocabularyBook(
id: id,
name: name,
description: description,
type: VocabularyBookType.system,
difficulty: difficulty,
coverImageUrl: coverImages[id.hashCode % coverImages.length],
totalWords: totalWords,
isPublic: true,
tags: tags,
mainCategory: category,
targetLevels: _getTargetLevels(category),
estimatedDays: (totalWords / 20).ceil(),
dailyWordCount: 20,
downloadCount: (totalWords * 0.3).round(),
rating: 4.2 + (id.hashCode % 8) * 0.1,
reviewCount: 50 + (id.hashCode % 200),
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
);
}
/// 根据分类获取目标等级
static List<String> _getTargetLevels(VocabularyBookMainCategory category) {
switch (category) {
case VocabularyBookMainCategory.academicStage:
return ['小学', '初中', '高中', '大学'];
case VocabularyBookMainCategory.domesticTest:
return ['大学', '研究生'];
case VocabularyBookMainCategory.internationalTest:
return ['大学', '研究生', '出国'];
case VocabularyBookMainCategory.professional:
return ['职场', '专业'];
case VocabularyBookMainCategory.functional:
return ['通用'];
}
}
/// 获取推荐词汇书(首页显示)
static List<VocabularyBook> getRecommendedVocabularyBooks() {
final recommended = <VocabularyBook>[];
for (final category in VocabularyBookMainCategory.values) {
final categoryBooks = getVocabularyBooksByCategory(category).take(2);
recommended.addAll(categoryBooks);
}
return recommended;
}
}