182 lines
7.7 KiB
Dart
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);
|
|
}
|
|
}
|
|
}
|