job_repository.dart 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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? keyword,
  17. String? startDate,
  18. String? endDate, {
  19. CancelToken? cancelToken,
  20. }) async {
  21. Map<String, String> params = {};
  22. params["cur_page"] = "1";
  23. params["page_size"] = "9999";
  24. if (!Utils.isEmpty(keyword)) {
  25. params["keyword"] = keyword!;
  26. }
  27. if (!Utils.isEmpty(startDate)) {
  28. params["start_date"] = startDate!;
  29. }
  30. if (!Utils.isEmpty(endDate)) {
  31. params["end_date"] = endDate!;
  32. }
  33. final result = await httpProvider.requestNetResult(
  34. ApiConstants.apiSignApplied,
  35. params: params,
  36. cancelToken: cancelToken,
  37. );
  38. //根据返回的结果,封装原始数据为Bean/Entity对象
  39. if (result.isSuccess) {
  40. //重新赋值data或list
  41. final json = result.getDataJson();
  42. var data = AttendanceEntity.fromJson(json!);
  43. //重新赋值data或list
  44. return result.convert<AttendanceEntity>(data: data);
  45. }
  46. return result.convert();
  47. }
  48. /// 用户上传考勤
  49. Future<HttpResult<CheckSuccessEntity>> submitCheckInOut(
  50. String? appliedId,
  51. ByteData? byteData, {
  52. bool isCheckIn = false,
  53. CancelToken? cancelToken,
  54. }) async {
  55. //Post请求
  56. Map<String, String> params = {};
  57. params['applied_id'] = appliedId ?? "";
  58. params['check_type'] = isCheckIn ? "1" : "2";
  59. Map<String, Uint8List> streams = {};
  60. if (byteData != null) {
  61. streams["capture"] = byteData.buffer.asUint8List();
  62. }
  63. final result = await httpProvider.requestNetResult(
  64. method: HttpMethod.POST,
  65. ApiConstants.apiSignInOut,
  66. params: params,
  67. pathStreams: streams,
  68. networkDebounce: true,
  69. isShowLoadingDialog: true,
  70. cancelToken: cancelToken,
  71. );
  72. //根据返回的结果,封装原始数据为Bean/Entity对象
  73. if (result.isSuccess) {
  74. final json = result.getDataJson();
  75. var data = CheckSuccessEntity.fromJson(json!);
  76. //重新赋值data
  77. return result.convert<CheckSuccessEntity>(data: data);
  78. }
  79. return result.convert<CheckSuccessEntity>();
  80. }
  81. }