job_repository.dart 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import 'dart:typed_data';
  2. import 'package:get/get.dart';
  3. import 'package:plugin_platform/dio_export.dart';
  4. import 'package:plugin_platform/http/http_provider.dart';
  5. import 'package:plugin_platform/http/http_result.dart';
  6. import 'package:shared/utils/util.dart';
  7. import '../constants/api_constants.dart';
  8. import '../entity/response/attendance_entity.dart';
  9. import '../entity/response/check_success_entity.dart';
  10. /// 工作相关
  11. class JobRepository extends GetxService {
  12. HttpProvider httpProvider;
  13. JobRepository({required this.httpProvider});
  14. /// 获取当前酒店的考勤成员列表
  15. Future<HttpResult<AttendanceEntity>> fetchAttendanceList(
  16. String? token,
  17. String? keyword,
  18. String? startDate,
  19. String? endDate, {
  20. CancelToken? cancelToken,
  21. }) async {
  22. Map<String, String> params = {};
  23. params["token"] = token ?? "";
  24. params["cur_page"] = "1";
  25. params["page_size"] = "9999";
  26. if (!Utils.isEmpty(keyword)) {
  27. params["keyword"] = keyword!;
  28. }
  29. if (!Utils.isEmpty(startDate)) {
  30. params["start_date"] = startDate!;
  31. }
  32. if (!Utils.isEmpty(endDate)) {
  33. params["end_date"] = endDate!;
  34. }
  35. final result = await httpProvider.requestNetResult(
  36. ApiConstants.apiSignApplied,
  37. params: params,
  38. );
  39. //根据返回的结果,封装原始数据为Bean/Entity对象
  40. if (result.isSuccess) {
  41. //重新赋值data或list
  42. final json = result.getDataJson();
  43. var data = AttendanceEntity.fromJson(json!);
  44. //重新赋值data或list
  45. return result.convert<AttendanceEntity>(data: data);
  46. }
  47. return result.convert();
  48. }
  49. /// 用户上传考勤
  50. Future<HttpResult<CheckSuccessEntity>> submitCheckInOut(
  51. String? token,
  52. String? appliedId,
  53. ByteData? byteData, {
  54. bool isCheckIn = false,
  55. CancelToken? cancelToken,
  56. }) async {
  57. //Post请求
  58. Map<String, String> params = {};
  59. params['token'] = token ?? "";
  60. params['applied_id'] = appliedId ?? "";
  61. params['check_type'] = isCheckIn ? "1" : "2";
  62. Map<String, Uint8List> streams = {};
  63. if (byteData != null) {
  64. streams["capture"] = byteData.buffer.asUint8List();
  65. }
  66. final result = await httpProvider.requestNetResult(
  67. method: HttpMethod.POST,
  68. ApiConstants.apiSignInOut,
  69. params: params,
  70. pathStreams: streams,
  71. networkDebounce: true,
  72. isShowLoadingDialog: true,
  73. cancelToken: cancelToken,
  74. );
  75. //根据返回的结果,封装原始数据为Bean/Entity对象
  76. if (result.isSuccess) {
  77. final json = result.getDataJson();
  78. var data = CheckSuccessEntity.fromJson(json!);
  79. //重新赋值data
  80. return result.convert<CheckSuccessEntity>(data: data);
  81. }
  82. return result.convert<CheckSuccessEntity>();
  83. }
  84. }