Browse Source

添加保存操作记录

weicu
tanlongsheng 1 year ago
parent
commit
406d666c49
  1. 28
      lib/data/services/db/database_helper.dart
  2. 40
      lib/data/services/db/sqflite_api.dart

28
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<Database> _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<void> _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,

40
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;

Loading…
Cancel
Save