import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../../core/utils/synchrodata.dart'; import 'database_helper.dart'; class SqfliteApi { // 获取个人信息 static Future getUser() async { final db = await DatabaseHelper().database; List userList = await db.query('user'); return userList.first; } // 修改个人信息 static Future editUser(id, Map user) async { final db = await DatabaseHelper().database; await db.update('user', user, where: 'id = ?', whereArgs: [id]); } // 获取商务会议助手列表 static Future getMeetingList() async { final db = await DatabaseHelper().database; return await db.query( 'meeting', 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 { ...meetingList.first, 'taskid': detailsList.first['taskid'], 'details': detailsList.first }; } // 获取商务会议助手转写内容 static Future getMeetingSpeaker(id) async { final db = await DatabaseHelper().database; return await db.query( 'meetingspeaker', where: 'meetingid = ?', whereArgs: [id], ); } // 插入商务会议助手 static Future insertMeeting(Map meeting) async { final db = await DatabaseHelper().database; try { int id = 0; await db.transaction((txn) async { id = await txn.insert('meeting', meeting); await txn.insert('meetingdetails', { 'meetingid': id, 'address': '', 'personnel': '', 'taskid': '', 'tasktype': 0, 'overview': '', 'summary': '', 'mindmap': '', }); Synchrodata.saveOperationRecord('insert', { ...meeting, 'id': id, }); }); 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 meeting) async { final db = await DatabaseHelper().database; try { await db.update( 'meetingdetails', meeting, where: 'meetingid = ?', whereArgs: [id], ); Synchrodata.saveOperationRecord('update', { ...meeting, 'id': 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 insertMeetingSpeaker(List> data) async { final db = await DatabaseHelper().database; try { final batch = db.batch(); for (var item in data) { batch.insert('meetingspeaker', item); } await batch.commit(); 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 editMeetingSpeaker(List data) async { final db = await DatabaseHelper().database; try { final batch = db.batch(); for (var item in data) { Map values = item['content'] != null ? {'content': item['content']} : {'speaker': item['speaker']}; batch.update( 'meetingspeaker', values, where: 'id = ?', whereArgs: [item['id']], ); } await batch.commit(); 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, Map meeting) async { final db = await DatabaseHelper().database; await db.update('meeting', meeting, where: 'id = ?', whereArgs: [id]); Synchrodata.saveOperationRecord('update', { ...meeting, 'id': 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]); await txn .delete('meetingspeaker', where: 'meetingid = ?', whereArgs: [id]); Synchrodata.saveOperationRecord('delete', { 'id': id, }); }); } // 获取商务会议助手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 meeting) async { final db = await DatabaseHelper().database; await db.insert('meetingai', meeting); } // 获取商务会议助手所有分类模版列表 static Future getMeetingCategoryTemplateList() async { final db = await DatabaseHelper().database; List categorytemplateList = await db.query('meetingcategorytemplate'); final dataList = categorytemplateList.map((item) => Map.from(item)).toList(); for (var element in dataList) { final List templateList = await db.query( 'meetingtemplate', limit: 4, where: 'categoryid = ?', whereArgs: [element['id']], ); element['template'] = templateList .map((item) => { ...Map.from(item), 'tag': item['tag'].isNotEmpty ? item['tag'].split(',') : [], }) .toList(); } return dataList; } // 获取商务会议助手模版列表 static Future getMeetingTemplateList(int id) async { final db = await DatabaseHelper().database; return await db.query( 'meetingtemplate', where: 'categoryid = ?', whereArgs: [id], ); } }