findCloudRecordFile method
Future<List<Map<String, dynamic> > >
findCloudRecordFile({
- required CloudRecordByTime param,
- required List<
Map< list,String, dynamic> >
Implementation
Future<List<Map<String, dynamic>>> findCloudRecordFile(
{required CloudRecordByTime param,
required List<Map<String, dynamic>> list}) async {
final result = await _api.findCloudRecordFile(
param.toJsonString(), ApiSeq.instance.getSeq());
XCloudResponse<Map<String, dynamic>> response =
XCloudResponse.fromOriginResponse<Map<String, dynamic>>(result);
if (!response.success) {
return Future.error(
XCloudAPIException(code: result.param1, commandId: result.commandId));
}
List? listOnce = response.data['vidlist'];
if (param.msg == 'short_video_query') {
List<Map<String, dynamic>> listValue = [];
if (listOnce != null && listOnce.isNotEmpty) {
listValue.add(response.data);
}
list.addAll(listValue);
return list;
}
if (listOnce == null || listOnce.isEmpty) {
///如果没有查到数据或者数据数量少于500条结束查询
return list;
}
list.add(response.data);
Map map = listOnce.last;
///和服务器确认过都是倒序返回,无需处理排序问题
DateTime endTime = DateUtil.fromDateString(map['st'] as String);
DateTime newTime = DateTime.fromMillisecondsSinceEpoch(
endTime.millisecondsSinceEpoch - 1000);
///如果最后一个文件的开始时间跨天了,就不需要再查询了
if (newTime.millisecondsSinceEpoch <
param.startTime!.millisecondsSinceEpoch) {
return list;
}
CloudRecordByTime paramNew = CloudRecordByTime(
msg: param.msg,
userId: param.userId,
sn: param.sn,
channel: param.channel,
startTime: param.startTime,
endTime: newTime,
muserid: param.muserid);
return findCloudRecordFile(param: paramNew, list: list);
}