Files
data_manage/bin/controller/BedController.dart
2026-01-20 09:26:55 +08:00

182 lines
7.7 KiB
Dart

import 'dart:convert';
import 'package:EasyDartModule/EasyDartModule.dart';
import 'package:EasyDartModule/base/webserver/WebServer.dart';
import '../const/HttpStatusCode.dart';
import '../const/MessageConstants.dart';
import '../const/ResponseJsonCode.dart';
import '../model/ApiResponse.dart';
import '../model/Bed.dart';
import '../service/BedService.dart';
import '../model/Reservation.dart';
part 'BedController.route.dart';
@RequestMapping(path: "/bed")
class BedController {
final BedService bedService = BedService();
set callHandler(handler) => _callHandler = handler;
Map<HttpMethod, List<List>> get routeMap => routes;
BedController();
// 获取床位列表
@RequestMapping(path: "/bedList", method: HttpMethod.GET)
Future<Response> getBedList(Request request, Map<String, dynamic> jwt) async {
ApiResponse<List<Map<String, dynamic>>> apiResponse = ApiResponse();
try {
var queryParameters = request.requestedUri.queryParameters;
Bed query = Bed.fromQueryParameters(queryParameters,jwt);
List<dynamic> bedList = await bedService.getBedList(query);
int bedCount = await bedService.getBedCount(query);
List<Map<String, dynamic>> bedListMap =
bedList.map((e) => e as Map<String, dynamic>).toList(); // 强制转换
apiResponse.code = ResponseJsonCode.success;
apiResponse.data = bedListMap;
apiResponse.total = bedCount;
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送响应
} catch (e) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = "查询失败: $e"; // 包含异常信息
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError, body: serializedJson);
}
}
// 获取单个床位信息
/* @RequestMapping(path: "/getBed", method: HttpMethod.GET)
Future<Response> getBedById(Request request) async {
ApiResponse<Map<String, dynamic>> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var bedId = data['bed_id'];
if (bedId == null) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = '床位ID不能为空';
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送错误响应
}
var bed = await bedService.getBedById(bedId);
if (bed != null) {
apiResponse.code = ResponseJsonCode.success;
apiResponse.data = bed.toJson();
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送成功响应
} else {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = '未找到床位';
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送未找到响应
}
} catch (e) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = '查询失败: $e';
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError,
body: serializedJson); // 发送失败响应
}
} */
// 添加床位信息
@RequestMapping(path: "/addBed", method: HttpMethod.POST)
Future<Response> addBed(Request request) async {
ApiResponse<String> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var bed = Bed.fromJson(data);
var result = await bedService.createBed(bed);
apiResponse.code = ResponseJsonCode.success;
apiResponse.message = MessageConstants.ADD_SUCCESS;
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送成功响应
} catch (e) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = MessageConstants.ADD_ERROR; // 包含异常信息
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError,
body: serializedJson); // 发送失败响应
}
}
// 更新床位信息
@RequestMapping(path: "/updateBed", method: HttpMethod.PUT)
Future<Response> updateBed(Request request) async {
ApiResponse<String> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var bedId = data['bed_id'];
var updatedBed = Bed.fromJson(data);
if (updatedBed.id == null || updatedBed.id!.isEmpty) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = "床位ID不能为空";
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson);
}
var result = await bedService.updateBed(bedId, updatedBed);
apiResponse.code = ResponseJsonCode.success;
apiResponse.message = result;
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送成功响应
} catch (e) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = "更新失败: $e"; // 包含异常信息
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError,
body: serializedJson); // 发送失败响应
}
}
// 删除床位信息
@RequestMapping(path: "/deleteBed", method: HttpMethod.DELETE)
Future<Response> deleteBed(Request request) async {
ApiResponse<String> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var bedId = data['bed_id'];
var result = await bedService.deleteBed(bedId);
if (result.isEmpty) {
apiResponse.code = ResponseJsonCode.success;
apiResponse.message = MessageConstants.DELETE_SUCCESS;
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送成功响应
}
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = result;
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson);
} catch (e) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = MessageConstants.DELETE_ERROR; // 包含异常信息
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError,
body: serializedJson); // 发送失败响应
}
}
// 查询预约信息
@RequestMapping(path: "/orderCheckIn", method: HttpMethod.GET)
Future<Response> orderCheckIn(Request request,Map<String, dynamic> jwt) async {
ApiResponse<List<Map<String, dynamic>>> apiResponse = ApiResponse();
try {
var queryParameters = request.requestedUri.queryParameters;
Reservation query = Reservation.fromQueryParameters(queryParameters,jwt);
List<dynamic> bedList = await bedService.getOrderCheckIn(query);
// int bedCount = await bedService.getBedCount(query);
List<Map<String, dynamic>> bedListMap =
bedList.map((e) => e as Map<String, dynamic>).toList(); // 强制转换
apiResponse.code = ResponseJsonCode.success;
apiResponse.data = bedListMap;
// apiResponse.total = bedCount;
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.ok, body: serializedJson); // 发送响应
} catch (e) {
apiResponse.code = ResponseJsonCode.fail;
apiResponse.message = "查询失败: $e"; // 包含异常信息
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError, body: serializedJson);
}
}
}