|
|
@ -1,5 +1,6 @@ |
|
|
import 'package:flutter/material.dart'; |
|
|
import 'package:flutter/material.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
|
|
|
import '/core/utils/logger.dart'; |
|
|
|
|
|
|
|
|
import 'database_helper.dart'; |
|
|
import 'database_helper.dart'; |
|
|
|
|
|
|
|
|
@ -182,6 +183,42 @@ class SqfliteApi { |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static String _getMeetingTemplateLanguageCode() { |
|
|
|
|
|
final locale = Get.locale ?? Get.deviceLocale; |
|
|
|
|
|
if (locale == null) { |
|
|
|
|
|
return 'en-US'; |
|
|
|
|
|
} |
|
|
|
|
|
final code = locale.languageCode.toLowerCase(); |
|
|
|
|
|
switch (code) { |
|
|
|
|
|
case 'zh': |
|
|
|
|
|
return 'zh-CN'; |
|
|
|
|
|
case 'en': |
|
|
|
|
|
return 'en-US'; |
|
|
|
|
|
case 'ja': |
|
|
|
|
|
return 'ja-JP'; |
|
|
|
|
|
case 'ko': |
|
|
|
|
|
return 'ko-KR'; |
|
|
|
|
|
case 'fr': |
|
|
|
|
|
return 'fr-FR'; |
|
|
|
|
|
case 'de': |
|
|
|
|
|
return 'de-DE'; |
|
|
|
|
|
case 'es': |
|
|
|
|
|
return 'es-ES'; |
|
|
|
|
|
case 'it': |
|
|
|
|
|
return 'it-IT'; |
|
|
|
|
|
case 'pt': |
|
|
|
|
|
return 'pt-BR'; |
|
|
|
|
|
case 'ru': |
|
|
|
|
|
return 'ru-RU'; |
|
|
|
|
|
case 'ar': |
|
|
|
|
|
return 'ar-SA'; |
|
|
|
|
|
case 'hi': |
|
|
|
|
|
return 'hi-IN'; |
|
|
|
|
|
default: |
|
|
|
|
|
return 'en-US'; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 获取商务会议助手Ask AI列表 |
|
|
// 获取商务会议助手Ask AI列表 |
|
|
static Future getMeetingAiList(int id) async { |
|
|
static Future getMeetingAiList(int id) async { |
|
|
final db = await DatabaseHelper().database; |
|
|
final db = await DatabaseHelper().database; |
|
|
@ -223,6 +260,7 @@ class SqfliteApi { |
|
|
'desc': item['description'], |
|
|
'desc': item['description'], |
|
|
'outline': item['outline'], |
|
|
'outline': item['outline'], |
|
|
'prompt': item['template'], |
|
|
'prompt': item['template'], |
|
|
|
|
|
'language': item['language'], |
|
|
}; |
|
|
}; |
|
|
if (result != null) { |
|
|
if (result != null) { |
|
|
result['templates'].add(template); |
|
|
result['templates'].add(template); |
|
|
@ -230,6 +268,7 @@ class SqfliteApi { |
|
|
categoryList.add({ |
|
|
categoryList.add({ |
|
|
'name': item['ttype'], |
|
|
'name': item['ttype'], |
|
|
'templates': [template], |
|
|
'templates': [template], |
|
|
|
|
|
'language': item['language'], |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -252,6 +291,7 @@ class SqfliteApi { |
|
|
await txn.insert('meetingcategorytemplate', { |
|
|
await txn.insert('meetingcategorytemplate', { |
|
|
'id': categoryId, |
|
|
'id': categoryId, |
|
|
'name': item['name'], |
|
|
'name': item['name'], |
|
|
|
|
|
'language': item['language'], |
|
|
}); |
|
|
}); |
|
|
for (var j = 0; j < item['templates'].length; j++) { |
|
|
for (var j = 0; j < item['templates'].length; j++) { |
|
|
Map template = item['templates'][j]; |
|
|
Map template = item['templates'][j]; |
|
|
@ -264,6 +304,7 @@ class SqfliteApi { |
|
|
'desc': template['desc'], |
|
|
'desc': template['desc'], |
|
|
'outline': template['outline'], |
|
|
'outline': template['outline'], |
|
|
'prompt': template['prompt'], |
|
|
'prompt': template['prompt'], |
|
|
|
|
|
'language': template['language'], |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -272,15 +313,22 @@ class SqfliteApi { |
|
|
|
|
|
|
|
|
// 获取商务会议助手所有分类模版列表 |
|
|
// 获取商务会议助手所有分类模版列表 |
|
|
static Future getMeetingCategoryTemplateList() async { |
|
|
static Future getMeetingCategoryTemplateList() async { |
|
|
|
|
|
final language = _getMeetingTemplateLanguageCode(); |
|
|
|
|
|
Logger.info('language: $language'); |
|
|
final db = await DatabaseHelper().database; |
|
|
final db = await DatabaseHelper().database; |
|
|
List categorytemplateList = await db.query('meetingcategorytemplate'); |
|
|
List categorytemplateList = await db.query( |
|
|
|
|
|
'meetingcategorytemplate', |
|
|
|
|
|
where: '(language = ? OR language IS NULL OR language = "")', |
|
|
|
|
|
whereArgs: [language], |
|
|
|
|
|
); |
|
|
|
|
|
Logger.info('categorytemplateList: $categorytemplateList'); |
|
|
final dataList = |
|
|
final dataList = |
|
|
categorytemplateList.map((item) => Map.from(item)).toList(); |
|
|
categorytemplateList.map((item) => Map.from(item)).toList(); |
|
|
for (var element in dataList) { |
|
|
for (var element in dataList) { |
|
|
final List templateList = await db.query( |
|
|
final List templateList = await db.query( |
|
|
'meetingtemplate', |
|
|
'meetingtemplate', |
|
|
limit: 4, |
|
|
limit: 4, |
|
|
where: 'categoryid = ?', |
|
|
where: 'categoryid = ? ', |
|
|
whereArgs: [element['id']], |
|
|
whereArgs: [element['id']], |
|
|
orderBy: 'id ${element['name'] == '自定义' ? 'DESC' : 'ASC'}', |
|
|
orderBy: 'id ${element['name'] == '自定义' ? 'DESC' : 'ASC'}', |
|
|
); |
|
|
); |
|
|
@ -296,11 +344,13 @@ class SqfliteApi { |
|
|
|
|
|
|
|
|
// 获取商务会议助手模版列表 |
|
|
// 获取商务会议助手模版列表 |
|
|
static Future getMeetingTemplateList(int id, {bool isCustom = false}) async { |
|
|
static Future getMeetingTemplateList(int id, {bool isCustom = false}) async { |
|
|
|
|
|
final language = _getMeetingTemplateLanguageCode(); |
|
|
|
|
|
Logger.info('language: $language'); |
|
|
final db = await DatabaseHelper().database; |
|
|
final db = await DatabaseHelper().database; |
|
|
return await db.query( |
|
|
return await db.query( |
|
|
'meetingtemplate', |
|
|
'meetingtemplate', |
|
|
where: 'categoryid = ?', |
|
|
where: 'categoryid = ? AND language = ?', |
|
|
whereArgs: [id], |
|
|
whereArgs: [id, language], |
|
|
orderBy: 'id ${isCustom ? 'DESC' : 'ASC'}', |
|
|
orderBy: 'id ${isCustom ? 'DESC' : 'ASC'}', |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|