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> get routeMap => routes; BedController(); // 获取床位列表 @RequestMapping(path: "/bedList", method: HttpMethod.GET) Future getBedList(Request request, Map jwt) async { ApiResponse>> apiResponse = ApiResponse(); try { var queryParameters = request.requestedUri.queryParameters; Bed query = Bed.fromQueryParameters(queryParameters,jwt); List bedList = await bedService.getBedList(query); int bedCount = await bedService.getBedCount(query); List> bedListMap = bedList.map((e) => e as Map).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 getBedById(Request request) async { ApiResponse> 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 addBed(Request request) async { ApiResponse 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 updateBed(Request request) async { ApiResponse 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 deleteBed(Request request) async { ApiResponse 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 orderCheckIn(Request request,Map jwt) async { ApiResponse>> apiResponse = ApiResponse(); try { var queryParameters = request.requestedUri.queryParameters; Reservation query = Reservation.fromQueryParameters(queryParameters,jwt); List bedList = await bedService.getOrderCheckIn(query); // int bedCount = await bedService.getBedCount(query); List> bedListMap = bedList.map((e) => e as Map).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); } } }