|
|
@ -1,13 +1,18 @@ |
|
|
import 'package:flutter/material.dart'; |
|
|
import 'package:flutter/material.dart'; |
|
|
|
|
|
import 'package:flutter_easyloading/flutter_easyloading.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:get/get.dart'; |
|
|
import 'package:just_audio/just_audio.dart'; |
|
|
import 'package:just_audio/just_audio.dart'; |
|
|
|
|
|
|
|
|
|
|
|
import '../../../data/services/ai_service.dart'; |
|
|
import '../../../data/services/db/sqflite_api.dart'; |
|
|
import '../../../data/services/db/sqflite_api.dart'; |
|
|
|
|
|
import '../../../data/services/volcano_ai_service.dart'; |
|
|
import 'meeting_controller.dart'; |
|
|
import 'meeting_controller.dart'; |
|
|
import 'meeting_details_controller.dart'; |
|
|
import 'meeting_details_controller.dart'; |
|
|
|
|
|
|
|
|
class MeetingEditController extends GetxController |
|
|
class MeetingEditController extends GetxController |
|
|
with GetSingleTickerProviderStateMixin { |
|
|
with GetSingleTickerProviderStateMixin { |
|
|
|
|
|
late AiService _aiService; |
|
|
|
|
|
|
|
|
final MeetingController meetingController = Get.find<MeetingController>(); |
|
|
final MeetingController meetingController = Get.find<MeetingController>(); |
|
|
final MeetingDetailsController meetingDetailsController = |
|
|
final MeetingDetailsController meetingDetailsController = |
|
|
Get.find<MeetingDetailsController>(); |
|
|
Get.find<MeetingDetailsController>(); |
|
|
@ -21,6 +26,10 @@ class MeetingEditController extends GetxController |
|
|
|
|
|
|
|
|
int creationTime = 0; |
|
|
int creationTime = 0; |
|
|
|
|
|
|
|
|
|
|
|
RxString address = ''.obs; |
|
|
|
|
|
String _longitude = ''; |
|
|
|
|
|
String _latitude = ''; |
|
|
|
|
|
|
|
|
int id = 0; |
|
|
int id = 0; |
|
|
|
|
|
|
|
|
RxBool isPlay = false.obs; |
|
|
RxBool isPlay = false.obs; |
|
|
@ -51,6 +60,9 @@ class MeetingEditController extends GetxController |
|
|
text: meetingDetailsController.dataDetails.value.content, |
|
|
text: meetingDetailsController.dataDetails.value.content, |
|
|
); |
|
|
); |
|
|
creationTime = meetingDetailsController.meetingData.value.creationtime; |
|
|
creationTime = meetingDetailsController.meetingData.value.creationtime; |
|
|
|
|
|
address.value = meetingDetailsController.meetingData.value.address; |
|
|
|
|
|
_longitude = meetingDetailsController.meetingData.value.longitude; |
|
|
|
|
|
_latitude = meetingDetailsController.meetingData.value.latitude; |
|
|
audioPlayer.setAudioSource( |
|
|
audioPlayer.setAudioSource( |
|
|
AudioSource.file(meetingDetailsController.dataDetails.value.audio)); |
|
|
AudioSource.file(meetingDetailsController.dataDetails.value.audio)); |
|
|
audioPlayer.playerStateStream.listen((state) async { |
|
|
audioPlayer.playerStateStream.listen((state) async { |
|
|
@ -76,6 +88,15 @@ class MeetingEditController extends GetxController |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void confirm() async { |
|
|
void confirm() async { |
|
|
|
|
|
EasyLoading.show(); |
|
|
|
|
|
_aiService = Get.find<VolcanoAIService>(); |
|
|
|
|
|
String aiSummary = await _aiService.sendMessage( |
|
|
|
|
|
systemPrompt: '', |
|
|
|
|
|
messages: [ |
|
|
|
|
|
{'role': 'user', 'content': contentController.text}, |
|
|
|
|
|
{'role': 'user', 'content': '帮我总结一下这次会议'}, |
|
|
|
|
|
], |
|
|
|
|
|
); |
|
|
String content = contentController.text; |
|
|
String content = contentController.text; |
|
|
String firstContent = |
|
|
String firstContent = |
|
|
content.length >= 30 ? content.substring(0, 30) : content; |
|
|
content.length >= 30 ? content.substring(0, 30) : content; |
|
|
@ -87,6 +108,10 @@ class MeetingEditController extends GetxController |
|
|
'firstContent': firstContent.replaceAll("\n", ""), |
|
|
'firstContent': firstContent.replaceAll("\n", ""), |
|
|
'seconds': meetingDetailsController.seconds, |
|
|
'seconds': meetingDetailsController.seconds, |
|
|
'content': contentController.text, |
|
|
'content': contentController.text, |
|
|
|
|
|
'aisummary': aiSummary, |
|
|
|
|
|
'address': address.value, |
|
|
|
|
|
'longitude': _longitude, |
|
|
|
|
|
'latitude': _latitude, |
|
|
}; |
|
|
}; |
|
|
final result = await SqfliteApi.editMeeting(id, data); |
|
|
final result = await SqfliteApi.editMeeting(id, data); |
|
|
if (result != null) { |
|
|
if (result != null) { |
|
|
@ -99,14 +124,20 @@ class MeetingEditController extends GetxController |
|
|
dataMap['title'] = title; |
|
|
dataMap['title'] = title; |
|
|
dataMap['content'] = firstContent.replaceAll("\n", ""); |
|
|
dataMap['content'] = firstContent.replaceAll("\n", ""); |
|
|
dataMap['seconds'] = meetingDetailsController.seconds; |
|
|
dataMap['seconds'] = meetingDetailsController.seconds; |
|
|
|
|
|
dataMap['address'] = address.value; |
|
|
meetingController.dataList[index] = dataMap; |
|
|
meetingController.dataList[index] = dataMap; |
|
|
} |
|
|
} |
|
|
meetingDetailsController.meetingData.value.title = title; |
|
|
meetingDetailsController.meetingData.value.title = title; |
|
|
|
|
|
meetingDetailsController.meetingData.value.address = address.value; |
|
|
|
|
|
meetingDetailsController.meetingData.value.longitude = _longitude; |
|
|
|
|
|
meetingDetailsController.meetingData.value.latitude = _latitude; |
|
|
meetingDetailsController.dataDetails.value.content = |
|
|
meetingDetailsController.dataDetails.value.content = |
|
|
contentController.text; |
|
|
contentController.text; |
|
|
|
|
|
meetingDetailsController.dataDetails.value.aisummary = aiSummary; |
|
|
meetingDetailsController.meetingData.refresh(); |
|
|
meetingDetailsController.meetingData.refresh(); |
|
|
meetingDetailsController.dataDetails.refresh(); |
|
|
meetingDetailsController.dataDetails.refresh(); |
|
|
Get.back(); |
|
|
Get.back(); |
|
|
} |
|
|
} |
|
|
|
|
|
EasyLoading.dismiss(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|