一次大的提交
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:maibu_satabot_v2/core/error/failure.dart';
|
||||
import '../models/device_run_param_model.dart';
|
||||
|
||||
abstract class DeviceRunParamRemoteDataSource {
|
||||
Future<Either<Failure, DeviceRunParamModel>> getByDeviceId(String deviceId);
|
||||
Future<Either<Failure, bool>> save(Map<String, dynamic> params);
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:maibu_satabot_v2/core/consts/http_api_consts.dart';
|
||||
import 'package:maibu_satabot_v2/core/error/failure.dart';
|
||||
import '../../domain/entities/device_run_param_entity.dart';
|
||||
import '../models/device_run_param_model.dart';
|
||||
import 'device_run_param_remote_datasource.dart';
|
||||
|
||||
class DeviceRunParamRemoteDataSourceImpl
|
||||
implements DeviceRunParamRemoteDataSource {
|
||||
DeviceRunParamRemoteDataSourceImpl(this._dio);
|
||||
|
||||
final Dio _dio;
|
||||
|
||||
@override
|
||||
Future<Either<Failure, DeviceRunParamModel>> getByDeviceId(
|
||||
String deviceId,
|
||||
) async {
|
||||
try {
|
||||
final response = await _dio.get(
|
||||
HttpApiConsts.deviceRunParamSelect,
|
||||
queryParameters: {'deviceId': deviceId},
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final body = response.data as Map<String, dynamic>;
|
||||
final code = body['code'];
|
||||
if (code != null && code.toString() == '200') {
|
||||
final data = body['data'] as Map<String, dynamic>? ?? {};
|
||||
return right(DeviceRunParamModel.fromJson(data));
|
||||
} else {
|
||||
return left(Failure(body['msg'] ?? '获取设备运行参数失败'));
|
||||
}
|
||||
} else {
|
||||
return left(Failure('HTTP错误: ${response.statusCode}'));
|
||||
}
|
||||
} catch (e) {
|
||||
return left(Failure('获取设备运行参数异常: $e'));
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, bool>> save(Map<String, dynamic> params) async {
|
||||
try {
|
||||
final response = await _dio.post(
|
||||
HttpApiConsts.deviceRunParamSave,
|
||||
data: params,
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final body = response.data as Map<String, dynamic>;
|
||||
final code = body['code'];
|
||||
if (code != null && code.toString() == '200') {
|
||||
return right(true);
|
||||
} else {
|
||||
return left(Failure(body['msg'] ?? '保存设备运行参数失败'));
|
||||
}
|
||||
} else {
|
||||
return left(Failure('HTTP错误: ${response.statusCode}'));
|
||||
}
|
||||
} catch (e) {
|
||||
return left(Failure('保存设备运行参数异常: $e'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import '../../domain/entities/device_run_param_entity.dart';
|
||||
|
||||
class DeviceRunParamModel extends DeviceRunParamEntity {
|
||||
DeviceRunParamModel({
|
||||
required super.id,
|
||||
required super.deviceId,
|
||||
required super.siteId,
|
||||
required super.orgId,
|
||||
required super.runSpeed,
|
||||
required super.leftForwardGain,
|
||||
required super.leftBackwardGain,
|
||||
required super.rightForwardGain,
|
||||
required super.rightBackwardGain,
|
||||
required super.rawData,
|
||||
});
|
||||
|
||||
factory DeviceRunParamModel.fromJson(Map<String, dynamic> json) {
|
||||
return DeviceRunParamModel(
|
||||
id: (json['id'] as dynamic)?.toInt() ?? 0,
|
||||
deviceId: json['deviceId'] as String? ?? '',
|
||||
siteId: (json['siteId'] as dynamic)?.toInt() ?? 0,
|
||||
orgId: (json['orgId'] as dynamic)?.toInt() ?? 0,
|
||||
runSpeed: (json['runSpeed'] as dynamic)?.toDouble() ?? 0.0,
|
||||
leftForwardGain:
|
||||
(json['leftForwardGain'] as dynamic)?.toDouble() ?? 0.0,
|
||||
leftBackwardGain:
|
||||
(json['leftBackwardGain'] as dynamic)?.toDouble() ?? 0.0,
|
||||
rightForwardGain:
|
||||
(json['rightForwardGain'] as dynamic)?.toDouble() ?? 0.0,
|
||||
rightBackwardGain:
|
||||
(json['rightBackwardGain'] as dynamic)?.toDouble() ?? 0.0,
|
||||
rawData: Map<String, dynamic>.from(json),
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'id': id,
|
||||
'deviceId': deviceId,
|
||||
'siteId': siteId,
|
||||
'orgId': orgId,
|
||||
'runSpeed': runSpeed,
|
||||
'leftForwardGain': leftForwardGain,
|
||||
'leftBackwardGain': leftBackwardGain,
|
||||
'rightForwardGain': rightForwardGain,
|
||||
'rightBackwardGain': rightBackwardGain,
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
import 'package:fpdart/fpdart.dart';
|
||||
import 'package:maibu_satabot_v2/core/error/failure.dart';
|
||||
import '../../domain/entities/device_run_param_entity.dart';
|
||||
import '../../domain/repositories/device_run_param_repository.dart';
|
||||
import '../datasources/device_run_param_remote_datasource.dart';
|
||||
|
||||
class DeviceRunParamRepositoryImpl implements DeviceRunParamRepository {
|
||||
DeviceRunParamRepositoryImpl({required this.remoteDataSource});
|
||||
|
||||
final DeviceRunParamRemoteDataSource remoteDataSource;
|
||||
|
||||
@override
|
||||
Future<Either<Failure, DeviceRunParamEntity>> getByDeviceId(
|
||||
String deviceId,
|
||||
) async {
|
||||
final result = await remoteDataSource.getByDeviceId(deviceId);
|
||||
return result.fold(
|
||||
(failure) => left(failure),
|
||||
(model) => right(model),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, bool>> save(Map<String, dynamic> params) async {
|
||||
return await remoteDataSource.save(params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user