You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
3.5 KiB

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'database_helper.dart';
class SqfliteApi {
// 获取商务会议助手列表
static Future getMeetingList(int page) async {
final db = await DatabaseHelper().database;
return await db.query(
'meeting',
limit: 10,
offset: (page - 1) * 10,
orderBy: 'creationtime DESC',
);
}
// 获取商务会议助手详情
static Future getMeetingDetails(id) async {
final db = await DatabaseHelper().database;
List meetingList =
await db.query('meeting', where: 'id = ?', whereArgs: [id]);
List detailsList = await db.query(
'meetingdetails',
where: 'meetingid = ?',
whereArgs: [id],
);
return <String, dynamic>{
...meetingList.first,
'details': detailsList.first
};
}
// 插入商务会议助手
static Future insertMeeting(Map<String, Object?> meeting) async {
final db = await DatabaseHelper().database;
try {
int id = 0;
await db.transaction((txn) async {
id = await txn.insert('meeting', {
'title': meeting['title'],
'content': meeting['firstContent'],
'seconds': meeting['seconds'],
'address': meeting['address'],
'longitude': meeting['longitude'],
'latitude': meeting['latitude'],
'creationtime': meeting['creationTime'],
});
await txn.insert('meetingdetails', {
'meetingid': id,
'audio': meeting['audio'],
'content': meeting['content'],
'aisummary': meeting['aisummary'],
});
});
return id;
} catch (e) {
Get.snackbar(
'error'.tr, // 错误
'unknownError'.tr,
snackPosition: SnackPosition.TOP,
backgroundColor: Colors.red.withOpacity(0.1),
colorText: Colors.red,
);
return;
}
}
// 修改商务会议助手
static Future editMeeting(id, Map<String, Object?> meeting) async {
final db = await DatabaseHelper().database;
try {
await db.transaction((txn) async {
await txn.update(
'meeting',
{
'title': meeting['title'],
'content': meeting['firstContent'],
'seconds': meeting['seconds'],
'address': meeting['address'],
'longitude': meeting['longitude'],
'latitude': meeting['latitude'],
},
where: 'id = ?',
whereArgs: [id],
);
await txn.update(
'meetingdetails',
{
'content': meeting['content'],
'aisummary': meeting['aisummary'],
},
where: 'meetingid = ?',
whereArgs: [id],
);
});
return true;
} catch (e) {
Get.snackbar(
'error'.tr, // 错误
'unknownError'.tr,
snackPosition: SnackPosition.TOP,
backgroundColor: Colors.red.withOpacity(0.1),
colorText: Colors.red,
);
return;
}
}
// 修改商务会议助手标题
static Future editMeetingTitle(id, title) async {
final db = await DatabaseHelper().database;
await db.update('meeting', {'title': title},
where: 'id = ?', whereArgs: [id]);
}
// 删除商务会议助手
static Future deleteMeeting(id) async {
final db = await DatabaseHelper().database;
await db.transaction((txn) async {
await txn.delete('meeting', where: 'id = ?', whereArgs: [id]);
await txn
.delete('meetingdetails', where: 'meetingid = ?', whereArgs: [id]);
});
}
}