Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into new_dev

newdev_shunjiawei
lxm 1 year ago
parent
commit
920fd3f68e
  1. 20
      lib/core/utils/synchrodata.dart
  2. 8
      lib/data/services/db/database_helper.dart
  3. 4
      lib/data/services/db/sqflite_api.dart
  4. 9
      lib/modules/meeting/controllers/meeting_details_controller.dart
  5. 12
      lib/modules/meeting/views/share_bottom_sheet.dart
  6. 7
      lib/modules/meeting/views/speaker_all_bottom_sheet.dart
  7. 11
      lib/modules/meeting/views/speaker_bottom_sheet.dart

20
lib/core/utils/synchrodata.dart

@ -1,5 +1,8 @@
import 'dart:convert';
import 'package:get_storage/get_storage.dart';
import '../../data/services/db/sqflite_api.dart';
import '../../data/services/network/api.dart';
class Synchrodata {
@ -43,6 +46,7 @@ class Synchrodata {
foundElement.addAll({
...params,
'id': id,
'number': params['id'],
});
} else {
_records.add({
@ -68,9 +72,23 @@ class Synchrodata {
if (_isSynchro) return;
_isSynchro = true;
if (_records.isNotEmpty || _delids.isNotEmpty) {
// 获取需要修改的全部数据
List putRecords = [];
for (var element in _records) {
final result = await SqfliteApi.getMeetingDetails(element['number']);
final speakerList =
await SqfliteApi.getMeetingSpeaker(element['number']);
putRecords.add({
...result,
...result['details'],
'rtype': result['type'],
'original': jsonEncode(speakerList),
...element,
});
}
var result = await Api.putOperationRecord({
'delids': _delids,
'records': _records,
'records': putRecords,
});
if (result != null) {
_records = [];

8
lib/data/services/db/database_helper.dart

@ -39,14 +39,6 @@ class DatabaseHelper {
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 (

4
lib/data/services/db/sqflite_api.dart

@ -101,6 +101,10 @@ class SqfliteApi {
where: 'meetingid = ?',
whereArgs: [id],
);
Synchrodata.saveOperationRecord('update', {
...meeting,
'id': id,
});
return true;
} catch (e) {
Get.snackbar(

9
lib/modules/meeting/controllers/meeting_details_controller.dart

@ -10,6 +10,7 @@ import 'package:get_storage/get_storage.dart';
import 'package:http/http.dart' as http;
import '../../../core/utils/logger.dart';
import '../../../core/utils/synchrodata.dart';
import '../../../core/utils/upload_oss.dart';
import '../../../data/models/appconfig.dart';
import '../../../data/services/db/sqflite_api.dart';
@ -208,6 +209,10 @@ class MeetingDetailsController extends GetxController
textList[index] = dataMap;
}
}
Synchrodata.saveOperationRecord('update', {
'original': jsonEncode(textList),
'id': id,
});
isSpeakerText.value = false;
editSpeakerTextId.value = 0;
editSpeakerTextList = [];
@ -417,6 +422,10 @@ class MeetingDetailsController extends GetxController
await SqfliteApi.editMeeting(id, {'tasktype': 2, 'personnel': personnel});
List speakerList = await SqfliteApi.getMeetingSpeaker(id);
textList.value = List.from(speakerList);
Synchrodata.saveOperationRecord('update', {
'original': jsonEncode(textList),
'id': id,
});
meetingDetails.value.tasktype = 2;
meetingDetails.value.personnel = personnel;
meetingDetails.refresh();

12
lib/modules/meeting/views/share_bottom_sheet.dart

@ -6,6 +6,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:path_provider/path_provider.dart';
import 'package:share_plus/share_plus.dart';
@ -71,7 +72,16 @@ class _ShareBottomSheetState extends State<ShareBottomSheet> {
child: Column(
children: [
_box([
_shareItem(Icons.link, '分享链接', isBorder: false),
_shareItem(Icons.link, '分享链接', isBorder: false, onTap: () {
final GetStorage storage = GetStorage();
String token = storage.read("logintoken") ?? '';
String userId = '';
Map? userInfo = storage.read("user_info");
if (userInfo != null) {
userId = userInfo['user']['uid'];
}
String id = '${userId}_${_controller.meetingData.value.id}';
}),
]),
_box([
_shareItem(Icons.copy, '复制转写', onTap: () {

7
lib/modules/meeting/views/speaker_all_bottom_sheet.dart

@ -1,3 +1,5 @@
import 'dart:convert';
import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
@ -6,6 +8,7 @@ import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:lottie/lottie.dart';
import '../../../core/utils/synchrodata.dart';
import '../../../data/services/db/sqflite_api.dart';
import '../controllers/meeting_details_controller.dart';
@ -556,6 +559,10 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
bool isEditSummary = false;
String summaryText = _controller.meetingDetails.value.summary;
_controller.textList.value = newTextList;
Synchrodata.saveOperationRecord('update', {
'original': jsonEncode(_controller.textList),
'id': _controller.meetingData.value.id,
});
for (var element in personnelList) {
if (summaryText.contains('[${element['original']}]')) {
summaryText = summaryText.replaceAll(

11
lib/modules/meeting/views/speaker_bottom_sheet.dart

@ -1,9 +1,12 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import '../../../core/utils/synchrodata.dart';
import '../../../data/services/db/sqflite_api.dart';
import '../controllers/meeting_details_controller.dart';
@ -331,6 +334,10 @@ class _SpeakerBottomSheetState extends State<SpeakerBottomSheet> {
dataMap['speaker'] = _speakerController.text;
_controller.textList[index] = dataMap;
}
Synchrodata.saveOperationRecord('update', {
'original': jsonEncode(_controller.textList),
'id': _controller.meetingData.value.id,
});
_addHistorySpeaker();
Get.back();
}
@ -361,6 +368,10 @@ class _SpeakerBottomSheetState extends State<SpeakerBottomSheet> {
var result = await SqfliteApi.editMeetingSpeaker(editSpeakerList);
if (result != null) {
_controller.textList.value = newTextList;
Synchrodata.saveOperationRecord('update', {
'original': jsonEncode(_controller.textList),
'id': _controller.meetingData.value.id,
});
if (_controller.meetingDetails.value.summary
.contains('[${widget.speakerName}]')) {
String summaryText = _controller.meetingDetails.value.summary

Loading…
Cancel
Save