115 lines
4.6 KiB
Dart
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);
|
|
}
|
|
}
|
|
}
|