|
|
@ -2,6 +2,7 @@ import 'dart:convert'; |
|
|
|
|
|
|
|
|
import 'package:get_storage/get_storage.dart'; |
|
|
import 'package:get_storage/get_storage.dart'; |
|
|
|
|
|
|
|
|
|
|
|
import '../../data/services/db/database_helper.dart'; |
|
|
import '../../data/services/db/sqflite_api.dart'; |
|
|
import '../../data/services/db/sqflite_api.dart'; |
|
|
import '../../data/services/network/api.dart'; |
|
|
import '../../data/services/network/api.dart'; |
|
|
|
|
|
|
|
|
@ -112,6 +113,80 @@ class Synchrodata { |
|
|
|
|
|
|
|
|
// 同步数据 |
|
|
// 同步数据 |
|
|
static Future _synchrodata() async { |
|
|
static Future _synchrodata() async { |
|
|
|
|
|
final db = await DatabaseHelper().database; |
|
|
var result = await Api.getOperationRecord(); |
|
|
var result = await Api.getOperationRecord(); |
|
|
|
|
|
List records = result['records']; |
|
|
|
|
|
await db.transaction((txn) async { |
|
|
|
|
|
for (var element in records) { |
|
|
|
|
|
final List existList = await txn.query( |
|
|
|
|
|
'meeting', |
|
|
|
|
|
where: 'id = ?', |
|
|
|
|
|
whereArgs: [element['number']], |
|
|
|
|
|
); |
|
|
|
|
|
Map<String, Object?> meetingData = { |
|
|
|
|
|
'id': element['number'], |
|
|
|
|
|
'title': element['title'] ?? '', |
|
|
|
|
|
'type': element['rtype'] ?? '', |
|
|
|
|
|
'seconds': element['seconds'] ?? 0, |
|
|
|
|
|
'filepath': '', |
|
|
|
|
|
'audiourl': element['audiourl'] ?? '', |
|
|
|
|
|
'tasktype': element['tasktype'] ?? 0, |
|
|
|
|
|
'creationtime': element['creationtime'] ?? 0, |
|
|
|
|
|
}; |
|
|
|
|
|
Map<String, Object?> meetingDetailsData = { |
|
|
|
|
|
'meetingid': element['number'], |
|
|
|
|
|
'address': element['address'] ?? '', |
|
|
|
|
|
'personnel': element['personnel'] ?? '', |
|
|
|
|
|
'taskid': element['taskid'] ?? '', |
|
|
|
|
|
'tasktype': element['tasktype'] ?? 0, |
|
|
|
|
|
'overview': element['overview'] ?? '', |
|
|
|
|
|
'summary': element['summary'] ?? '', |
|
|
|
|
|
'mindmap': '', |
|
|
|
|
|
}; |
|
|
|
|
|
if (existList.isNotEmpty) { |
|
|
|
|
|
await txn.update( |
|
|
|
|
|
'meeting', |
|
|
|
|
|
meetingData, |
|
|
|
|
|
where: 'id = ?', |
|
|
|
|
|
whereArgs: [element['number']], |
|
|
|
|
|
); |
|
|
|
|
|
await txn.update( |
|
|
|
|
|
'meetingdetails', |
|
|
|
|
|
meetingDetailsData, |
|
|
|
|
|
where: 'meetingid = ?', |
|
|
|
|
|
whereArgs: [element['number']], |
|
|
|
|
|
); |
|
|
|
|
|
} else { |
|
|
|
|
|
await txn.insert('meeting', meetingData); |
|
|
|
|
|
await txn.insert('meetingdetails', meetingDetailsData); |
|
|
|
|
|
} |
|
|
|
|
|
if (element['original'].isNotEmpty) { |
|
|
|
|
|
final List existSpeakerList = await txn.query( |
|
|
|
|
|
'meetingspeaker', |
|
|
|
|
|
where: 'meetingid = ?', |
|
|
|
|
|
whereArgs: [element['number']], |
|
|
|
|
|
); |
|
|
|
|
|
List speakerList = jsonDecode(element['original']); |
|
|
|
|
|
if (existSpeakerList.isNotEmpty) { |
|
|
|
|
|
final batch = txn.batch(); |
|
|
|
|
|
for (var item in speakerList) { |
|
|
|
|
|
batch.update( |
|
|
|
|
|
'meetingspeaker', |
|
|
|
|
|
item, |
|
|
|
|
|
where: 'id = ?', |
|
|
|
|
|
whereArgs: [item['id']], |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
await batch.commit(); |
|
|
|
|
|
} else { |
|
|
|
|
|
final batch = txn.batch(); |
|
|
|
|
|
for (var item in speakerList) { |
|
|
|
|
|
batch.insert('meetingspeaker', item); |
|
|
|
|
|
} |
|
|
|
|
|
await batch.commit(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|