Browse Source

优化askai数据持久化

weicu
tanlongsheng 1 year ago
parent
commit
de668c4c44
  1. 10
      lib/data/services/db/database_helper.dart
  2. 17
      lib/data/services/db/sqflite_api.dart
  3. 17
      lib/modules/meeting/views/ai_bottom_sheet.dart

10
lib/data/services/db/database_helper.dart

@ -77,6 +77,16 @@ class DatabaseHelper {
speaker TEXT
)
''');
// 商务会议助手Ask AI
batch.execute('''
CREATE TABLE IF NOT EXISTS meetingai (
id INTEGER PRIMARY KEY,
meetingid INTEGER,
user TEXT,
assistant TEXT,
cruxtext TEXT
)
''');
// 商务会议助手模版分类
batch.execute('''
CREATE TABLE IF NOT EXISTS meetingcategorytemplate (

17
lib/data/services/db/sqflite_api.dart

@ -195,6 +195,23 @@ class SqfliteApi {
});
}
// 获取商务会议助手Ask AI列表
static Future getMeetingAiList(int id) async {
final db = await DatabaseHelper().database;
return await db.query(
'meetingai',
where: 'meetingid = ?',
whereArgs: [id],
orderBy: 'id DESC',
);
}
// 插入商务会议助手Ask AI
static Future insertMeetingAi(Map<String, Object?> meeting) async {
final db = await DatabaseHelper().database;
await db.insert('meetingai', meeting);
}
// 获取商务会议助手所有分类模版列表
static Future getMeetingCategoryTemplateList() async {
final db = await DatabaseHelper().database;

17
lib/modules/meeting/views/ai_bottom_sheet.dart

@ -5,6 +5,7 @@ import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import '../../../data/services/db/sqflite_api.dart';
import '../../../data/services/deapsound_ai_service.dart';
import '../controllers/meeting_details_controller.dart';
@ -29,7 +30,7 @@ class _AIBottomSheetState extends State<AIBottomSheet> {
List _dataList = [];
final List _cruxList = [
'添加代办事项',
'代办事项',
'提取结论',
'生成关键指标',
];
@ -42,6 +43,7 @@ class _AIBottomSheetState extends State<AIBottomSheet> {
void initState() {
super.initState();
_getAllText();
_getDataList();
}
void _getAllText() {
@ -53,6 +55,15 @@ class _AIBottomSheetState extends State<AIBottomSheet> {
}
}
void _getDataList() async {
List dataList = await SqfliteApi.getMeetingAiList(
_controller.meetingData.value.id,
);
setState(() {
_dataList = List.from(dataList);
});
}
@override
void dispose() {
_textController.dispose();
@ -383,6 +394,10 @@ class _AIBottomSheetState extends State<AIBottomSheet> {
_dataList.first['cruxtext'] =
text.substring(index + '@continue_asking@'.length).trim();
}
SqfliteApi.insertMeetingAi({
..._dataList.first,
'meetingid': _controller.meetingData.value.id,
});
setState(() {
_isLoading = false;
});

Loading…
Cancel
Save