| 12345678910111213141516171819202122232425262728293031323334 |
- import 'package:dio/dio.dart';
- import 'package:water_management_system/models/water_data_model.dart';
- import 'package:water_management_system/utils/constants.dart';
-
- class WaterService {
- final Dio _dio = Dio(BaseOptions(baseUrl: AppConstants.baseUrl));
-
- Future<List<WaterDataModel>> getWaterData({
- String area = '全部区域',
- DateTime? date,
- }) async {
- try {
- final response = await _dio.get(AppConstants.waterDataEndpoint, queryParameters: {
- 'area': area,
- 'date': date?.toIso8601String(),
- });
- if (response.statusCode == 200) {
- final List<dynamic> data = response.data['data'] ?? [];
- return data.map((item) => WaterDataModel.fromJson(item)).toList();
- }
- return [];
- } catch (e) {
- return _getMockData();
- }
- }
-
- List<WaterDataModel> _getMockData() {
- return [
- WaterDataModel(deviceId: 'D001', deviceName: 'A区泵站', area: '东区', pressure: 0.35, flowRate: 120.5, temperature: 22.0, status: 'normal', updateTime: DateTime.now(), batteryLevel: 95.0, location: '116.3,39.9'),
- WaterDataModel(deviceId: 'D002', deviceName: 'B区水塔', area: '西区', pressure: 0.42, flowRate: 150.0, temperature: 23.0, status: 'warning', updateTime: DateTime.now().subtract(const Duration(minutes: 30)), batteryLevel: 78.0, location: '116.4,39.8'),
- WaterDataModel(deviceId: 'D003', deviceName: 'C区阀门', area: '南区', pressure: 0.28, flowRate: 85.0, temperature: 21.0, status: 'error', updateTime: DateTime.now().subtract(const Duration(hours: 2)), batteryLevel: 45.0, location: '116.2,39.7'),
- ];
- }
- }
|