job_repository.dart 2.6 KB

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