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 {
// 获取商务会议助手列表
static Future getMeetingList(int offset) async {
static Future getMeetingList() async {
final db = await DatabaseHelper().database;
List<Map<String, dynamic>> dataList = [];
List meetingList = await db.query(
return await db.query(
'meeting',
limit: 10,
offset: offset,
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 meetingTaskService = Get.find<MeetingTaskService>();
final ScrollController listController = ScrollController();
final AudioPlayer _audioPlayer = AudioPlayer();
// 是否还有更多数据
bool isGetMore = true;
bool isLoading = false;
int page = 1;
int addQuantity = 0;
List<String> selected = [];
final appDocDir = getApplicationDocumentsDirectory();
@ -47,7 +41,6 @@ class MeetingController extends GetxController {
@override
void onInit() {
super.onInit();
listController.addListener(_onScroll);
_requestStoragePermission();
_initGetDataList();
addMeetingAudio();
@ -64,7 +57,6 @@ class MeetingController extends GetxController {
@override
void onClose() {
listController.dispose();
titleController.dispose();
_audioPlayer.dispose();
super.onClose();
@ -74,17 +66,6 @@ class MeetingController extends GetxController {
Synchrodata.uploadOperationRecords(isSynchro: true);
}
void _onScroll() {
if (isGetMore &&
!isLoading &&
listController.position.pixels >=
listController.position.maxScrollExtent - 100) {
isLoading = true;
page++;
_getDataList();
}
}
void _initGetDataList() async {
await Synchrodata.uploadOperationRecords(isSynchro: true);
_getDataList();
@ -92,15 +73,8 @@ class MeetingController extends GetxController {
// 请求本地数据
void _getDataList() async {
List list = await SqfliteApi.getMeetingList((page - 1) * 10 + addQuantity);
dataList.addAll(list);
addQuantity = 0;
if (list.length < 10) {
isGetMore = false;
} else {
isGetMore = true;
}
isLoading = false;
List list = await SqfliteApi.getMeetingList();
dataList.value = List.from(list);
}
// 请求存储权限
@ -244,7 +218,6 @@ class MeetingController extends GetxController {
await file.copy(newPath);
await file.delete();
addQuantity++;
addUp++;
}
} catch (e) {
@ -286,7 +259,6 @@ class MeetingController extends GetxController {
'taskid': '',
...data,
});
addQuantity++;
}
} catch (e) {
Logger.error('导入文件失败: $filePath, error: $e');
@ -349,7 +321,6 @@ class MeetingController extends GetxController {
'taskid': '',
...data,
});
addQuantity++;
}
return meetingId;
}
@ -389,7 +360,6 @@ class MeetingController extends GetxController {
_deleteFile(filepath);
meetingUploadService.removeUpload(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 String filepath;
late String audiourl;
late String taskid;
late int tasktype;
late int creationtime;
@ -18,7 +17,6 @@ class MeetingModel {
..seconds = map["seconds"]
..filepath = map["filepath"]
..audiourl = map["audiourl"]
..taskid = map["taskid"]
..tasktype = map["tasktype"]
..creationtime = map["creationtime"];
@ -30,7 +28,6 @@ class MeetingModel {
data['seconds'] = seconds;
data['filepath'] = filepath;
data['audiourl'] = audiourl;
data['taskid'] = taskid;
data['tasktype'] = tasktype;
data['creationtime'] = creationtime;
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) {
return Obx(
() => ListView.builder(
controller: controller.listController,
itemCount: controller.dataList.length,
padding: EdgeInsets.fromLTRB(12.w, 5.w, 12.w, 90.w),
itemBuilder: (BuildContext context, int index) {

Loading…
Cancel
Save