diff --git a/lib/data/services/db/database_helper.dart b/lib/data/services/db/database_helper.dart index 0b74feb2d..036a5e913 100644 --- a/lib/data/services/db/database_helper.dart +++ b/lib/data/services/db/database_helper.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'package:get_storage/get_storage.dart'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; @@ -6,6 +7,7 @@ class DatabaseHelper { static final DatabaseHelper _instance = DatabaseHelper._internal(); factory DatabaseHelper() => _instance; static Database? _database; + static String _userId = ''; DatabaseHelper._internal(); @@ -16,15 +18,35 @@ class DatabaseHelper { } Future _initDatabase() async { + final GetStorage storage = GetStorage(); + Map? userInfo = storage.read("user_info"); + if (userInfo != null) { + _userId = userInfo['user']['uid']; + } String path = join( await getDatabasesPath(), - 'database.db', + _userId.isNotEmpty ? '${_userId}database.db' : 'database.db', ); return await openDatabase(path, version: 1, onCreate: _createDB); } Future _createDB(Database db, int version) async { final batch = db.batch(); + // 用户信息 + batch.execute(''' + CREATE TABLE IF NOT EXISTS user ( + id TEXT PRIMARY KEY, + synctime INTEGER, + ) + '''); + // 操作记录 + batch.execute(''' + CREATE TABLE IF NOT EXISTS operationrecord ( + id INTEGER PRIMARY KEY, + method TEXT, + data TEXT, + ) + '''); // 商务会议助手列表 batch.execute(''' CREATE TABLE IF NOT EXISTS meeting ( @@ -82,6 +104,10 @@ class DatabaseHelper { prompt TEXT ) '''); + batch.insert('user', { + 'id': _userId, + 'synctime': 0, + }); // 商务会议助手插入默认模版 batch.insert('meetingcategorytemplate', { 'id': 1, diff --git a/lib/data/services/db/sqflite_api.dart b/lib/data/services/db/sqflite_api.dart index 6d380d84b..e7319f596 100644 --- a/lib/data/services/db/sqflite_api.dart +++ b/lib/data/services/db/sqflite_api.dart @@ -1,9 +1,49 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:get_storage/get_storage.dart'; import 'database_helper.dart'; class SqfliteApi { + static GetStorage storage = GetStorage(); + static String userId = ''; + + // 保存操作记录 + static Future saveMeetingOperationRecord( + String method, + dynamic params, + ) async { + if (userId.isEmpty) { + Map userInfo = storage.read("user_info"); + userId = userInfo['user']['uid']; + } + final db = await DatabaseHelper().database; + String data = ''; + if (method == 'records') { + Map records = { + ...params, + 'id': '${userId}_${params['id']}', + 'number': params['id'], + 'uid': userId, + }; + data = jsonEncode(records); + } else { + data = params; + } + db.insert('operationrecord', { + 'method': method, + 'data': data, + }); + } + + // 操作记录列表 + static Future getMeetingOperationRecord() async { + final db = await DatabaseHelper().database; + return await db.query('operationrecord'); + } + // 获取商务会议助手列表 static Future getMeetingList(int offset) async { final db = await DatabaseHelper().database;