Browse Source

优化查询

weicu
tanlongsheng 1 year ago
parent
commit
6d71ed8de6
  1. 19
      lib/data/services/db/sqflite_api.dart
  2. 34
      lib/modules/meeting/controllers/meeting_controller.dart
  3. 3
      lib/modules/meeting/model/meeting_model.dart
  4. 1
      lib/modules/meeting/views/meeting_view.dart

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

@ -6,27 +6,12 @@ import 'database_helper.dart';
class SqfliteApi { class SqfliteApi {
// 获取商务会议助手列表 // 获取商务会议助手列表
static Future getMeetingList(int offset) async { static Future getMeetingList() async {
final db = await DatabaseHelper().database; final db = await DatabaseHelper().database;
List<Map<String, dynamic>> dataList = []; return await db.query(
List meetingList = await db.query(
'meeting', 'meeting',
limit: 10,
offset: offset,
orderBy: 'creationtime DESC', orderBy: 'creationtime DESC',
); );
for (var element in meetingList) {
final List detailsList = await db.query(
'meetingdetails',
where: 'meetingid = ?',
whereArgs: [element['id']],
);
dataList.add({
...element,
'taskid': detailsList.first['taskid'],
});
}
return dataList;
} }
// 获取商务会议助手详情 // 获取商务会议助手详情

34
lib/modules/meeting/controllers/meeting_controller.dart

@ -25,14 +25,8 @@ class MeetingController extends GetxController {
final meetingUploadService = Get.find<MeetingUploadService>(); final meetingUploadService = Get.find<MeetingUploadService>();
final meetingTaskService = Get.find<MeetingTaskService>(); final meetingTaskService = Get.find<MeetingTaskService>();
final ScrollController listController = ScrollController();
final AudioPlayer _audioPlayer = AudioPlayer(); final AudioPlayer _audioPlayer = AudioPlayer();
// 是否还有更多数据
bool isGetMore = true;
bool isLoading = false;
int page = 1;
int addQuantity = 0;
List<String> selected = []; List<String> selected = [];
final appDocDir = getApplicationDocumentsDirectory(); final appDocDir = getApplicationDocumentsDirectory();
@ -47,7 +41,6 @@ class MeetingController extends GetxController {
@override @override
void onInit() { void onInit() {
super.onInit(); super.onInit();
listController.addListener(_onScroll);
_requestStoragePermission(); _requestStoragePermission();
_initGetDataList(); _initGetDataList();
addMeetingAudio(); addMeetingAudio();
@ -64,7 +57,6 @@ class MeetingController extends GetxController {
@override @override
void onClose() { void onClose() {
listController.dispose();
titleController.dispose(); titleController.dispose();
_audioPlayer.dispose(); _audioPlayer.dispose();
super.onClose(); super.onClose();
@ -74,17 +66,6 @@ class MeetingController extends GetxController {
Synchrodata.uploadOperationRecords(isSynchro: true); Synchrodata.uploadOperationRecords(isSynchro: true);
} }
void _onScroll() {
if (isGetMore &&
!isLoading &&
listController.position.pixels >=
listController.position.maxScrollExtent - 100) {
isLoading = true;
page++;
_getDataList();
}
}
void _initGetDataList() async { void _initGetDataList() async {
await Synchrodata.uploadOperationRecords(isSynchro: true); await Synchrodata.uploadOperationRecords(isSynchro: true);
_getDataList(); _getDataList();
@ -92,15 +73,8 @@ class MeetingController extends GetxController {
// 请求本地数据 // 请求本地数据
void _getDataList() async { void _getDataList() async {
List list = await SqfliteApi.getMeetingList((page - 1) * 10 + addQuantity); List list = await SqfliteApi.getMeetingList();
dataList.addAll(list); dataList.value = List.from(list);
addQuantity = 0;
if (list.length < 10) {
isGetMore = false;
} else {
isGetMore = true;
}
isLoading = false;
} }
// 请求存储权限 // 请求存储权限
@ -244,7 +218,6 @@ class MeetingController extends GetxController {
await file.copy(newPath); await file.copy(newPath);
await file.delete(); await file.delete();
addQuantity++;
addUp++; addUp++;
} }
} catch (e) { } catch (e) {
@ -286,7 +259,6 @@ class MeetingController extends GetxController {
'taskid': '', 'taskid': '',
...data, ...data,
}); });
addQuantity++;
} }
} catch (e) { } catch (e) {
Logger.error('导入文件失败: $filePath, error: $e'); Logger.error('导入文件失败: $filePath, error: $e');
@ -349,7 +321,6 @@ class MeetingController extends GetxController {
'taskid': '', 'taskid': '',
...data, ...data,
}); });
addQuantity++;
} }
return meetingId; return meetingId;
} }
@ -389,7 +360,6 @@ class MeetingController extends GetxController {
_deleteFile(filepath); _deleteFile(filepath);
meetingUploadService.removeUpload(id, isDeleteTask: true); meetingUploadService.removeUpload(id, isDeleteTask: true);
meetingTaskService.removeTask(id, isDeleteTask: true); meetingTaskService.removeTask(id, isDeleteTask: true);
addQuantity--;
} }
// 删除文件 // 删除文件

3
lib/modules/meeting/model/meeting_model.dart

@ -7,7 +7,6 @@ class MeetingModel {
late int seconds; late int seconds;
late String filepath; late String filepath;
late String audiourl; late String audiourl;
late String taskid;
late int tasktype; late int tasktype;
late int creationtime; late int creationtime;
@ -18,7 +17,6 @@ class MeetingModel {
..seconds = map["seconds"] ..seconds = map["seconds"]
..filepath = map["filepath"] ..filepath = map["filepath"]
..audiourl = map["audiourl"] ..audiourl = map["audiourl"]
..taskid = map["taskid"]
..tasktype = map["tasktype"] ..tasktype = map["tasktype"]
..creationtime = map["creationtime"]; ..creationtime = map["creationtime"];
@ -30,7 +28,6 @@ class MeetingModel {
data['seconds'] = seconds; data['seconds'] = seconds;
data['filepath'] = filepath; data['filepath'] = filepath;
data['audiourl'] = audiourl; data['audiourl'] = audiourl;
data['taskid'] = taskid;
data['tasktype'] = tasktype; data['tasktype'] = tasktype;
data['creationtime'] = creationtime; data['creationtime'] = creationtime;
return data; return data;

1
lib/modules/meeting/views/meeting_view.dart

@ -160,7 +160,6 @@ class MeetingView extends GetView<MeetingController> {
Widget _buildBody(BuildContext context, bool isDarkMode) { Widget _buildBody(BuildContext context, bool isDarkMode) {
return Obx( return Obx(
() => ListView.builder( () => ListView.builder(
controller: controller.listController,
itemCount: controller.dataList.length, itemCount: controller.dataList.length,
padding: EdgeInsets.fromLTRB(12.w, 5.w, 12.w, 90.w), padding: EdgeInsets.fromLTRB(12.w, 5.w, 12.w, 90.w),
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {

Loading…
Cancel
Save