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

115 lines
4.6 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/Person.dart';
import '../service/PersonService.dart';
part 'PersonController.route.dart';
@RequestMapping(path: "/person")
class PersonController {
final PersonService personService = PersonService();
set callHandler(handler) => _callHandler = handler;
Map<HttpMethod, List<List>> get routeMap => routes;
PersonController();
// 获取人员列表
@RequestMapping(path: "/personList", method: HttpMethod.GET)
Future<Response> getPersonList(
Request request, Map<String, dynamic> jwt) async {
ApiResponse<List<Map<String, dynamic>>> apiResponse = ApiResponse();
try {
var queryParameters = request.requestedUri.queryParameters;
Person query = Person.fromQueryParameters(queryParameters, jwt);
var personList = await personService.getPersonList(query);
int personCount = await personService.getPersonCount(query);
print(personList);
List<Map<String, dynamic>> personListMap =
personList.map((e) => e as Map<String, dynamic>).toList();
apiResponse.code = ResponseJsonCode.success;
apiResponse.data = personListMap;
apiResponse.total = personCount;
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: "/addPerson", method: HttpMethod.POST)
Future<Response> addPerson(Request request) async {
ApiResponse<String> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var person = Person.fromJson(data);
var result = await personService.addPerson(person);
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: "/updatePerson", method: HttpMethod.PUT)
Future<Response> updatePerson(Request request) async {
ApiResponse<String> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var personId = data['_id'];
var updatedPerson = Person.fromJson(data);
var result = await personService.updatePerson(personId, updatedPerson);
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: "/deletePerson", method: HttpMethod.DELETE)
Future<Response> deletePerson(Request request) async {
ApiResponse<String> apiResponse = ApiResponse();
try {
var data = jsonDecode(await request.readAsString());
var personId = data['_id'];
var result = await personService.deletePerson(personId);
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 = "删除失败: $e";
String serializedJson = apiResponse.serialize();
return Response(HttpStatusCode.internalServerError, body: serializedJson);
}
}
}