一次大的提交

This commit is contained in:
2026-08-07 08:49:29 +08:00
parent bf2fc49c19
commit db70665ced
181 changed files with 23060 additions and 2804 deletions

View File

@@ -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);
}

View File

@@ -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'));
}
}
}

View File

@@ -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,
};
}
}

View File

@@ -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);
}
}